0

我正在尝试编写一个程序,将班级中收到的百分比转换为 GPA 格式,然后最终找到整体 GPA。我希望它首先提示用户输入类的数量,然后输入百分比。我在让程序将百分比转换为 GPA 格式时遇到了一些麻烦(90 或更大等于 4、80 到 89 等于 3,等等......)。这是我到目前为止所拥有的

class_number = int(raw_input("How many classes do you have? "))
total_grade = list((raw_input("Enter Percentage: ")) for i in range(class_number))

a = total_grade

def alter(x):
   if x >= 90:
    return 4
   elif x >= 80:
    return 3
a = map(alter,a)

print a

问题是无论原始百分比如何,这似乎都只输出 4s。

任何帮助将不胜感激!谢谢!

4

1 回答 1

0

那是因为x实际上是一个字符串。我认为字符串总是大于数字。您需要将每个项目转换total_grade为 int:

total_grade = list(int(raw_input("Enter Percentage: ")) for i in range(class_number))

此外,您可以只使用列表推导:

total_grade = [int(raw_input("Enter Percentage: ")) for i in range(class_number)]
于 2013-03-12T00:27:02.443 回答