python条件、循环和其他语法

来源:互联网 发布:植物大战僵尸源码 编辑:程序博客网 时间:2024/06/08 14:44
print:
print输出多个变量的时候可以用','隔开,print后面不用跟':'否则会报错。
print 10,20,'杨焕滨'import的用法:
'''导入模块'''
importre;
'''导入模块的某个py'''
fromre import sub;
'''导入某个模块的所有方法'''
fromre import *;
'''导入模块使用别名,后面的代码可以使用rest代替re'''
importre as rest;
if语法:
if__name__ =='__main__':
num=input('Enter anum : ')
ifnum>0:
print'This is a positive'
elifnum<0:
print'This is a negative'
else:
print'This is a zero'
while循环:
if__name__ =='__main__':
name=''
whilenotname:
name=raw_input('input yourname:')
print'hello %s!'% name
while....else:while循环结束执行else。for 循环:
for number in [1,2,3,4,5]:
print number
当 in 后面是dict类型的时候,for ... in ...循环不会取出每一项,只会取出字典的key
print [x for x in {'a':'b','c':'d'}]
输出:['a', 'c']列表推导式:
if__name__ =='__main__':
y=[x*xforx in range(10)]
printy
print[x*xforx in range(10)ifx%3==0]
print[(x,y)forx in range(2)fory in range(2)]
输出为:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 9, 36, 81]
[(0, 0), (0, 1), (1, 0), (1, 1)]
del关键字:
删除变量,del xexec动态执行字符串Python语句、eval(str)是exec的内建函数:
exec 'x=3*5+1' 等价于 x=eval('3*5+1') 最后都能得到x=16def关键字:
定义函数,def add(a,b): return a+b[:]有类似于copy.copy的作用,可以复制一个列表或元组给另一个变量,两个变量是两个副本,不指向同一个对象。
但是[:]仅仅限于列表或元组,copy.copy可用范围更广。
例子:namecopy=name[:]global关键字:
global关键字用于定义全局变量,在函数内部使用的变量使用global声明后,global变量在函数内部的改变会带到函数外。
defglobal_test():
globalx
x=x+1
if__name__ =='__main__':
x=1
global_test()
printx
输出结果:
2r/R开头的字符串:
在Python中以r或R开头的字符串表示原始字符串(非转义),使用以下例子进行说明:
stri=r'\t123'
stri2='\t123'
print(stri)
print(stri2)
输出的结果如下:
\t123
123
在Python的re模块,也就是正则表达式中大量的经常使用r开头的字符串作为匹配模式,这是因为在正则表达式中‘\’是转义字符,字符串中‘\’也是转义字符,为了避免Python使用正则表达式的时候和Java一样使用正则表达式的转义字符需要‘\\’,所以在字符串的开头用r将移除字符串中'\'的转义功能。
判断条件(真/假)情况总结:
代码块:
block=?
ifblock: print("True")
else:print("False")
?用以下符号代替,最后的输出结果为 False,即以下情况在Python中都代表了 假:
  • []
  • {}
  • None
  • ''(单引号)
  • ()
  • (0)
  • 0
  • ""(双引号)
  • ''''''(三引号)
也就是在表示空的变量情况下,使用的判断结果都为False。其余情况下判断为True。
pass关键字:空语句。
break、continue:同其他语言用法
快速获得列表的值:
>>> array = [1,2, 5, 3,6, 8, 4]
>>> array[1:] #列出1以后的
[2, 5, 3, 6, 8, 4]
>>> array[:-1] #列出-1之前的
[1, 2, 5, 3, 6, 8]
>>> array[::2]
[1, 5, 6, 4]
>>> array[2::]
[5, 3, 6, 8, 4]
>>> array[::3]
[1, 3, 4]
>>> array[::-1]
[4, 8, 6, 3, 5, 2, 1]
>>> array[::-2]
[4, 6, 5, 1]
yield关键字:
任何包含yeild语句的函数称为生成器。除了名字不同意外,它的行为和普通的函数也有很大的区别。这就在于它不像return那样返回,而是每次产生多个值。每产生一个值(使用yield语句),函数就会被冻结:即函数停在那点等待被激活。函数被激活后就从停止的那点开始执行。
博客详细说明:http://blog.csdn.net/preterhuman_peak/article/details/40615201
Python中类函数中的参数self代表实例本身。
b开头的字符串会产生一个bytes类型的列表
rasie 抛出异常try:...except Exception:...[except: ....[else:...[finally...]]]捕捉异常语法。
if __name__ =='__main__':
try :
raise Exception('这是异常!!!')
except Exception , e:
print e
当捕捉到异常的时候不执行else内的代码,否则执行else内的代码。finally不管是否捕捉到异常都会执行。
如果需要自定义异常类,一定要继承Exception才能使用raise抛出。
例如:
classmyException(Exception):
pass
if__name__ =='__main__':
try:
raisemyException
exceptmyException:
print'这是自定义异常!'
else:
print'没有捕捉到!'
Python特殊语法:filter、map、reduce、lambda[转]
lambda表达式返回一个函数对象
例子:
func = lambda x,y:x+y
func相当于下面这个函数
def func(x,y):
return x+y
注意def是语句而lambda是表达式
下面这种情况下就只能用lambda而不能用def
[(lambda x:x*x)(x) for x in range(1,11)]
map,reduce,filter中的function都可以用lambda表达式来生成!
map(function,sequence)
把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。
如果function有两个参数,即map(function,sequence1,sequence2)。
例子:
求1*1,2*2,3*3,4*4
map(lambda x:x*x,range(1,5))
返回值是[1,4,9,16]
reduce(function,sequence)
function接收的参数个数只能为2
先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给
function,然后只返回一个结果。
例子:
求1到10的累加
reduce(lambda x,y:x+y,range(1,11))
返回值是55。
filter(function,sequence)
function的返回值只能是True或False
把sequence中的值逐个当参数传给function,如果function(x)的返回值是True,就把x加到filter的返回值里 面。一般来说filter的返回值是list,特殊情况如sequence是string或tuple,则返回值按照sequence的类型。
例子:
找出1到10之间的奇数
filter(lambda x:x%2!=0,range(1,11))
返回值
[1,3,5,7,9]
如果sequence是一个string
filter(lambda x:len(x)!=0,'hello')返回'hello'
filter(lambda x:len(x)==0,'hello')返回''
','逗号的作用
1.print的时候使用逗号','可以不换行:
print11,
print22
输出:11 22
2.将其他类型转化为tupple类型:
>>>‘a’,
('a',)
表示一个长度为0的元组的时候,一定要在第一个元素后面加',',否则会认为这个元素不是元组类型,不加逗号的情况:
>>>('a')
'a'return x if condition else y:
如果condition成立return x 否则 return y

0 0
原创粉丝点击