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 demo1
- if( score >60):
- print 'pass'
- else:
- print 'fail'
- # if elif else demo2
- if(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 demo3
- a=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 None
- print "Map:"
- for x, y in map(None, a, b):
- print x, y
- # will iterate 2 times,
- # the third value of a will not be used
- print "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 outpu
- print "List:"
- for x, y in [(x,y) for x in a for y in b]:
- print x, y
- #demo for 'for'
- # -*- coding: cp936 -*-
- #for in
- for i in range(1,5):
- print i
- #step 2
- for i in range(1,5,2):
- print i;
- #break
- for 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
- #continue
- for i in range(1,5):
- if(i==4):
- continue
- print 'no met continue'
- else:
- print i
while <test>:
else:
break和continue可以出现在while(或for)循环主体的任何地方,但通常会进一步嵌套在if语句中,根据某些条件来采取对应的操作。
- #demo for while
- a=4;
- while (a>0):
- print a;
- a=a-1;
- if(a==1):
- break
- else:
- print 'no meet break'
- #continue
- a=4;
- while (a>0):
- print a;
- a=a-1;
- if(a==1):
- continue
- print 'no meet continue'