python 系统学习笔记(一)
目标:熟悉python语言,以及学会python的编码方式。
如果你在window下, 去下载 http://www.python.org/getit/安装起来, 然后运行python, 进入python解释环境。如果你在ubuntu下, 执行: sudo apt-get install python, 然后在命令行下运行python, 进入python解释环境。
开始学习python
我建议你学习的过程也按照上面来,首先过一遍python官方文档:http://docs.python.org/2.7/tutorial/index.html如何查找python的某个功能?http://docs.python.org/2.7/library/index.html
C or C++ 扩展 read Extending and Embedding the Python Interpreter and Python/C API Reference Manual.
Python运算符列表
运算符
描述
x+y,x-y
加、减,“+”号可重载为连接符
x*y,x**y,x/y,x%y
相乘、求平方、相除、求余,“*”号可重载为重复,“%”号可重载为格式化
< span>,< span>,<,<=,==,<>,!=
比较运算符
+=,-=,*=,/=,%=,**=,< span>,<<=,&=,^=,|=
自变运算符
x|y
按位或
x^y
按位异或
x&y
按位与
~x
按位取反
x< span>,x<<y
x向左或向右移y位
is, is not
等同测试
in, not in
是否为成员测试
or,and,not
逻辑运算符
x[i],x[i:j],x.y,x(...)
索引,分片,限定引用,函数调用
(...),[...],{...},'...'
元组,列表,字典,转化为字符串
运算符优先顺序列表(从最高到最低)
运算符
描述
'expr'
字符串转换
{key:expr,...}
字典
[expr1,expr2...]
列表
(expr1,expr2,...)
元组
function(expr,...)
函数调用
x[index:index]
切片
x[index]
下标索引取值
x.attribute
属性引用
~x
按位取反
+x,-x
正,负
x**y
幂
x*y,x/y,x%y
乘,除,取模
x+y,x-y
加,减
x< y>,x<<y
移位
x&y
按位与
x^y
按位异或
x|y
按位或
x,x< yspan>,x==y,x!=y,x<=y,x<y
比较
x is y,x is not y
等同测试
x in y,x not in y
成员判断
not x
逻辑否
x and y
逻辑与
x or y
逻辑或
lambda arg,...:expr
Lambda匿名函数
编写条件语句时,应该尽量避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。
练习#score = raw_input("score:")#score=int(score)score=85# if else demo1if( score >60): print 'pass'else: print 'fail'# if elif else demo2if(score> 90): print 'A'elif(score >80) and(score <90): print 'B'elif(score>70) and (score<80): print 'C'else: print 'D'#if include if demo3a=3;b=4;c=5;if(a>b): if(c>a): print 'Max is c' else: print 'Max is a'else: if(b>c): print 'Max is b' else: print 'Max is c'print 'done'
1、一般格式
Python for循环的首行定义了一个赋值目标(或【一些目标】),以及你想遍历的对象,首行后面是你想重复的语句块(一般都有缩进)
for <target> in <object>:
else:
当ptyhon运行for循环时,会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环主体。循环主体一般使用赋值的目标来引用序列中当前的元素,就好像那事遍历序列的游标。
for首行中用作赋值目标的变量名通常是for语句所在作用于的变量(可能是新的)。这个变量名没有什么特别的,甚至可以在循环主体中修改。但是当控制权再次回到循环顶端时,就会自动被设成序列的下一个元素。循环之后,这个变量一般都还是引用了最近所用过的元素,也就是序列中最后的元素,除非通过一个 break语句退出了循环。
for语句也支持一个选用的else块,它的工作就像在while循环中一样:如果循环离开时没有碰到break语句,就会执行(也就是序列所有元素都被访问过了)
break和continue语句也可用在for循环中,就像while循环那样。for循环完整的格式如下:
for <target> in <object>:
else:
a = ['a1', 'a2', 'a3']b = ['b1', 'b2'] # will iterate 3 times,# the last iteration, b will be Noneprint "Map:"for x, y in map(None, a, b): print x, y # will iterate 2 times,# the third value of a will not be usedprint "Zip:"for x, y in zip(a, b): print x, y # will iterate 6 times,# it will iterate over each b, for each a# producing a slightly different outpuprint "List:"for x, y in [(x,y) for x in a for y in b]: print x, y
#demo for 'for'# -*- coding: cp936 -*-#for infor i in range(1,5): print i #step 2for i in range(1,5,2): print i;#breakfor i in range(1,5): if(i==6): break else: print 'break hello'#求质数import math for i in range(50, 100 + 1): for j in range(2, int(math.sqrt(i)) + 1): if i % j == 0: break else: print i #continuefor i in range(1,5): if(i==4): continue print 'no met continue'else: print i
#demo for whilea=4;while (a>0): print a; a=a-1; if(a==1): breakelse: print 'no meet break' #continuea=4;while (a>0): print a; a=a-1; if(a==1): continue print 'no meet continue'