Python 学习笔记 -2

来源:互联网 发布:淘宝卖家必须用千牛吗 编辑:程序博客网 时间:2024/04/28 18:33




一、 Python 的对象


二、语句和语法
1、程序 -- 包 -- 模块 -- 语句 -- 表达式 -- 对象 :在C#中习惯用 项目 来组织解决方案,在Python中应当用 Package 来组织,用Module 来封装。
2、一些小习惯的调整:采用缩进在我看来更像是故意标新立异耍Cool的东西。


三、 if 语法
if X:
  A = Y
else:
  A = Z


A = Y if X else Z
>A = [Z,Y][bool(X)] # bool() 函数会把 X 转化为对应的整数 1 或 0
四、while 和 for 循环
while True:
  name = input('Enter command:')
  if name == 'stop':break;
  elif name == 'continu':continu
  else:...


for x in ['a','b','c']
  print(x)


prod = 1
for item in [1,2,3,4]:prod*=item


T = [(1,2),(3,4),(5,6)]
for (a,b) in T:
  print(a,b)


D = {'A':1,'B':2,'C':3}
for key in D:
  print(key,'=>',D[key])


for((a,b),c) in [([1,2],3),['XY',6]]:print(a,b,c)
for 类似 c#的 foreach 
原书P182的读取文件的例子很不错,参考之,搞定循环!(为了提高循环效率,参考 range 和 zip/map)


五、迭代器和表达式
手工迭代的例子:
>>>E = enumerate('spam')
>>>I = iter(E)
>>>next(I)
(0,'s')
表达式:
>>>lines = [line.rstrip() for line in open('script1.py') if line[0] == 'P']
上面的表达式从文件  script1.py 中按行读取,如果行的首字母是 P,则 rstrip() 后纳入列表 .... 
这种表达式的基础是迭代,就是上面的 iter(),遵循迭代协议的所有对象都支持这种表达式。


六、小结
1、Python中没有 switch,对应的,用 字典 的方式来实现
2、为了遍历列表,可以用 while 或者 for,但是采用迭代器的方式更具效率。
3、Python中的迭代器和C#的迭代器还没有看出有什么明显的差别,需要更深入的研究。不过在Python中可以通过表达式使用迭代器,在C#中可没有这么干过。
4、仍然要对各种类型的相互转换进行深入学习......Python的类型转换是否是安全的?













0 0
原创粉丝点击