循环,直到在Python中接收到特定的用户输入

2024-09-27 09:37:11 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我正在为学校做评估。我是python的新手,我真的不知道如何循环这个

    achieved=50 #predefined variables for grade input

merit=70

excellence=85

max=100
import re #imports re an external modeule which defines re
studentfname = input("Input Student first name in lowercase")
if any( [ i>'z' or i<'a' for i in studentfname]):#checks if is in lowercase letters
    print ("Invalid input must be letter and in lowercase")
    import re
studentlname = input("Input Student last name in lowercase")
if any( [ i>'z' or i<'a' for i in studentlname]):
    print ("Invalid input must be letter and in lowercase")
    import sys
    raise SystemExit
    print(studentfname)
elif len(studentlname)>30:
    print ("Very long string") 
    raise SystemExit
    import re
teacherfname = input("Input your first name in lowercase")
if any( [ i>'z' or i<'a' for i in teacherfname]):
    print ("Invalid input must be letter and in lowercase")
    import sys
    raise SystemExit
    print(teacherfname)
elif len(teacherfname)>30:
    print ("Very long string") 
    raise SystemExit
    print(teacherfname)
teacherlname = input("Input your last name in lowercase")
if any( [ i>'z' or i<'a' for i in teacherlname]):
    print ("Invalid input must be letter and in lowercase")
    import sys
    raise SystemExit
    print(teacherlname)
elif len(teacherlname)>30:
    print ("Very long string") 
    raise SystemExit
    print(teachercode)
teachercode = input("Input your teacher code in lowercase")
if any( [ i>'z' or i<'a' for i in teachercode]):
    print ("Invalid input must be letter and in lowercase")
    import sys
    raise SystemExit
    print(teachercode)
elif len(teachercode)>30:
    print ("Very long string") 
    raise SystemExit
    print(teachercode)

while True: #inputs student depending on the input prints out results id achieved, merit and excellence
 try:
    grade = int(input("Enter student's grade"))

    print(str(grade))
    break
 except ValueError: 

  continue
#prints if not a number stops letters
if grade >merit>excellence>= achieved: 
 print("Achieved")
if grade < achieved:
    print("not achieved")
if grade >=merit>excellence < excellence:
    print("merit")
if grade >= excellence > merit:
    print("excellence")
if grade < 0:
    print("can't be negative")
    raise SystemExit
if grade > max:
   print("Cannot be more than 100")
   raise SystemExit
print("student's details")#last print of variablesa
print(studentfname,studentlname)
print("teacher's details")
print(teacherfname,teacherlname,teachercode)
print("student's grade")
print(grade)
if grade >merit>excellence>= achieved: 
 print("Achieved")
if grade < achieved:
    print("not achieved")
if grade >=merit>excellence < excellence:
    print("merit")
if grade >= excellence > merit:
    print("excellence")
if grade < 0:
    print("can't be negative")
    raise SystemExit
if grade > max:
   print("Cannot be more than 100")
   raise SystemExit
print("Thanks for adding in the grades")

        break

我试图使它,以便它将询问用户,如果他们愿意输入更多的学生数据后,他们做了一个学生。例如,如果他们想继续基本上重复编码。我真的很想帮忙


Tags: inimportforinputifberaisegrade
2条回答

你只要循环一下就行了

achieved=50 #predefined variables for grade input

merit=70

excellence=85

max=100
import sys
import re #imports re an external modeule which defines re
while(1):
    studentfname = input("Input Student first name in lowercase")
    if any( [ i>'z' or i<'a' for i in studentfname]):#checks if is in lowercase letters
        print ("Invalid input must be letter and in lowercase")
        raise SystemExit
    print(studentfname)
    studentlname = input("Input Student last name in lowercase")
    if any( [ i>'z' or i<'a' for i in studentlname]):
        print ("Invalid input must be letter and in lowercase")
        raise SystemExit
    elif len(studentlname)>30:
        print ("Very long string")
        raise SystemExit
    print(studentlname)
    teacherfname = input("Input your first name in lowercase")
    if any( [ i>'z' or i<'a' for i in teacherfname]):
        print ("Invalid input must be letter and in lowercase")
        raise SystemExit
    elif len(teacherfname)>30:
        print ("Very long string")
        raise SystemExit
    print(teacherfname)
    teacherlname = input("Input your last name in lowercase")
    if any( [ i>'z' or i<'a' for i in teacherlname]):
        print ("Invalid input must be letter and in lowercase")
        raise SystemExit
    elif len(teacherlname)>30:
        print ("Very long string")
        raise SystemExit
    print(teacherlname)
    teachercode = input("Input your teacher code in lowercase")
    if any( [ i>'z' or i<'a' for i in teachercode]):
        print ("Invalid input must be letter and in lowercase")
        raise SystemExit
    elif len(teachercode)>30:
        print ("Very long string")
        raise SystemExit
    print(teachercode)
    while True: #inputs student depending on the input prints out results id achieved, merit and excellence
        try:
            grade = int(input("Enter student's grade"))
            print(str(grade))
        except ValueError:
            continue
        if grade >merit>excellence>= achieved:
            graden = "Achieved"
            print("Achieved")
        if grade < achieved:
            print("not achieved")
        if grade >=merit>excellence < excellence:
            graden = "merit"
            print("merit")
        if grade >= excellence > merit:
            graden = "excellence"
            print("excellence")
        if grade < 0:
            print("can't be negative")
            raise SystemExit
        if grade > max:
            print("Cannot be more than 100")
            raise SystemExit
        print(grade)
        print("Student")
        print(studentfname)
        print(studentlname)
        print("Teacher")
        print(teacherfname)
        print(teacherlname)
        print(teachercode)
        print("Grade")
        print(str(grade))
        print(graden)
        print("Thanks for adding in the grades")
        break
    if input('More?')=='no': break

现在它起作用了。只需记住输入中的引号。或者修复它。在

要回答您的问题,您需要的是循环直到给定的输入。 所以你可以使用:

while True:    # infinite loop
    user_input = raw_input("Want to continue? ")
    if user_input == "No":
        break  # stops the loop
    else:
        # do whatever computations you need

相关问题 更多 >

    热门问题