Python 条件分支(if语言,for语句,while语句)

if语句

if condition:

  代码块
condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)
if 1<2:
  print('1 less than 2')

代码块也就是类似于if语句的冒号后面的就是一个语句块,在if,for,def,Class等的后面。

多条件分支:

if……elif……else语句。

a = 5
if a<0:
    print('negative')
elif a==0:
    print('zero')
else:
    print('positive')

结果为:

positive
score = 80
if score<0:
    print('wrong')
else:
    if score==0:
        print('egg')
    elif score <= 100:
        print('right')
    else:
        print('too big')
结果为:
right
val = input('>>>')
val = int(val)
if val >= 1000: #fold
    if val>=10000:
        print(5)
    else:
        print(4)
else:
    if val>=100:
        print(3)
    elif val >= 10:
        print(2)
    else:
        print(1)

while 循环

while condition:
block

当条件满足即condition为True,进入循环体,执行block 。要注意不要进入死循环。

flag=10
while flag:
    print(flag)
    flag -= 1

结果为10到1 
count  = 1
while count  <= 10:
    print( count)
    count = count + 1
    if count == 5:
        break   # 彻底停止循环. 不会执行后面的else
else:   # while条件不成立的时候执行
    print("这里是else")


结果为:
1
2
3
4

for循环

or element in iteratable:
block

当可迭代对象中有元素可以迭代,进入循环体,执行block 。

for i in range(10):
    print(i+1)

结果为:
1-10

循环 continue语句

中断当前循环的当次执行,继续下一次循环

for i in range(0,10):
    if i & 1:
        continue
    print(i)

结果为:
0,2,4,6,8

循环 break语句

终止当前循环

count = 0
for i in range(0,1000,7):
    print(i)
    count += 1
    if count >= 20:
        break

结果为:
0
7
14
21
28
35
42
49
56
63
70
77
84
91
98
105
112
119
126
133

continue和break是循环的控制语句,只影响当前循环,包括while、for循环 ,如果循环嵌套, continue和break也只影响语句所在的那一层循环 ,continue和break 不是跳出语句块,所以 if cond: break 不是跳出if,而是终止if外的break所在的循环。

给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字

num = int(input("请输入一个不大于5位数的数字:"))
if num>10000:
    a=5
    print("你输入的是{}位数".format(a))
elif num > 1000:
    a=4
    print("你输入的是{}位数".format(a))
elif num>100:
    a=3
    print("你输入的是{}位数".format(a))
elif num>10:
    a=2
    print("你输入的是{}位数".format(a))
else:
    a=1
    print("你输入的是{}位数".format(a))
c = num
for i in range(a):
    n = c // 10
    print(c - n*10)
    c=n

给定一个不超过5位的正整数,判断该数的位数,依次从万位打印到个位的数字

num = int(input("请输入一个不大于5位数的数字:"))
if num>10000:
    a=5
    print("你输入的是{}位数".format(a))
elif num > 1000:
    a=4
    print("你输入的是{}位数".format(a))
elif num>100:
    a=3
    print("你输入的是{}位数".format(a))
elif num>10:
    a=2
    print("你输入的是{}位数".format(a))
else:
    a=1
    print("你输入的是{}位数".format(a))
pre = 0
for i in range(a,0,-1):
    cur = num//(10**(i-1))
    print(cur - pre*10)
    pre = cur

循环 else子句 

while condition:
block
else:
block
for element in iteratable:
block
else:
block

如果循环正常的执行结束,就执行else子句;如果使用break终止,else子句不会执行。

 
 

猜你喜欢

转载自www.cnblogs.com/xpc51/p/11497687.html