当 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'不执行后续语句
能理解吗。
举报