欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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中条件、循环等介绍说明

以上就是python中条件、循环等介绍说明的详细内容,更多请关注其它相关文章!

相关标签: python