Python:if语句打印特定变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:if语句打印特定变量相关的知识,希望对你有一定的参考价值。
我正在编写一个Python练习,计算3个学校科目的平均值。在计算平均值之后,我希望程序找到小于70的主题并打印“你可以改进'x'主题”。
我知道我可以这样做,并用特定的if statements
写出来
if geometry < 70:
print("Your geometry could be better")
elif algebra < 70:
print("Your algebra could be better")
etc etc
但我想知道是否有更简洁的答案,比如
if geometry or algebra or physics < 70:
print("Your", variable, "could be better")
我仍处于初学者级别的Python,是否有更简单的方法来编写if语句并避免使用那些长列表?
答案
将它们存储在字典中:
grades = {'algebra': 57, 'geometry': 82, 'physics': 68}
for subject in grades:
if grades[subject] < 70:
print('Your {} could be better'.format(subject))
这可以使用dict.items()
在一行中浓缩成列表理解!
[print("Your {} could be better".format(subject)) for subject, grade in grades.items() if grade < 70]
或同一句话中的多个科目:
grades = {'algebra': 57, 'geometry': 82, 'physics': 68}
subjects = ' and '.join([subject for subject, grade in grades.items() if grade < 70]))
print('Your {} could be better'.format(subjects))
另一答案
>>> subjects = {
... 'geometry': 80,
... 'algebra': 85,
... 'physics': 68
... }
... for subject, score in subjects.items():
... if score < 70:
... print('Your {} could be better'.format(subject))
...
Your physics could be better
另一答案
scores = {'geometry': 80, 'algebra': 85, 'physics': 68, 'chemistry': 50, 'biology': 69 }
to_improve = []
for subject, score in scores.items():
if score < 70:
to_improve.append(subject)
print ('Your', ' and '.join(to_improve), 'could be better')
以上是关于Python:if语句打印特定变量的主要内容,如果未能解决你的问题,请参考以下文章