Python入门

2015.7.31

慕课网 python 安装配置
 
安装之后配置环境变量(最后加入安装的python位置如:D:\Python),后在命令提示符中输入python进入python交互式环境,
也可以用Notepad编写python文件代码(.py),使用cd进入该文件路径,输入python hello.py(文件名)进行执行调用。

慕课网 python入门
 
python是注重大小写的
使用缩进控制代码体(代替其他语言的大括号)
函数放在调用之前
全局变量(global)在函数体重调用外面的变量
转义字符\ 如:
  1. s='hello \'word\'
  2. print s
多行字符串:r'''str'''用法:其中str可以有任意字符不需要转义
 
逻辑运算(短路运算):
在计算a and b时:如果a为false则返回结果必定是false返回a,若a为true则返回b
在计算a or b 时:若a为true则返回结果必定是true返回a,若a为false则返回b
 
list:
  1. L=[1,2,3]
  2. print L[0]
tuple:
  1. T=(1,2,3)
  2. print T[0]
tuple元组是不可更改的指向不可变,但当tuple中有元素为list,list的值是可变的,若要使其也为不可变的需要将list改为tuple
当tuple只有一个元素时后面多加个“,”
 
dict(键值对):
  1. D={'a':1,'b':2}
  2. print D['a']
dict查找速度快,占内存大,dict中的key是不可变的
 
set:
  1. s = set([('Adam',95),('Lisa',85),('Bart',59)])
  2. for x in s:
  3. print x[0],':',x[1]
set中不含有重复值,且set中的值是不可变的
 
for循环:
  1. L =[75,92,59,68]
  2. sum =0.0
  3. for score in L:
  4. sum=sum+score
  5. print sum /4
函数:
  1. def add(x,y)
  2. return x+y
  3. print ff(4,5)
返回多值的函数
  1. import math
  2. def move(x, y, step, angle):
  3. nx = x + step * math.cos(angle)
  4. ny = y - step * math.sin(angle)
  5. return nx, ny
  6. x,y=move(100,100,60,math.pi/6)
  7. print x,y
递归函数:
  1. def fact(n):
  2. if n==1:
  3. return1
  4. return n * fact(n -1)
  5. print fact(20)
默认参数函数:
  1. def power(x, n=2):
  2. s =1
  3. while n >0:
  4. n = n -1
  5. s = s * x
  6. return s
  7. print power(5)
可变参数函数:
  1. def average(*args):
  2. sum =0.0
  3. if len(args)==0:
  4. return sum
  5. for x in args:
  6. sum = sum + x
  7. return sum / len(args)
  8. print average()
  9. print average(1,2)
  10. print average(1,2,2,3,4)
切片(以下用list作为例子,tuple同样的做法):
  1. L=[1,2,3,4,5,6,7,8,9,0];
  2. print L[x:n]#从第L[x]取到L[n-1]
  3. print L[x:n:y]#从L[x]取到L[n-1]每隔y位取一个
  4. print L[:n]#从起始位取到L[n-1]
upper()将字符串转为大写,lower()将字符串转为小写
字符串拼接用+号
 
对字符串进行切片:
  1. #将每个字符串的首字母变为大写
  2. def firstCharUpper(s):
  3. a=s[:1].upper()+s[1:]
  4. return a
  5. print firstCharUpper('hello')
  6. print firstCharUpper('sunday')
  7. print firstCharUpper('september')
range(x,y,n)生成从x到y-1的数组,每隔n个取一个
range(x,y)创建x到y-1的数组
 
迭代:
enumerate(L)给L创建索引
  1. L =['Adam','Lisa','Bart','Paul']
  2. for index,name in enumerate(L):
  3. print index,'-',name
zip(x,y)将x,y合并为一个list
  1. L =['Adam','Lisa','Bart','Paul']
  2. for index, name in zip(range(1,len(L)+1),L):
  3. print index,'-', name
迭代dict的value:
dict.values()和dict.itervalues()都能得到dict的values值
dict.items()和dict.iteritems()都能得到dict的键值
相对而言使用itervalues()和iteritems()
  1. d ={'Adam':95,'Lisa':85,'Bart':59,'Paul':74}
  2. sum =0.0
  3. for k, v in d.items():
  4. sum = sum + v
  5. print k,':',v
  6. print'average',':',sum/4
生成列表:
  1. print[x*(x+1)for x in range(1,100,2)]
复杂表达式:
  1. d ={'Adam':95,'Lisa':85,'Bart':59}
  2. def generate_tr(name, score):
  3. if score<60:
  4. return'<tr><td>%s</td><td style="color:red">%s</td></tr>'%(name, score)
  5. return'<tr><td>%s</td><td>%s</td></tr>'%(name, score)
  6. tds =[generate_tr(name,score)for name, score in d.iteritems()]
  7. print'<table border="1">'
  8. print'<tr><th>Name</th><th>Score</th><tr>'
  9. print'\n'.join(tds)
  10. print'</table>'
字符串可以通过%进行格式化,用指定的参数代替%s,字符串的join()方法可以将一个list拼接成一个字符串
 
条件过滤:
  1. def toUppers(L):
  2. return[x.upper()for x in L if isinstance(x,str)]
  3. print toUppers(['Hello','world',101])
isintance(x,str)判断x是否是字符串
 
多层表达式:
 
利用 3 层for循环的列表生成式,找出对称的 3 位数。例如,121 就是对称数,因为从右到左倒过来还是 121。
  1. print[m*100+n*10+x for m in range(1,10)for n in range(10)for x in range(10)if m==x]
 
 

 

posted on 2017-05-09 11:39  轻浮不韪  阅读(200)  评论(0编辑  收藏  举报