Python 根据等级和积分奖励奖金分数

Python 根据等级和积分奖励奖金分数,python,Python,我想为不及格的学生找到一个额外的分数。如果1号教室的学生不及格少于5门科目,他得5分;如果2号教室的学生不及格少于4门科目,他每门科目得4分;如果3班的学生不及格少于3门科目,他每门科目得3分。如果学生们再不及格,他们就得不到任何加分。我期望输出为1。学生获得的奖金(如果他们没有获得任何奖金,则应显示未获得奖金分数)2。获得的奖金分数总数 当我没有获得奖励分数时,它没有给我任何输出 def main(): room = int(input('Class: ')) failed =

我想为不及格的学生找到一个额外的分数。如果1号教室的学生不及格少于5门科目,他得5分;如果2号教室的学生不及格少于4门科目,他每门科目得4分;如果3班的学生不及格少于3门科目,他每门科目得3分。如果学生们再不及格,他们就得不到任何加分。我期望输出为1。学生获得的奖金(如果他们没有获得任何奖金,则应显示未获得奖金分数)2。获得的奖金分数总数

当我没有获得奖励分数时,它没有给我任何输出

def main():
    room = int(input('Class: '))
    failed = int(input('Subjects failed: '))


    bonus = 0.0

    if (room == 1 and failed <= 5):
        bonus = (5 * failed)
        perbonus = 5
    elif (room == 2 and failed <= 4):
        bonus = (failed * 4)
        perbonus = 4
    elif (room == 3 and failed <= 3):
        bonus = (failed * 3)
        perbonus = 3
    else:
        print("Your bonus: ",perbonus)
        print("Total bonus",bonus)

main()
您可以尝试以下方法:

def main():
    room = int(input('Class: '))
    failed = int(input('Subjects failed: '))


    bonus = 0.0

    if (room == 1 and failed <= 5):
        bonus = (5 * failed)
        perbonus = 5
    elif (room == 2 and failed <= 4):
        bonus = (failed * 4)
        perbonus = 4
    elif (room == 3 and failed <= 3):
        bonus = (failed * 3)
        perbonus = 3

    print("Your bonus: ",perbonus)
    print("Total bonus",bonus)

main()
def main():
房间=int(输入('Class:'))
failed=int(输入('Subjects failed:'))
奖金=0.0

如果(room==1且失败您的输出在'else'子句的范围内


尝试删除else并删除打印行以将其从最后一个“elif”子句的范围中删除。

您的代码中有else:项。如果您的代码到达if或elif,它将永远不会转到else:语句,因此您的结果将不会打印。
那么,你要这样做:

def main():
    room = int(input('Class: '))
    failed = int(input('Subjects failed: '))

    
    bonus = 0.0

    if (room == 1 and failed <= 5):
        bonus = (5 * failed)
        perbonus = 5
    elif (room == 2 and failed <= 4):
        bonus = (failed * 4)
        perbonus = 4
    elif (room == 3 and failed <= 3):
        bonus = (failed * 3)
        perbonus = 3
    else: # add it to prevent error
        bounus = 0
        perbonus = 0
    print("Your bonus: ",perbonus) # remove the else: and unindent this
    print("Total bonus",bonus) # unindent this

main()
def main():
房间=int(输入('Class:'))
failed=int(输入('Subjects failed:'))
奖金=0.0

如果(room==1,失败您只打印
else
子句,这意味着您只会在从未计算过
bonus
perbonus
的情况下打印任何内容。只需删除
else
。我已经删除了它,但它仍然给我相同的输出。您应该更新您的问题以反映对else块的更改。我看到的唯一问题是您需要删除else中的代码,否则它将保留在上一次删除的范围内。您所说的奖金=0.0和perbouns不退出是什么意思?如果条件没有发生,此函数将重新显示错误:perbonus在分配前引用是的,我得到了,谢谢。哦,好的。然后修复它。添加尝试..例外或者你可以做一个if语句:if room>3或failed>5:打印(“输入错误,再试一次”)