将字符串除以整数以获得 GPA 计算

Posted

技术标签:

【中文标题】将字符串除以整数以获得 GPA 计算【英文标题】:Dividing a string by an integer to get GPA calculation 【发布时间】:2022-01-01 04:51:12 【问题描述】:

我正在使用 Python 并正在编写一个程序,用户可以在其中输入他们想要计算的课程数量。然后程序应该获取附加的项目(字符串),然后将它们除以他们想要的课程数量,换句话说,总数(整数)。我似乎无法找到正确实施此功能的方法,有什么帮助吗?问题在于 If value = 1。

if (value == 1):
    selection = int(input("How many classses would you like to include?\n"))
    for i in range (0,selection):
        print("What is the grade of the class?")
        item = (input())
        grades.append(item)
        GPA_list = [sum(item)/selection for i in grades]
        print(GPA_list)
    

【问题讨论】:

用户输入的是什么类型的字符串?字母等级?数字分数?您不能将字母 D 除以数字。 item 可能应该是float,而不是str 为什么不将项目转换为浮点数? 是的,你在item 上运行sum,但itemm 是一个字符串。此外,一旦您将所有项目附加到列表中,您可能应该在 for 循环之外构建列表。 用户应该输入数字分数,我将如何将项目从字符串转换为浮点数,我尝试了浮点数(输入()),但它说浮点数对象不可交互 【参考方案1】:

您可以使用mean 来简化这个过程,它会为您进行求和和除法:

>>> from statistics import mean
>>> print(mean(
...     float(input(
...         "What is the grade of the class?\n"
...     )) for _ in range(int(input(
...         "How many classes would you like to include?\n"
...     )))
... ))
How many classes would you like to include?
5
What is the grade of the class?
4
What is the grade of the class?
3
What is the grade of the class?
4
What is the grade of the class?
2
What is the grade of the class?
4
3.4

要修复现有代码,您需要做的就是确保将 item 转换为浮点数,然后在 grades 而不是每个 item 上调用 sum

grades = []
selection = int(input("How many classses would you like to include?\n"))
for i in range(0, selection):
    print("What is the grade of the class?")
    item = float(input())
    grades.append(item)
    GPA_list = sum(grades) / selection
    print(GPA_list)

请注意,您的代码会在循环中的每个步骤打印平均值的一小部分,直到最终在最后一次迭代中打印出正确的结果;如果您也想解决此问题,请取消缩进最后两行。

【讨论】:

非常感谢!你真的帮了我,它成功了!我会支持你,但它不会让我哈哈。 @jfcrespo 但是,您可以通过单击复选标记来接受答案。

以上是关于将字符串除以整数以获得 GPA 计算的主要内容,如果未能解决你的问题,请参考以下文章

如何从 python 中的用户 2 值读取并找到最高 GPA?

如何将两个整数相除以获得双精度?

在 Python 中使用函数计算 GPA

GPA怎么算

gpa如何换算?

GPA怎么算呢