在python中,我们可以使用if对条件进行判断。
比如我们需要一个功能,如果一个人这个月超过20天不迟到则他的工资加上五百块钱的奖金,如果超过10天不迟到则有两百块奖金,不迟到不足十天(含十天)则没有奖金。
award = 0
day = input('请输入到岗天数').strip()
if int(day) > 20:
award += 500
print('恭喜您获得全勤奖金')
elif int(day) > 10:
award += 200
print('恭喜您获得半勤奖金')
else:
print('抱歉,您因为经常迟到,所以没有奖金')
如果需要if、elif执行条件,则需要if、elif后面的条件成立。
f判断是从上往下,如果一个判断语句中有if、elif,则先执行if,如果if条件成立,则在执行if下的内容后结束,不再执行elif,如果将上面的代码中的if 条件(int(day) > 20)和elif条件(int(day) > 10)互换 ,当你输入22的时候,它会提示你获得了半勤奖金而非全勤。
如果if不成立则会往下走到elif,如果elif成立则执行elif并结束,如果不成立则继续往下直到遇到成立的语句(比如else),如果没有遇到成立的语句则会报错并结束。
一个完整的if语句包括一个if,一个或多个elif和一个else,else是在接受的东西不符合if 和elif 后进行的操作,else 不需要判断条件。
if 也可以进行嵌套,如果我们将上面的代码完善一下,防止用户的错误输入(比如输入汉字或者字母),我们可以使用嵌套来实现。
award = 0
day = input('请输入到岗天数').strip()
if day.isdigit():
if int(day) > 20:
award += 500
print('恭喜您获得全勤奖金')
elif int(day) > 10:
award += 200
print('恭喜您获得半勤奖金')
else:
print('抱歉,您因为经常迟到,所以没有奖金')
else:
print('输入错误')
上面改善的代码最外面的if 条件(if day.isdigit():)中没有比较运算符,因为if 只需要条件为True即可执行,.isdigit()是判断day是否是数字。
一个if 语句中只能有一个if ,但可以有多个elif:
award = 0
day = input('请输入到岗天数').strip()
if day.isdigit():
if int(day) > 20 and int(day) < 30:
award += 500
print('恭喜您获得全勤奖金')
elif int(day) <= 20 and int(day) > 10:
award += 200
print('恭喜您获得半勤奖金')
elif int(day) <= 10 and int(day)>= 0:
award += 200
print('下回能不能不迟到了?')
else:
print('兄弟,一个月只有30天...')
else:
print('输入错误')