第5章 程序流程控制
5.1分支语句
即条件语句。有三种结构:
if 结构
# if语句
score=int(input('请输入一个0~100的整数:'))
if score >= 85:
print('您真优秀')
if score < 60:
print('您需要加倍努力')
if (score >= 60) and (score< 85):
print('您的成绩还可以,仍需加倍努力!')
请输入一个0~100的整数:
if-else结构
score=int(input('请输入一个0~100的整数:'))
if score >= 60:
if score >= 80:
print('您真优秀')
else:
print('您的成绩还可以,仍需加倍努力!')
else:
print('您需要加倍努力')
请输入一个0~100的整数:
if-elif-else结构
score=int(input('请输入一个0~100的整数:'))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'F'
print('Grade='+ grade)
请输入一个0~100的整数:
5.2循环语句
Python支持两种循环语句:while和for。
while语句
while循环条件:
循环体语句组
[else:
语句组]
当遇到break、return和有异常情况下都会中断循环。
i=0
while i*i<1000:
i=i+1
print('i='+str(i)) #str()字符串函数
print('i*i='+str(i*i))
i=32
i*i=1024
i=0
while i*i<10:
i=i+1
print(str(i)+'*'+str(i)+'=',i*i)
else:
print('While Over!')
1*1= 1
2*2= 4
i=0
while i*i<10:
i=i+1
if i==3: #添加判断,在i==3时终止循环
break
print(str(i)+'*'+str(i)+'=',i*i)
else: #else循环体被中断,不执行else语句
print('While Over!')
1*1= 1
2*2= 4
for语句
Python中只有一种for语句,即for-in语句,它可以遍历任何可迭代对象中的元素。
*可迭代对象包括:字符串、列表、元组、集合和字典等。
#声明整数列表
number=[5,78,37,999]
for item in number:
print(item)
5
78
37
999
for item in range(10):
print(item)
else :
print('Over!')
0
1
2
3
4
5
6
7
8
9
Over!
for item in range(10):
if item==5:
break
print(item)
else :
print('Over!')
0
1
2
3
4
跳转语句
跳转语句能够改变程序的执行顺序,包括break、continue和return。
break语句用于强行退出循环体,不再执行循环体中剩余的语句。
continue语句用于结束本次循环,跳过循环体中尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。
for item in range(6):
if item==3:
continue #continue之后的语句不再执行,接着进入下次循环
print(item)
0
1
2
4
5
计算水仙花数
水仙花数:一个三位数,三位数各个位数的立方之和等于三位数本身。
#计算水仙花数
for n in range (100,1000):
m1 = n%10#个位
m2 = ( n//10)%10#十位
m3 = n//100#百位
if (m1**3+m2**3+m3**3==n):
print(n)
for A in range(1, 10):
for B in range(0, 10):
for C in range(0, 10):
if (A ** 3 + B ** 3 + C ** 3 == A * 100 + B * 10 + C):
print(100 * A + 10 * B + C)
i=100;r=0;s=0;t=0
while i<1000:
r=i//100
s=(i-r*100)//10
t=(i-r*100)%10
if (i==r**3+s**3+t**3):
print(i)
i=i+1
153
370
371
407