新想法:
送矿泉水---送货app
linux操作系统
bin sbin 可执行程序
home 目录
temp 临时生成的目录
根目录:
/
用户目录:
用户工作目录或家目录
/home/user
相对路径:
上一层路径(父目录) 。。
当前路径 。
根目录 。。和。 都是代表根目录
文件的权限:
r --read
w --write
x --执行
Linux命令操作:最少的有200个
Linux命令格式: command [-options] [parameter]
黑窗口 ctrl + shift + +/- 字体放大缩小
ls 显示当前路径
pwd 显示当前路径
cd 。。 跳转到
ls -l 查看的文件夹和文件
drwxrwxr文件
- 文件夹
cd 文件夹: 跳到文件或者文件夹
自动补全功能
cd D(ownloads) cd + table键
空格键 翻页功能
q 退出文件
历史命令:
history
touch 1.py 在当前目录创建一个1.py文件(前提是获取超级管理员权限)
ls -lh 查看文件,并将文件的大小以kb的形式显示出来
ls -alh 显示隐藏文件并显示以kb大小的文件
ls *.py 显示以什么结尾的文件
ls 1.* 显示以1开头的文件
ls 1?* ? 代表站位符
ls 1[23]3.py [23]里面代表是2或者3的
ls \*a 查找文件名为*a 的文件
重定向:
ls -lha >ls.txt 创建文件,并将内容显示到文件中
--> 接下来用记事本打开:gedit ls.txt
ls -lha >> ls.txt: 在ls.txt文件中继续追加内容,前面的内容不擅长
cat ls.txt 查看文件内容,不可以编辑
more ls.txt 分页显示,按空格进行查看页面内容
水管功能
ls -alh | more 右边的程序调用左边的程序,就是将左边的程序显示到右边去。
cd ~ ---> pwd 跳转到家目录
cd ctrl c 强制停止
cd ctrl z 强制停止
cd - 快速回到上一次路径
pwd 显示当前文件路径
mkdir 创建文件夹
rmdir dongge/ 移除文件夹 remove的意思,删除非空文件夹
rm 2.py 删除文件
rm dongge -r 删除带有文件的文件夹,递归的删除
rm dongge -rf 强制删除带有文件的文件夹
创建链接文件ln 相当于快捷文件
软连接****
ln -s 123.py 123link_s.py 前面为源文件,后面为快捷文件
硬链接****
同样指向文件,不止一个快捷键指向源文件
查看文件内容,cat (也可以完成多个文件的合并)
cat 234.py > 100.py 合并文件内容
cat 324.py >> 230.py 合并文件内容
grep ‘oo’ 101.py 模糊搜索 oo 在文件的位置
grep ’箭头上00‘ 搜索以什么开头的
grep [Hhello]
拷贝
cp 23.py test/ 拷贝。。到哪个项目下
mv 12.py test/ 移动
mv 12.py 14.py 重命名
tree 以树的方式进行显示
打包
tar -cvf(test.tar) *.py
解包
tar -xvf test.tar
压缩包
gzip test.tar ====> test.tar.gz
gzip -d test.tar.gz 解压缩操作--->test.tar
打包解包
tar -zcvf test.tar.gz *.py
切换到超级管理员
sudo -s 美元号变为jin号
系统管理
查看日历
cal -2016
查看时间
date
查看进程信息:ps
ps -aux 查看进行程序
ctrl +shift +z 打开新的命令窗口
kill -9 823 绝对杀死程序
需要管理员权限
reboot 重启
shutdown 关机
top 显示资源利用率的情况
df 检测磁盘空间
df -lh
du -a -lh 查看当前目录的情况
查看网卡信息:
ipconfig
ping 120。1204.99 连接
第二天:
在Ubuntu下:
登陆用户:
who
当前登陆用户:
whoami
远程登陆电脑
先ping 192.168.21.76
然后
ssh admin@192.168.21.76 --y
who 查看当前登陆的用户信息 whoami 查看我是谁
ssh 用户名@ip地址
exit 退出
用户管理:
1,sudo -s
2,添加新的账户:useradd laowang
3 passwd laowang 输入老王账号的密码,
4 exit 退出,回到一开始的用户,回到上一个用户
5 su - laowang -->切换到老王的账户
--> useradd loawang -m --->自动创建家目录
cat /etc/passwd 查看所有的用户名跟密码
删除用户
userdel laozhang
ubutun sudu
centerOS su root
查看组:
groupadd aa
groupmod Ubuntu下
删除添加组 groupadd www groupdel www
修改用户组
usermod -g aaa laosong aaa->变为老宋
查看用户所在组:groups python (adm sudo)
改组的功能:
usermod -a -G adm laosong
usermod -a -G sudo laosong
修改文件权限:chmod
-rw--W-r- -
第一组表示文件拥有者权限 文件同组者权限可不可以执行)其他人_
Ubuntu下安装软件:
命令行安装:gedit /etc/apt/sources.list
apt-get update 更新如那件
apt-get install sl 安装软件包
1 备份:
cp /etc/apt/sources.list /etc/apt/sources.list.backup
2 修改 更新源
gedit /etc/apt/sources.list
3 sudo -s 切换到管理员
可以为 sudo
4 sudo apt-get update 让更新源生效
5 sudo apt-get install 软件的名字
6 删除软件
sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包
sudo apt-cache show package 获取包信息
sudo apt-get install package --reinstall 重新安装包
sudo apt-get source package 下载软件的源码
------等等
ftp服务器(常用服务器构建)
FTP : File Transfer Protocol 文件传输协议
安装vsftpd服务器\
sudo apt-get install vsftpd
配置vsftpd.conf文件
sudo vi /etc/vsftpd.conf
SSH 服务器搭建
sudo apt-get install openssh-server
远程登陆
远程拷贝文件
scp -r(是否上传文件夹) FileName 源文件 用户名@ip :home/python/Desktop 文件地址
从远端拷贝到本地:
scp python@IP 本地路径 远程文件路径+文件名
拷贝到-->
scp a.txt 128.128.323.23:/home/python/Desktop
编辑器vim Visual interface 简称
vim hello.py
1 打开vim后 默认进入一种状态->命令模式
输入小写i --》由命令模式转换到编辑模式
esc --》 退出编辑模式
末行模式:光标在最后
编码模式按下esc状态 --》输入: wq (保存退出)
等于 ---:x
vim 常见命令:
上下左右移动hjkl
选中字母按下i 输入abc 会再i前面输入
选中字母按下a ,输入abc 会在字母后面输入abc
输入I/A 直接跳到行首,输入abc,会在行首出现abc
输入O/o 从命令模式进入编辑模式
G/g 快速定位到9, --》9G 此时并没有进入编辑模式
快速回到最后一行 G --gg 回到第一行
w 一个单词一个单词的调 w-word
{ 段落的跳
删除 dd 一行
5dd 指定数 向后删除5行
u 撤销
x 向后面进行删除
X 向前面进行删除
D 光标后面到行末全删除
D0
ctrl +r 反撤销
文本右移/左移 》
:q! 强制退出并不进行保存
yy张贴 p复制 : 张贴复制
p2 yy : 下两行进行复制张贴
dd 剪切/删除的功能
rH 替换
: 5,15s/main/MAIN/g 指定行数的替换
v 选中代码 }} 右缩进
: 12,23 >>> 整体缩进3次 行数开头,行数结尾
python 基础课程开始
使用地方:
Web应用开发:后台开发
Django,TurboGears,web2py,Zope等可以轻松开发和管理复杂的web程序
操作系统管理,服务器运维的自动化脚本
科学计算
NumPy,SciPy,Matplotlib 编写科学计算程序
桌面软件
PyQt,PySide,wxPython,PyGTK快速开发桌面应用程序
服务器软件
游戏
Python支持更多的特性和数据类型,Lua的功能简单,体积小,
构思实现,产品早起原型和迭代
YouTube,Google,Yahoo,NASA都在使用python
第一种方式:
直接在命令行中输入 print ("dsf")
运行 python helloworld.py 第二种方式
第三种方式:
vi helloworld2.py
chmod u+x helloworld.py
在python文件第一行
#!usr/bin/python --> 判断是否有可执行程序
注释:以#开头的就是注释
多行注释:‘’‘
的沙发斯蒂芬
’‘’
让python 支持中文
在文件第一行加入
#encoding=utf-8
数据类型:
Numbers数字
int 有符号整型
long 长整型,也可以代表八位和十六位进制
float 浮点型
complex 复数
boolean true,false
String字符串
List列表
Tuple元祖
Dictionary字典
查看符号类型type(var)
查看系统关键字:
import keyword
打印值:
print("my english scrore is %/d"%scrore)
print("my english scrore is %/d ,,,math scrore is %d"(score,mathScore))
\n 换行
数据类型转换:
num= int("100)
python3 input
python2 raw_input input
if age>10 and money >100 and handsome ==1:
print("他是高富帅")
else:
print("呵呵")
if 条件:
满足条件的时候做的事情
elif 条件2:
满足条件2的时候坐的事情
elif 条件3:
满足条件3的时候做的事情
if tiaojian:
pass #进行占位
import random
random.randin(3,5)
产生3,5的随机数
数据的显示问题:
%-2d 不够两位也要占用两位,靠左边显示
9*9乘法表视频
for 变量 in XXX列表或者字符串等:
循环满足条件时执行的代码
else:
循环不满足条件时执行的代码
查找是否存在
if findName in nameList:
print("找到了")
else
print("没有找到")
不存在 not in
返回字符在字符串中的下标:index names.index("a")
删除
del:根据下标索引进行删除
pop:删除最后一个元素
remove: 根据元素的值进行删除
列表的操作:
增
append() insert(下标,“a) insert(2,"acb")
删
del moveNames[0] 下标删除
movieNames.pop() 删除最后一个
movieNames.remove("喜洋洋") 按照元素的值进行删除
改
if "acv" in names:
xx
not in
index()
count()
自己编写代码来实现:在遍历的过程中宏进新年给判断,如果找到了那么久标记退出,如果么有找到标记,退出
查
列表的嵌套:
列表里面还有列表
[['北京大学','清华大学'],[‘南开大学’,'天津大学'],['山东大学']]
for temp in schoolNames:
print(temp)
for temp2 in temp:
print(temp2)
print("----------")
元祖只要不是修改都可以进行操作。相对于列表来说。
全局变量
如果需要进行全局修改,需要在修改之前设置 global
全局变量在方法中都可以进行调用。
break 退出循环
python的引用:
使用id
a = 100
id(a) --->得到一个地址的引用
魔法方法def __str__(self):
return "dsfsadf"
类方法:
@classmethod
def setNewAddress(self):
pass
类对象可以直接调用类属性,也可以直接调用类方法
但是类对象不允许调用 实例属性,并也不允许调用实例方法
如果是一个实例对象
它可以获取实例属性和类属性的值,但是只能修改实例属性,不能修改类属性
它还可以调用实例方法和类方法。
异常的处理:
try:
进行的操作代码
except (IOError,NameError) as errorMsg:
发生异常后的错误代码
print(errorMsg)
else:
没有出现异常
finally:
不管有没有异常,都会执行
try:
f = file(test.txt)
while True:
line = f.readline()
....
finally:
f.close()
print("关闭文件")
raise 引发一个自定义的异常类
raise ShortInputException(len(s),3) // 自定义的异常
python常用三方api
PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。
由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。
飞机大战
通过练习,将对象思想结合到一起
from PIL import Image
# 打开一个jpg图像文件,注意是当前路径:
im = Image.open('test.jpg')
# 获得图像尺寸:
w, h = im.size
print('Original image size: %sx%s' % (w, h))
# 缩放到50%:
im.thumbnail((w//2, h//2))
print('Resize image to: %sx%s' % (w//2, h//2))
# 把缩放后的图像用jpeg格式保存:
im.save('thumbnail.jpg', 'jpeg')
PIL的ImageDraw提供了一系列绘图方法,让我们可以直接绘图。比如要生成字母验证码图片
from PIL import Image, ImageDraw, ImageFont, ImageFilter
import random
# 随机字母:
def rndChar():
return chr(random.randint(65, 90))
# 随机颜色1:
def rndColor():
return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))
# 随机颜色2:
def rndColor2():
return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
# 240 x 60:
width = 60 * 4
height = 60
image = Image.new('RGB', (width, height), (255, 255, 255))
# 创建Font对象:
font = ImageFont.truetype('Arial.ttf', 36)
# 创建Draw对象:
draw = ImageDraw.Draw(image)
# 填充每个像素:
for x in range(width):
for y in range(height):
draw.point((x, y), fill=rndColor())
# 输出文字:
for t in range(4):
draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())
# 模糊:
image = image.filter(ImageFilter.BLUR)
image.save('code.jpg', 'jpeg')