繁体   English   中英

使用python通过用户输入在循环内的任何点终止while循环

[英]Terminating while loops at anypoint within the loop by user input, using python

我希望用户能够通过输入stop或其他键盘输入来终止嵌套循环。 要求用户输入选项a到g,后接8个if语句,这是我为第一个if语句编写的代码...

if option == "a":
    while True:
        try:
            name = input('\nEnter the students name: ')
            cm = input('Coursework mark: ')
            em = input('Exam mark: ')
            student = (name,cm,em)
            database.append(student)
        except :
            break

我有使用try和except函数的想法,但不确定如何或是否可行,请帮忙!

您可以检查每次输入的值,以及该值是否与您break关键字(或在关键字列表中)匹配。

if option == "a":
    while True:
        name = input('\nEnter the students name: ')
        if name == 'stop':
            break
        cm = input('Coursework mark: ')
        if cm == 'stop':
            break
        em = input('Exam mark: ')
        if em == 'stop':
            break
        student = (name,cm,em)
        database.append(student)

要检查停止关键字列表,您可以执行以下操作

stop_kws = ['stop', 'exit', 'quit']

...

if name in stop_kws:
    break

... 

如果您担心键盘中断(例如Ctr + c或Delete),则可以使用内置的Exception KeyboardIntertupt 这将使您正常失败:

if option == "a":
    try:
        name = input('\nEnter the students name: ')
        cm = input('Coursework mark: ')
        em = input('Exam mark: ')
        student = (name,cm,em)
        database.append(student)
    except KeyboardInterrupt as e:
        #
        # do something 
        #
        break

这样可以防止您的循环因中断请求而崩溃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM