如何在python中获得一个循环以返回原始while语句。

时间:2018-06-07 19:40:14

标签: python

我创建的循环在询问要添加哪个类以及何时删除类时运行顺畅。但是每当我尝试在删除一个类之后添加一个类,程序就会结束而不是回到循环来添加一个类。我在哪里出错了。下面是代码。

RegisteredCourses=[]
Registration=raw_input('Enter A to add a course, D to drop a course and E to exit.')
while Registration=='a':
    Course=raw_input('What course do you want to add?')
    RegisteredCourses.append(Course)
    print RegisteredCourses
    Registration=raw_input('Enter A to add a course, D to drop a course and E to exit.')
while Registration=='d':
    DropCourse=raw_input('What course do you want to drop?')
    RegisteredCourses.remove(DropCourse)
    print RegisteredCourses
    Registration=raw_input('Enter A to add a course, D to drop a course and E to exit.')
while Registration=='e':
    print 'bye'

2 个答案:

答案 0 :(得分:0)

没有1个外部循环要求用户输入,有3个内部循环。这是错的。

一旦选中,该选项将永远保留,因为while循环一旦进入,就会永远循环(条件的值不会在循环中改变

相反,请进行无限循环并将​​while更改为if/elif,并仅提出一次问题:

RegisteredCourses=[]
while True:
    Registration=raw_input('Enter A to add a course, D to drop a course and E to exit.')
    if Registration=='a':
        Course=raw_input('What course do you want to add?')
        RegisteredCourses.append(Course)
        print RegisteredCourses
    elif Registration=='d':
        DropCourse=raw_input('What course do you want to drop?')
        RegisteredCourses.remove(DropCourse)
        print RegisteredCourses
    elif Registration=='e':
        print 'bye'
        break  # exit the loop

答案 1 :(得分:0)

有效地...... Registration作为变量并不会超出其第一个输入语句。这意味着当您开始运行此代码时,您将无法使用您提供的任何值。

由于您似乎想要类似菜单的功能,因此更简单的方法是将所有内容拆分为方法。

def add_course():
    Course=raw_input('What course do you want to add?')
    RegisteredCourses.append(Course)
    print RegisteredCourses

# Other methods for other functions

在应用程序的主要内容中,您可以使用简单的while True循环。

while True:
    registration = raw_input('Enter A to add a course, D to drop a course and E to exit.')
    if registration == 'a':
        add_course()
    # Other methods
    if registration == 'e':
        print 'bye'
        break