Python (3)输出有问题
我正在尝试创建一个数字等级到字母等级的转换器,它接受用户输入,然后输出字母等级的等效值。我的问题是,每当我输入一个数字时,它只会吐出字母等级,然后在低于该等级时,它会吐出“你的字母等级为零!” 我的目标是让它达到“你的字母等级是(字母等级)!" 代码如下:Python (3)输出有问题,python,function,if-statement,Python,Function,If Statement,我正在尝试创建一个数字等级到字母等级的转换器,它接受用户输入,然后输出字母等级的等效值。我的问题是,每当我输入一个数字时,它只会吐出字母等级,然后在低于该等级时,它会吐出“你的字母等级为零!” 我的目标是让它达到“你的字母等级是(字母等级)!" 代码如下: grade = int(input("Please enter what you made on the test here:")) def grade_converter(grade): if grade >= 94 and
grade = int(input("Please enter what you made on the test here:"))
def grade_converter(grade):
if grade >= 94 and grade <= 100:
return "A"
elif grade >= 90 and grade < 94:
return "A-"
elif grade >=87 and grade < 90:
return "B+"
elif grade >= 84 and grade < 87:
return "B"
elif grade >= 80 and grade < 84:
return "B-"
elif grade >= 77 and grade < 80:
return "C+"
elif grade >= 74 and grade < 77:
return "C"
elif grade >= 70 and grade < 74:
return "C-"
elif grade >= 67 and grade < 70:
return "D+"
elif grade >= 64 and grade < 67:
return "D"
elif grade >= 61 and grade < 64:
return "D-"
else:
return "F"
letter_grade = print(grade_converter(grade))
print("Your letter grade is " + str(letter_grade) + "!")
grade=int(输入(“请在此处输入您在测试中所做的:”)
def等级转换器(等级):
如果等级>=94且等级=90且等级<94:
返回“A”—
elif等级>=87且等级<90:
返回“B+”
elif等级>=84且等级<87:
返回“B”
elif等级>=80且等级<84:
返回“B”—
elif等级>=77且等级<80:
返回“C+”
elif等级>=74且等级<77:
返回“C”
elif等级>=70且等级<74:
返回“C”—
elif等级>=67且等级<70:
返回“D+”
elif等级>=64且等级<67:
返回“D”
elif等级>=61且等级<64:
返回“D”—
其他:
返回“F”
字母等级=打印(等级转换器(等级))
打印(“您的字母等级为”+str(字母等级)+”!”)
您只需更改以下行
letter_grade = print(grade_converter(grade))
到
为什么?因为打印不会返回任何内容。
运行直到用户关闭程序
将除函数外的所有内容修改为以下内容
while(True):
grade = int(input("Please enter what you made on the test here:"))
letter_grade = grade_converter(grade)
print("Your letter grade is " + str(letter_grade) + "!")
为True时:
分数=int(输入(“请在此处输入您在测试中所做的:”)
如果等级!=-1:
def等级转换器(等级):
如果等级>=94且等级=90且等级<94:
返回“A”—
elif等级>=87且等级<90:
返回“B+”
elif等级>=84且等级<87:
返回“B”
elif等级>=80且等级<84:
返回“B”—
elif等级>=77且等级<80:
返回“C+”
elif等级>=74且等级<77:
返回“C”
elif等级>=70且等级<74:
返回“C”—
elif等级>=67且等级<70:
返回“D+”
elif等级>=64且等级<67:
返回“D”
elif等级>=61且等级<64:
返回“D”—
其他:
返回“F”
字母等级=等级转换器(等级)
打印(“您的字母等级为”+str(字母等级)+”!”)
其他:
打破
如果等级!=-1,当用户未输入“-1”时,程序将继续
每次通过循环时,它都会打印一条新语句,这就是为什么打印语句在“if”语句中的原因
否则:如果用户输入“-1”,程序将停止使用“中断”语法。我可以为您的代码提供2个解决方案。将您的代码更改为此
letter_grade = grade_converter(grade)
我想提到的一件事是,您实际上是以字符串形式返回值,因此您不需要在最后一个语句中再次将其强制转换为str
所以不是这个
letter_grade = grade_converter(grade)
print("Your letter grade is " + str(letter_grade) + "!")
换成这个,
print("Your letter grade is " + grade_converter(grade) + "!")
还有一件事:我想让它反复循环,直到用户关闭程序。我将整个函数(除了“def”行代码)包装在“while True”中。它不起作用。注意
94
letter_grade = grade_converter(grade)
print("Your letter grade is " + str(letter_grade) + "!")
print("Your letter grade is " + grade_converter(grade) + "!")