Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我这样做是为了不在Python列表中显示-1_Python_Python 3.x_List - Fatal编程技术网

我这样做是为了不在Python列表中显示-1

我这样做是为了不在Python列表中显示-1,python,python-3.x,list,Python,Python 3.x,List,编写一个函数,从键盘输入一系列介于1和20之间的数字,并将其保存在列表中。如果输入超出范围的值,程序将显示错误消息并要求输入新数字。要完成加载,必须输入-1。La函数不接收任何参数,并返回加载的列表(如果用户没有输入任何内容,则为空)作为返回值 def funcion(): list = [] num = 0 while num != -1: num = int(input("Enter a number between 1 and 20: ")) while num >

编写一个函数,从键盘输入一系列介于1和20之间的数字,并将其保存在列表中。如果输入超出范围的值,程序将显示错误消息并要求输入新数字。要完成加载,必须输入-1。La函数不接收任何参数,并返回加载的列表(如果用户没有输入任何内容,则为空)作为返回值

def funcion():
list = []
num = 0
while num != -1:
    num = int(input("Enter a number between 1 and 20: "))
    while num > 20 :
        num = int(input("Please re-enter the number: "))
    list.append(num)
return lista
result = funcion()
print(result)

我的问题是如何在列表中不显示-1

当用户输入-1时,更容易有一个无限循环并将其中断:

def funcion():

    lista = []
    num = 0
    while True:
        num = int(input("Enter a number between 1 and 20: "))
        while num > 20:
            num = int(input("Please re-enter the number: "))
        if num == -1:
            break
        else:
            lista.append(num)
    return lista

result = funcion()
print(result)

诀窍是保存列表,但最后一项除外,如下所示:

return lista[:-1]
您可以在此处阅读更多内容:

对代码的最小更改就是使用列表切片语法返回
lista
中除最后一个元素之外的所有元素:

return lista[:-1]
请参见下面的[1]。这是一种python式的写作方式,略为直观,但更为冗长:

return lista[:len(lista)-1]
…这反过来又是更长时间的缩写:

return lista[0:len(lista)-1]
你似乎是python新手。我真的建议你查阅“列表切片”和“列表理解”:如果你已经知道一种编程语言没有这些,一旦你学会了这些,你会想没有它们你会怎么做


[1]

如果0,请将您的代码重新格式化为有效的Python代码;Python对缩进非常敏感,Python程序员也是如此。您尝试过什么?这似乎非常省力。我不认为“缺乏细节或清晰度”是一个很好的理由来结束这个问题。这两个问题都有足够的理由来回答这个问题,这三个答案证明了这一点。如果他们想结束家庭作业问题或提问者没有努力的问题,那么他们应该将这些问题添加到问题可以结束的原因列表中。