首页 > 解决方案 > 如何停止列表,用户输入缺少数字

问题描述

我正在做这个练习:

在您的主函数中,您需要不断要求用户输入一个整数,然后将这些整数存储在一个列表中。一旦用户决定停止输入,该函数应该打印出列表中的所有整数,并找到该列表中的最大数字。如果用户没有输入任何数字,您应该打印出“您的列表为空”。

我试图对其进行编码,但我被困在打印“您的列表为空”上。我不知道该把声明放在哪里。

当用户输入数字时,列表会丢失用户输入的第一个数字。

def main():
    user_list = []
    
    user_num = input('Enter an integer or enter x to stop: ')
    
    while user_num != 'x':
        
        user_num = input('Enter an integer or enter x to stop: ')

        if user_num != 'x' :
            user_list.append(user_num)

        if user_list == []:
            print('Your List is empty')
            exit()
        
    
    index = 0
    while index < len(user_list):
        user_list[index] = int(user_list[index])
        index += 1
    
    print ('Here is the list of the numberyou entered:')
    
        
    print (*user_list, sep = '\n')

    largest = max(user_list)

    print ('The largest number in your listis: ',largest)
main()

标签: pythonlist

解决方案


简单,改变:

while user_num != 'x':
    
    user_num = input('Enter an integer or enter x to stop: ')

    if user_num != 'x' :
        user_list.append(user_num)

    if user_list == []:
        print('Your List is empty')
        exit()

到:

while True:
    
    user_num = input('Enter an integer or enter x to stop: ')

    if user_num != 'x' and user_num:
        user_list.append(user_num)

    elif not user_list:
        print('Your List is empty')
        exit()
    else:
        break



这是优化后的代码:

def main():
    user_list = []
    while True:
        user_num = input('Enter an integer or enter x to stop: ')
        if user_num != 'x' and user_num:
            user_list.append(int(user_num))
        elif not user_list:
            print('Your List is empty')
            exit()
        else:
            break
    print ('Here is the list of the numbers you entered:')
    print (*user_list, sep = '\n')
    largest = max(user_list)
    print ('The largest number in your list is: ', largest)
    
main()

推荐阅读