基礎python學習:
我被要求撰寫一個程式,列出用戶輸入的 15 個整數條目(大小)。對于每個輸入,程式應該給出剩余輸入的整數個數。最后,程式應該列出 15 個條目,并告訴用戶他完成了。使用下面的代碼,我得到了串列和最終報告,但無法真正弄清楚如何倒計時、列印剩余條目并告訴用戶他完成了。
my_list = []
for _ in range(15):
try:
my_list.append(int(input('Enter size: ')))
except ValueError:
print('The provided value must be an integer')
print(my_list)
uj5u.com熱心網友回復:
要弄清楚的一件事是“如果用戶輸入的不是有效整數怎么辦?” 您可以通過不斷詢問用戶輸入直到它成為有效數字來解決這個問題。
您可以使用while帶有布爾變數的回圈來做到這一點:
good_int = False
while not good_int:
try:
num = int(input(f'Enter an integer: '))
good_int = True
except ValueError:
print('I said int, gorramit!!')
現在我們有了這些,您可以在這里采取很多方法。
回圈可以做的一件有趣的事情for是倒數。
你可以試試:
my_list = []
for i in range(15, 0, -1):
good_int = False
while not good_int:
try:
my_list.append(int(input(f'Enter size for iteration {i}: ')))
good_int = True
except ValueError:
print('The provided value must be an integer')
print("Aight, you're done. This is the list:")
print(my_list)
或者......可能更好的是,使用變數來存盤嘗試次數(15)并且在用戶輸入有效整數之前不要考慮“有效嘗試”。
my_list = []
tries = 15
while tries > 0:
try:
my_list.append(int(input(f'Enter size for iteration {tries}: ')))
tries = tries - 1 # Or just tries -= 1
except ValueError:
print('The provided value must be an integer')
print("Aight, you're done. This is the list:")
print(my_list)
uj5u.com熱心網友回復:
由于您不希望回圈重復固定次數,而是需要它重復直到您有 15 個值,您應該考慮使用 awhile而不是 a for。
my_list = []
while len(my_list) < 15:
try:
my_list.append(int(input('Enter size: ')))
except ValueError:
print('The provided value must be an integer')
print(f'You are done: {my_list}')
通知用戶他們還需要輸入多少值可能是個好主意:
my_list = []
while len(my_list) < 15:
try:
my_list.append(int(input(f'Enter size ({15 - len(my_list)} left): ')))
except ValueError:
print('The provided value must be an integer')
print(f'You are done: {my_list}')
uj5u.com熱心網友回復:
您將需要使用一個計數器變數,它只是跟蹤程式要接收的剩余數字量。您將在每次輸入后將其列印出來,然后從變數中減去 1。我添加了一個檢查以確保我們不會列印出“您必須再輸入 0 個數字”,因為這不是我們真正想要做的。
my_list = []
numbers_left = 15
for _ in range(15):
try:
my_list.append(int(input('Enter size: ')))
numbers_left = numbers_left - 1
if numbers_left != 0:
print("You have to input " str(numbers_left) " numbers to complete the program.")
except ValueError:
print('The provided value must be an integer')
print(my_list)
uj5u.com熱心網友回復:
您可以使用 f 字串列印并減少每個 for 回圈的數字。我不確定 try 和 for 回圈不是更好嗎?
編輯:更改了 for 回圈并在字串 val 上給出錯誤。
my_list=[]
len_val=15
val=0
while val<len_val:
try:
my_list.append(int(input("Enter size:")))
val =1
print(f"{(len_val-val)}to go!")
except ValueError:
print("Enter an integer")
print(len(my_list))
uj5u.com熱心網友回復:
range(14, 0, -1)將為您完成作業。
my_list = []
for i in range(14, 0, -1):
try:
my_list.append(int(input('Enter size: ')))
print(f'{i} to go')
except ValueError:
print('The provided value must be an integer')
print(my_list)
如果你ValueError在執行程序中。我建議使用while回圈。像這樣
my_list = []
size = 15
while len(my_list) < size:
try:
my_list.append(int(input(f'Enter size : ')))
print(f'{size-len(my_list)} to go')
except ValueError:
print('The provided value must be an integer')
print(f'You are done: {my_list}')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/519809.html
標籤:Python循环
上一篇:回圈時每3次迭代后增加一年
