新的一年了,对于去年的半年是在不满意,后半年是在没什么提高。新的一年当然有新的打算 不能那么平行线的走了,要让自己坡度上升。新的一年当然有新的计划了,一直说学开发的自己耽误了那么久了,去年的事情拖到了现在。最终确定了学习python。好吧学习新东西当然有自己的总结了。看书吧,修炼吧。。提升自己了。
一 认识python
1.什么是python?
一种面向对象、直译式计算机程序设计语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。
2特点?
高级 :系统调用解释型,面向对象,可升级,可扩展,可移植,易学,易读,易维护,健壮性,高效的快速原型
3 下载和安装
LINUX,unix
WINDOWS,dos
手机和平板电脑
游戏控制台
实时平台
window 安装.msi
linux tgz 3步编译
4运行python
1 手动输入 python
2执行相关脚本
3图形 执行
二。快速入门
1前奏
当然是在linux下玩了呵呵
装完后 ./configure
make
make install
whereis python
就查出你的python路径
python: /usr/bin/python2.4 /usr/bin/python /usr/lib/python2.4 /usr/local/bin/python /usr/local/bin/python2.7-config /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/share/man/man1/python.1.gz
做系统的都懂的 /usr/local/bin/python2.7 是自己装的
/usr/bin/python2.4 /usr/bin/python 是系统
为什么系统会自带呢 因为linux很多 内置东西都用的python
/usr/local/bin/python2.7 或python2.7 (你的系统PATH变量的有/usr/local/bin/) 进入交互式
2程序的输出
打印最简单的2个
ctrl +D 退出;
>>> 主提示符 :等待你输入的语句。
... 次提示符:等待你输入 语句的其他部分。
脚本方式:
当然 这个test.py 的 chmod+x 运维都懂得。
① 赋值
>>> hou = 1
>>> print hou 打印方法
1
>>> hou 直接输入元素
1
>>> cun = "C1c"
>>> print cun
C1c
>>> cun
'C1c'
注意:用变量的时候 输出的值才带单引号。证明的显示的字符串不是他本身。
②>>> _
'C1c'
_在交互式中 表示最后一个正则。
③python中 print 语句与字符串 %结合使用 可以替换的效果
%s 替换一个字符
%d 数字
%f 浮数点
>>> print "%s is number %d" %("houzaicun",1)
houzaicun is number 1
>>> print "%s is last %d!" %("ajiong",1)
ajiong is last 1!
④ >> 输出重定向
3 程序的输入
最简单的函数 raw_input
[root@localhost home]# cat test.py
#!/usr/local/bin/python2.7
user = raw_input("Enter login name: ")
print "%s is number %d" %("houzaicun",1)
print 'login user is:', user
[root@localhost home]# ./test.py
Enter login name: root
houzaicun is number 1
login user is: root
注意:下我2个user 第一个怎么不出root 呢 这里就是引号的作用。
上面 输入值只能是字符串
[root@localhost home]# cat ./test.py
#!/usr/local/bin/python2.7
user = raw_input("Enter login name: ")
print "%s is number %d" %("houzaicun",1)
print 'login user is:', user
Num = raw_input("now enter a number: ")
print "doubling your number: %d" % (int(Num) * 2)
[root@localhost home]# ./test.py
Enter login name: root
houzaicun is number 1
login user is: root
now enter a number: 555
doubling your number: 1110
利用int 函数 让他成为一个整数 上面代码 Num = raw_input("now enter a number: ") 读取过来值 为字符串 (尽管你输入的是数字)后面用int 转换成整数。
帮助:help(函数)
>>> help(raw_input)
Help on built-in function raw_input in module __builtin__:
raw_input(...)
raw_input([prompt]) -> string
Read a string from standard input. The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled. The prompt string, if given,
is printed without a trailing newline before reading.
4操作符
①运算操作符
+ - *. / // ** %
加,减,乘,除,余数,乘方,百分号
>>> (-2 + 2 * 5 + 2 ** 3 ) / 2
8
运算的优先级就和小学一样了。
②比较操作符
< <= > => == != <>
不等于 != < > 后者已经不用了
>>> 2<4
True
>>> 2>4
False
返回为真为假布尔值。
③逻辑操作符
and or not
>>> 2 < 4 and 4 > 2
True
>>> 2 >4 and 2 > 3
False
>>> 2 < 4 or 3 > 4
True
>>> not 666.6 >5 .5
False
>>> not 5.5 > 666.6
True
>>> 3<4<5 或 >>> 3<4 and 4<5
True
and 并列 or 取其1 not 反 意
5变量和赋值
赋值严格区分大小写 可以带下划线。
>>> a=1
>>> A=2
>>> print a
1
>>> print A
2
>>> A_a=12
>>> print A_A
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'A_A' is not defined
>>> print A_a
12
>>> counter=0
>>> miles=1000.00
>>> counter=counter+1
>>> kilometers = 1.609 * miles
>>> print "%f miles is the as %f km " % (miles,kilometers)
1000.000000 miles is the as 1609.000000 km
整数 浮数点 字符串 最后一个是乘法赋值
python也支持自身增量
n = n * 10
n *= 10
6数字
7字符串
引号中的字符组合就是字符串,支持单引号双引号和三引号。
三引号是多行字符串,可以直接输入回车,而不需要用\n来表示
>>> hou="""2222
... 2222"""
>>> print hou
2222
2222
>>> hou
'2222\n2222'
索引符号[ ] 切片符号[:]
0为第一个 -1 为组后一个 :2第2个以前的 2:第2个以后的(包含本身)2:5 第2到5 不包含第5个本身
>>> cun = "houzaicun!"
>>> cun
'houzaicun!'
>>> cun[1]
'o'
>>> cun[-1]
'!'
>>> cun[2:5]
'uza'
>>> cun[:2]
'ho'
>>> cun[2:]
'uzaicun'
+ 连接字符串 * 重复字符串
>>> cun+"sky"
'houzaicunsky'
>>> "hou"+"zai" +"cun"
'houzaic
注意“变量没引号 字符串一定要有引号”
>>> cun*2
'houzaicunhouzaicun'
>>> "cun"*2
'cuncun'
>>>
注意本次的赋值仅仅是本小节的赋值与其他的无关。
8列表和元组
列用[ ] 元组用() 逗号分割值。
>>> alist = [1,2,3,4,5,6]
>>> alist
[1, 2, 3, 4, 5, 6]
>>> print alist
[1, 2, 3, 4, 5, 6]
>>> alist [2:5]
[3, 4, 5]
>>> alist [2:]
[3, 4, 5, 6]
>>> alist[:4]
[1, 2, 3, 4]
>>>tuples = (1,"hou",2,"zai",3,"cun")
>>> list [2:]
(2, 'zai', 3, 'cun')
>>> alist[:4]
[1, 2, 3, 4]
注意元组切后的结果不能被修改。
9字典
10代码的缩进与对其
:
11 if语句
#!/usr/local/bin/python2.7
#####################
nu = raw_input("enter input a number: ")
if nu < 10 :
print int(nu),"Less than 10"
elif nu > 10 :
print "%d Greater th 10" % (int(nu))
elif nu == 10 :
print nu, "= 10"
else:
print "err input"
12 while语句
#!/usr/local/bin/python2.7
#####################
nu = 1
while nu < 10 :
print nu
nu *= 2
13 for 语句和range() 函数
[root@localhost home]# ./hou.py
1
2
3
a
b
[root@localhost home]# cat hou.py
#!/usr/local/bin/python2.7
for nu in [1,2,3,"a","b"]:
print nu
————————————————————————
逗号去掉换行符:
[root@localhost home]# ./hou.py
1 2 3 a b
[root@localhost home]# cat hou.py
#!/usr/local/bin/python2.7
for nu in [1,2,3,"a","b"]:
print nu,
range函数:
[root@localhost home]# ./hou.py
0 1 2 3 4
[root@localhost home]# cat hou.py
#!/usr/local/bin/python2.7
for nu in range(5):
print nu,
range函数和len函数一起使用:
[root@localhost home]# ./hou.py
9 0
10 1
19 2
29 3
22 4
[root@localhost home]# cat hou.py
#!/usr/local/bin/python2.7
#####################
num = 9,10,19,29,22
for nu in range(len(num)):
print num[nu],nu
14 列表解析
[root@localhost home]# cat hou.py
#!/usr/local/bin/python2.7
nu = [ x ** 2 for x in range(5) ]
for i in nu:
print i
[root@localhost home]# ./hou.py
0
1
4
9
16
[root@localhost home]# cat hou.py
#!/usr/local/bin/python2.7
nu = [ x ** 2 for x in range(12) if not x > 10]
for i in nu:
print i
[root@localhost home]# ./hou.py
0
1
4
9
16
25
36
49
64
81
100
15 打开文件 open 函数
[root@localhost home]# ./hou.py
Enter file name: hou.py
#!/usr/local/bin/python2.7
filename = raw_input ("Enter file name: ")
job = open(filename,"r")
for i in job :
print i,
r是 读的权限 w当然就是写了
16错误和异常
try-except
把想检测的代码在这里面就可以
17函数
def function_name(参数):
“optional documentation string ”
function_suite
18 类
19 模块
模块就是把彼此有关系的代码组织到一个独立文件中,模块可以包含函数,执行代码,函数 ,类,或者是结合。
当你创建了一个python源文件后,模块的名字是不带.py后缀的文件名。创建好了模块可以用 import 语句导入。
import module_name .
20 实用的内建函数