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) + "!")