Python级计算器
我是新来的,所以请原谅我的打字错误。我最近刚开始学习Python,所以当我练习编写一些代码时,我在我的脚本中遇到了这些非常不寻常的错误,它们本不应该存在。请帮助我理解为什么以及如何摆脱它。我试着制作一个成绩计算器,下面是我写的脚本:Python级计算器,python,Python,我是新来的,所以请原谅我的打字错误。我最近刚开始学习Python,所以当我练习编写一些代码时,我在我的脚本中遇到了这些非常不寻常的错误,它们本不应该存在。请帮助我理解为什么以及如何摆脱它。我试着制作一个成绩计算器,下面是我写的脚本: def ComputeGrade(Score): if score < 0 or score > 1: print ("Bad Score") elif score == 10.0: print ("Bad
def ComputeGrade(Score):
if score < 0 or score > 1:
print ("Bad Score")
elif score == 10.0:
print ("Bad Score")
elif score < 10.0:
print ("A")
elif score >= 0.8:
print ("B")
elif score >= 0.7:
print ("C")
elif score >= 0.6:
print ("D")
elif score < 0.6:
print ("F")
try:
score = float(input("Enter Score: "))
print (ComputeGrade(score))
except ValueError as e:
print ("Bad Score")
def计算等级(分数):
如果得分<0或得分>1:
打印(“坏分数”)
elif得分==10.0:
打印(“坏分数”)
elif分数<10.0:
打印(“A”)
elif得分>=0.8:
打印(“B”)
elif得分>=0.7:
打印(“C”)
elif得分>=0.6:
打印(“D”)
elif评分<0.6:
打印(“F”)
尝试:
分数=浮动(输入(“输入分数:”)
打印(计算等级(分数))
除ValueError为e外:
打印(“坏分数”)
`它不给我一个输出作为“等级”或错误消息“坏分数”仅,而是显示无值
如果您能向我解释一下到底出了什么问题,那就太好了。您的参数是带大写字母“S”的分数,您使用的是带小写字母“S”的可变分数。确保它们匹配或将它们视为不同的变量。得分!=得分 另外,如果希望print(ComputeGrade(score))打印值,则需要在ComputeGrade()函数中返回一个值。i、 e
def printvalue():
return "VALUE"
print(printvalue()) #this prints out the returned value of printvalue()
欢迎来到木桩溢出 该行:
print (ComputeGrade(score))
实际上打印函数在内存中的位置,而不是函数中的位置。由于您已经在ComputeGrade内部打印,因此无需打印
你可以:
让ComputeGrade返回一个字符串,并打印该字符串
def ComputeGrade(score):
...
elif (score >= 0.8):
return "B"
...
print ComputeGrade(score)
或者,您可以继续在函数本身中打印,并删除ComputeGrade上的print语句:
ComputeGrade(score)
以下是正如其他答案所说,您不需要再次打印。只需调用函数:
ComputeGrade(score)
顺便说一下,这里显示的成绩计算器有一个问题,因为所有有效的成绩都会变成“a”,因为所有有效的成绩都会命中第一个elif
语句,并且小于10(这不是应该是1.0而不是10吗?)。此外,在A和B之间没有任何分界点(我假设它应该是0.9?)
建议:每当你发现自己使用了大量的<代码> ELIF < /Cord>语句时,请考虑使用字典来代替。字典允许您根据值“查找”某些内容
它可能是这样的(因为变量区分大小写,所以我已将score
切换为小写):
def计算等级(分数):
等级查找={
再一次,就像其他帖子所说的那样,你有两次print
。而且,你的逻辑看起来不正确,这里有一些东西供你参考:
def ComputeGrade(score):
if score > 0 and score <= 1:
if score < 0.6:
print("F")
elif score < 0.7:
print("D")
elif score < 0.8:
print("C")
elif score < 0.9:
print("B")
else:
print("A")
else:
print("Bad Score")
try:
score = float(input("Enter Score: "))
ComputeGrade(score)
except ValueError as e:
print ("Bad Score")
def计算等级(分数):
如果分数大于0,则无需再给第二个建议打分。在Python中,您不需要像您所说的那样分割界限。哦,太酷了,我不知道。谢谢您提供的信息,我编辑了我的答案。是的。Python之所以如此棒的另一个小原因是。分数!=分数是我在Python中学到的第一件事!我怎么能这么快就忘记这一点,我太笨了。无论如何,谢谢你的帮助!它帮了我很多忙。我喜欢你简洁的答案。今天学习一些新东西。但是请注意,你可能需要将score
转换为float
数据类型,例如score=float(输入(“输入分数”))
@ian0411是的,我已经删除了它,打算在其他地方做,改变了主意,忘了把它放回去。谢谢。很抱歉,自从我一个月前刚开始工作以来,你在那里说的话已经让我不知所措了。我还没有接触过元组和字典之类的话题,所以我还有很多东西要学。但是说实话,我确实学到了一些新的东西,即使它现在太过火了,它也确实有帮助。@Jarmos太棒了。另外:我知道这是不是让人难以理解或难以理解,但元组和字典是至关重要的(而且非常基本)语言的一部分,所以在继续更多的编码之前,请尽快学习它们。@Jarmos在很多方面,python字典可能是语言中最重要的部分。语言中没有什么比这更重要的了。是的,我还在学习,我刚开始一个月,所以我的逻辑仍然很新。Th感谢所有这些令人惊讶的评论,我想我现在可以学得很快了!而且我要说的是,你的脚本看起来非常干净和有条理,我想从现在起我应该把你的作为参考。现在很有意义,谢谢你的建议。我还在学习,一个月前就开始了。任何建议都是一个巨大的合作伙伴自信对我来说是一种鼓舞。
def ComputeGrade(score):
if score > 0 and score <= 1:
if score < 0.6:
print("F")
elif score < 0.7:
print("D")
elif score < 0.8:
print("C")
elif score < 0.9:
print("B")
else:
print("A")
else:
print("Bad Score")
try:
score = float(input("Enter Score: "))
ComputeGrade(score)
except ValueError as e:
print ("Bad Score")