0

我想做一个 while 循环,直到用户在输入中没有输入任何内容。

这是我目前有效的,但我想删除answer = None实例化。

def answer_as_ul(question, input_prefix='• '):
    print(question)
    answer_list = list()
    answer = None
    while answer != '':
        answer = input(input_prefix)
        answer_list.append(answer) if answer else None
    return answer_list

有没有办法在answer = None这里删除并保留功能?

4

3 回答 3

1

使用下面的代码。我还为更多 Pythonic 代码添加了一些小的调整:

def answer_as_ul(question, input_prefix='• '):
    print(question)
    answer_list = []
    while True:
        answer = input(input_prefix)
        if not answer: break
        answer_list.append(answer)
    return answer_list
于 2021-01-06T14:42:05.747 回答
1

也许像这样,但并没有太大的不同:

def answer_as_ul(question, input_prefix='• '):
    print(question)
    answer_list = list()
    while True:
        answer = input(input_prefix)
        if answer: break  
        else: answer_list.append(answer)
    return answer_list
于 2021-01-06T14:42:44.943 回答
1

感谢@jonsharpe使用Python 3.8 的海象运算符的漂亮解决方案,我找到了答案:

def answer_as_ul(question, input_prefix='• '):
    print(question)
    answer_list = list()
    while answer := input(input_prefix):
        answer_list.append(answer)
    return answer_list
于 2021-01-06T14:49:12.180 回答