python中条件、循环等介绍说明
程序员文章站
2022-05-06 13:56:55
...
获取字典中任意的键-值对
>>> x={'a':1,'b':2} >>> key,value=x.popitem() >>> key,value ('a', 1) >>> del x[key] Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> del x[key] KeyError: 'a' >>> x {'b': 2} >>> x[key]=value >>> x {'a': 1, 'b': 2} >>> del x[key]
增量赋值
>>> x=2 >>> x+=1 >>> x*=2 >>> x >>> fnord='foo' >>> fnord+='bar' >>> fnord*=2 >>> fnord 'foobarfoobar'
条件执行if语句
>>> name=raw_input('?') ?Yq Z >>> if name.endswith('Z'): \ print 'Hello,Mr.Z' Hello,Mr.Z
else子句
>>> name=raw_input('what is your name?') what is your name?Yq Z >>> if name.endswith('Z'): print 'Hello,Mr.Z' else: print 'Hello,stranger' Hello,Mr.Z
elif子句
>>> num=input('Enter a number: ') Enter a number: 5 >>> if num>0: print 'The number is position' elif num<0: print 'The number is negative' else: print 'The number is zero' The number is position
条件嵌套语句
>>> name=raw_input('What is your name?') What is your name?Yq Z >>> if name.endswith('Yq'): if name.startswith('Z'): print 'Hello,Yq Z' elif name.startswith('K'): print 'Hello,Zyq' else: print 'Hello,Yq' else: print 'Hello,stranger' Hello,stranger
>>> number=input('Enter a number between 1 and 10:') Enter a number between 1 and 10:6 >>> if number<=10 and number>=1: print 'Great!' else: print 'Wrong!' Great!
>>> age=10 >>> assert 0<age<100 >>> age=-1 >>> assert 0<age<100 Traceback (most recent call last): File "<pyshell#21>", line 1, in <module> assert 0<age<100 AssertionError
while循环
>>> x=1 >>> while x<=100: print x x+=1
>>> while not name: name=raw_input('Please enter your name:') print 'Hello,%s !' % name Please enter your name:zyq Hello,zyq !
for循环
>>> words=['this','is','an','ex','parrot'] >>> for word in words: print word this is an ex parrot >>> range(0,10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> for i in range(1,8): print i 2 4 6
字典循环(迭代)
>>> d={'x':1,'y':2,'z':3} >>> for key in d: print key,'corresponds to',d[key] y corresponds to 2 x corresponds to 1 z corresponds to 3
并行迭代
>>> names=['Anne','Beth','George','Damon'] >>> ages=[12,19,18,20] >>> for i in range(len(names)): print names[i],'is',ages[i],'years old' Anne is 12 years old Beth is 19 years old George is 18 years old Damon is 20 years old
>>> zip(names,ages) [('Anne', 12), ('Beth', 19), ('George', 18), ('Damon', 20)] >>> for name,age in zip(names,ages): print name,'is',age,'years old' Anne is 12 years old Beth is 19 years old George is 18 years old Damon is 20 years old >>> zip(range(5),xrange(100)) [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
编号迭代
>>> d [1, 2, 4, 4] >>> for x in d: if x==4: d[d.index(x)]=6 >>> d [1, 2, 6, 6] >>> S=['skj','kiu','olm','piy'] >>> index=0>>> for s1 in S: if 'k' in s1: S[index]='HH' index+=1 >>> S ['HH', 'HH', 'olm', 'piy']>>> for index,s2 in enumerate(S): #enumerate函数提供索引-值对 if 'H' in s2: S[index]='DF' >>> S ['DF', 'DF', 'olm', 'piy']
翻转、排序迭代
>>> sorted([4,3,6,8,3]) [3, 3, 4, 6, 8] >>> sorted('Hello,world!') ['!', ',', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w'] >>> list(reversed('Hello,world!')) ['!', 'd', 'l', 'r', 'o', 'w', ',', 'o', 'l', 'l', 'e', 'H'] >>> ''.join(reversed('Hello,world!')) '!dlrow,olleH'
break跳出循环
>>> for n in range(99,0,-1): m=sqrt(n) if m==int(m): print n break
while True/break
>>> while True: word=raw_input('Please enter a word:') if not word:break print 'The word was '+word Please enter a word:f The word was f Please enter a word:
循环中的else语句
>>> for n in range(99,81,-1): m=sqrt(n) if m==int(m): print m break else: print 'h' h
列表推导式-轻量级循环
>>> [x*x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> [x*x for x in range(10) if x%3==0] [0, 9, 36, 81] >>> [(x,y) for x in range(3) for y in range (3)] [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] >>> result=[] >>> for x in range(3): for y in range(3): result.append((x,y)) >>> result [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] >>> girls=['Alice','Bernice','Clarice'] >>> boys=['Chris','Arnold','Bob'] >>> [b+'+'+g for b in boys for g in girls if b[0]==g[0]] ['Chris+Clarice', 'Arnold+Alice', 'Bob+Bernice']
pass
>>> if name=='Nsds': print 'Welcome!' elif name=='UK': #还没完 pass elif name=='Bill': print 'Access Denied' else: print 'Nobody!'
del x和y同时指向一个列表,但是删除x并不会影响y。删除的只是名称,不是列表本身(值)
>>> x=['Hello','world'] >>> y=x >>> y[1]='Python' >>> x ['Hello', 'Python'] >>> del x >>> y ['Hello', 'Python']
exec
>>> exec "print 'Hello,world!'" Hello,world! >>> from math import sqrt >>> exec "sqrt=1" >>> sqrt(4) Traceback (most recent call last): File "<pyshell#36>", line 1, in <module> sqrt(4) TypeError: 'int' object is not callable #增加一个字典,起到命名空间的作用 >>> from math import sqrt >>> scope={} >>> exec 'sqrt=1' in scope >>> sqrt(4) 2.0 >>> scope['sqrt']
注意:命名空间,称作作用域。可以把它想象成保存变量的地方,类似于不可见的字典。执行 x=1这类赋值语句时,就将键x和值1放在当前的命名空间内,这个命名空间一般来说都是全局命名空间。
>>> len(scope)2 >>> scope.keys() ['__builtins__', 'sqrt']
eval 求值
>>> scope={} >>> scope['x']=2 >>> scope['y']=3 >>> eval('x*y',scope) >>> scope={} >>> exec 'x=2' in scope >>> eval('x*x',scope)
以上就是python中条件、循环等介绍说明的详细内容,更多请关注其它相关文章!