仅返回列表的第一个输入而不继续输入的函数超出范围



我对编码非常陌生(大约在中的3周内(,我正在编写一个代码,要求用户输入一个0到100之间的数字,然后将这个数字添加到列表中。一旦列表的长度达到10个数字,它就应该打印列表。我正在使用一个函数。

我可以得到它,这样它就可以打印一个列表,但它只打印输入的第一个数字。例如,如果我输入5,它仍然会询问其他数字,但它会将列表打印为[5,5,5,5,5,5,5,5]。此外,如果我输入了0-100范围之外的数字,它确实会要求您输入不同的数字,但随后它会停止并将列表打印为"无"。

以下是我的代码:

def getUser(n):
mylist = []
while 0 < n < 100:
mylist.append(n)
int(input("Please enter a number between 0 and 100: "))
if len(mylist) == 10:
return(mylist)
else:
int(input("This number is not in the range of 0-100, please input a different number: "))


n = int(input("Please enter a number between 0 and 100: "))
print("The numbers you have entered are: ", getUser(n))

我猜这与while/else循环有关,但正如我所说,我对这件事很陌生,这一切都让我感到难以承受,而试图在谷歌上搜索这件事似乎会带来我不理解的超级复杂的事情!!感谢

第一:为什么你得到[5,5,5,5,5,5,5,5]:

int(input("Please enter a number between 0 and 100: "))

你应该先把这个给n:

n=int(input("Please enter a number between 0 and 100: "))

然后,它退出循环,因为你进入了else,然后你没有回到while。然后你的功能结束了,没有return,所以none

老实说,我不明白如果你给了一个超出范围的数字,为什么你的代码会退出while循环,因为这个值没有给n。如果有人能在评论中解释,那就太好了!

我会这样做:

def getUser():
mylist = []
while len(mylist) < 10:
n = int(input("Please enter a number between 0 and 100: "))

if (0 < n < 100):
mylist.append(n)
else:
print('This is not between 0 and 100 !')
return mylist


print("The numbers you have entered are: ", getUser())

然后你会被要求从0到100的数字(不包括在内(,直到你得到10的尺寸。

以下是您在上做错的地方

def getUser(n):
mylist = []
while 0 < n < 100:
mylist.append(n)
n = int(input("Please enter a number between 0 and 100: "))
if len(mylist) == 10:
return(mylist)
else:
int(input("This number is not in the range of 0-100, please input a different number: "))


n = int(input("Please enter a number between 0 and 100: "))
print("The numbers you have entered are: ", getUser(n))

你注意到编辑后的代码有什么不同吗?

您从未重新分配变量n的值因此,您只需每次将传递给getUser的值相加(每次都是相同的值(

如果你陷入困境,不要害怕寻求帮助!

p.S。如果你能应对挑战,你也可以把一条线移到其他地方,让它表现得更好;(

def getUser(n):
mylist = []
t = True
while t:
n =int(input("Please enter a number between 0 and 100: "))
if n >0 and n<=100:
mylist.append(n)
if len(mylist) == 10:
return(mylist)
t = False
elif n < 0  or n >100:
print('This number is not in the range of 0-100, please input a different number:')


好的,您正在尝试使用while而不是if。以下是我要做的——我很快就会解释:

def get_user():
mylist = []
for i in range(5):
n = int(input("Please enter a number between 0 and 100: "))
if n <= 100 and 0 <= n:
mylist.append(n)

else:
print("This is not between 0 and 100 !")
i = i - 1
return mylist

浏览代码

for i in range(5)

在这里,我们使用for来迭代range数字(0-5(。fori分配给最小的范围内的数字,并在每次迭代中不断地将i加1,直到CCD_ 16在CCD_ 17之外。有关range的更多信息,请参阅此

if n <= 100 and 0 <= n:

这里and检查2表达式是否为真。在这种情况下,如果n小于或等于100并且大于或等于0。你可以像这样多次使用and

if 1 < 100 and 100 > 200 and 20 < 40:
print("foo!")

现在来看else:

else:
i = i - 1

在这里,我们从i中减去1,从而将我们的进度减少1。还要注意,我的函数被称为get_user(),而不是getUser()。在python中,我们使用的是蛇的情况,而不是骆驼的情况。

我希望这个答案能有所帮助。我在回答中给出了一些小提示。你应该用谷歌搜索它们!我也没有直接给你逻辑。试着弄清楚!那样你就会很了解我的所作所为。

最新更新