4 回答

TA貢獻1844條經驗 獲得超8個贊
第一:為什么你得到 [5, 5, 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 的尺寸。

TA貢獻1836條經驗 獲得超5個贊
好的,您正在嘗試使用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,直到 i超出范圍range。請參閱此了解更多信息range
if n <= 100 and 0 <= n:
這里and檢查2 個表達式是否為真。在這種情況下,如果 n 小于或等于百且大于或等于 0。您可以使用任意and次數,如下所示:
if 1 < 100 and 100 > 200 and 20 < 40:
print("foo!")
現在看看else:
else:
i = i - 1
在這里,我們減去 1,i從而將我們的進度減少 1。另請注意,我的函數被調用get_user()而不是getUser(). 在Python中,我們使用蛇形命名法而不是駝峰命名法。
我希望這個答案有幫助。我在回答中給出了一些小提示。你應該用谷歌搜索他們!我也不會直接給你邏輯。試著弄清楚吧!這樣你就能很好地理解我所做的事情。

TA貢獻1851條經驗 獲得超5個贊
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:')

TA貢獻1862條經驗 獲得超6個贊
所以這就是你做錯了什么
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每次傳遞給的任何值(并且每次都是相同的值)
如果您遇到困難,不要害怕尋求幫助!
PS 如果您能夠應對挑戰,您也可以將一條線從某個地方移動到其他地方,以使其表現得更好一點;)
添加回答
舉報