当 age = 8 时,结果正确,但 age = 20 时,为什么没有打印出 adult?
age = 8
if age >= 6:
print 'teenager'
elif age >= 18:
print 'adult'
else:
print 'kid'
当 age = 8 时,结果正确,但 age = 20 时,为什么没有打印出 adult?
如果要修复,应该如何修复?
age = 8
if age >= 6:
print 'teenager'
elif age >= 18:
print 'adult'
else:
print 'kid'
当 age = 8 时,结果正确,但 age = 20 时,为什么没有打印出 adult?
如果要修复,应该如何修复?
2018-01-11
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' task.py 当 age = 8 时,结果正确,但 age = 20 时,为什么没有打印出 adult age = 8 if age >= 6: print 'teenager' elif age >= 18: print 'adult' else: print 'kid' ''' # age = int(raw_input('请输入你的年龄:')) age = 20 if age >= 18: print 'adult' elif age >= 6: print 'teenager' else: print 'kid' # 如果按照分数划定结果: # # 90分或以上:excellent # # 80分或以上:good # # 60分或以上:passed # # 60分以下:failed score = int(raw_input('请输入你的成绩:')) if score >= 90: print 'excellent' elif score >= 80: print 'good' elif score >= 60: print 'passed' else: print 'failed'
特别注意: 这一系列条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了。
所以在:
age = 20 if age >= 6: print 'teenager' elif age >= 18: print 'adult' else: print 'kid'
这个代码里先执行第一个判断,age>=6 因为age=20,这里判断是true,直接打印'teenager'。而不再执行后面的判断。
所以要修复这个问题,就应该使判断条件较大的优先执行,更改后就是:
age = 20 if age >= 18: print 'adult' elif age >= 6: print 'teenager' else : print 'kid'
这样,执行第一个判断age>=18,这里age=20,判断为true。打印'adult'。不执行后续语句。
如果,age=8,那么执行第一个判断age>=18, 就不符合,然后执行下一个age>=6,判断为true。打印'teenager'不执行后续语句
能理解吗。
举报