[英]How to keep Python from splitting a double digit integer into two single integers, when converting to a list
[英]How do I stop Python from splitting a double digit integer into two single integers in my code
這是任務
編寫一個程序,重復提示用戶輸入 integer 號碼,直到用戶輸入“完成”。 輸入“完成”后,打印出最大和最小的數字。 如果用戶輸入的不是有效數字,則使用 try/except 捕獲它並發出適當的消息並忽略該數字
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
intnum = int(num)
except ValueError:
print('Invalid')
continue
for size in (num):
if largest is None:
largest = size
if smallest is None:
smallest = size
if largest < size:
largest = size
if smallest > size:
smallest = (size)
print("Maximum is", largest)
print('Minimum is', smallest)type here
當我使用一位數字時,該代碼有效,但如果我使用像 10 這樣的兩位數,那么它會打印 0 作為最小數字
例如,如果我輸入
1,3,10,2,6, done
即使最小的數字是 1,它也會打印:
maximum is 6
minimum is 0
我正在努力弄清楚所以任何幫助將不勝感激,謝謝!
你幾乎是對的,你可以刪除 for 循環,只需將最大值和最小值與intnum
變量進行比較。 代碼看起來像這樣。
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
intnum = int(num)
except ValueError:
print('Invalid')
continue
if largest is None:
largest = intnum
if smallest is None:
smallest = intnum
if largest < intnum:
largest = intnum
if smallest > intnum:
smallest = (intnum)
print("Maximum is", largest)
print('Minimum is', smallest)
這很好用。
您可以通過應用反向循環來減少 if 語句。
從開始用最小值初始化最大,即(float('-inf'))
和用最大值初始化最小,即(float('inf'))
並在number>largest
修改largest
時檢查用戶輸入。 number<smallest
修改smallest
一個邊緣案例假設用戶沒有直接輸入任何數字,而不是打印inf
-inf
,這是不正確的。 所以只是將它們轉換為no minimum
no maximum
代碼:
largest = float('-inf')
smallest = float('inf')
while True:
num = input("Enter a number: ")
if num.lower() == "done": #Works for Done also..
break
try:
intnum = int(num)
except ValueError:
print('Invalid')
continue
if intnum>largest:
largest=intnum
if intnum<smallest:
smallest = intnum
print("Maximum is", largest if largest!=float('-inf') else 'No maximum')
print('Minimum is', smallest if smallest!=float('inf') else 'No minimum')
你也可以在 try 語句中同時使用這兩個if
..!
Output:
當用戶未輸入任何數字時
Enter a number: done
Maximum is No maximum
Minimum is No minimum
當用戶只輸入一個數字時
Enter a number: 4
Enter a number: done
Maximum is 4
Minimum is 4
用戶輸入超過 1 個數字的正常情況
Enter a number: 2
Enter a number: 7
Enter a number: 1
Enter a number: 3
Enter a number: 8
Enter a number: 9
Enter a number: done
Maximum is 9
Minimum is 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.