我对编码非常陌生(大约在中的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(。for
将i
分配给最小的范围内的数字,并在每次迭代中不断地将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中,我们使用的是蛇的情况,而不是骆驼的情况。
我希望这个答案能有所帮助。我在回答中给出了一些小提示。你应该用谷歌搜索它们!我也没有直接给你逻辑。试着弄清楚!那样你就会很了解我的所作所为。