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语句打印特定变量的主要内容,如果未能解决你的问题,请参考以下文章

使用方法或if语句插入到实例变量中 (Python)

PowerShell 变量包含特定数字

Python语言的一些基本常用语句

If语句在While True循环(Python)中返回False

Python 中如何打印变量值

面临使用 qt 完成编程的 if 语句之外打印变量数据的问题