[英]Beginner Python Code Issues
5.2 編寫一個程序,反復提示用戶輸入整數,直到用戶輸入“完成”。 輸入“完成”后,打印出最大和最小的數字。 如果用戶輸入的不是有效數字的任何內容,則使用 try/except 捕獲它並發出適當的消息並忽略該數字。 輸入書中問題 5.1 的數字並匹配所需的輸出,如圖所示。
這是我的代碼:
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = float(inp)
except:
print "Invalid input"
if smallest is None:
smallest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
continue
print "Maximum is", largest
print "Minimum is", smallest
******請讓我知道此代碼中的邏輯錯誤*****
答:你永遠不會分配最大的遠離 None 。
B:在 float(inp) 失敗的情況下,您仍然嘗試繼續。 你不應該。 雖然您可以將那些 if/elif 語句移到 try 塊中,但我建議您不要這樣做,因為您可能會冒着意外捕獲不應該捕獲的內容的風險。 相反,使用 try/except 被忽視的else
塊。
在同一行中,除了您想要的錯誤而不是所有錯誤之外,這是一種很好的做法。
C:不需要繼續
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = float(inp)
except ValueError: #and not all errors!
print "Invalid input"
else:
# This block will execute if no exception is caught.
# Yes, this is valid python.
if smallest is None: #first number!
smallest = num
largest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
print "Maximum is", largest
print "Minimum is", smallest
這是正確答案在此處輸入圖片說明
最大 = 無 最小 = 無
inp_list = [] while True: inp = raw_input("Enter a number:") if inp == "done": break else: inp_list.append(inp)
對於 inp_list 中的 num:嘗試:num = int(num) 如果最小的是 None:最小 = num 如果 num > 最大:最大 = num elif num < 最小:最小 = num 除了:
打印('無效輸入')
打印(“最大值”,整數(最大))打印(“最小值”,整數(最小))
編寫一個程序,反復提示用戶輸入整數,直到用戶輸入“完成”。 輸入“完成”后,打印出最大和最小的數字。 如果用戶輸入的不是有效數字的任何內容,則使用 try/except 捕獲它並發出適當的消息並忽略該數字。
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done":
break
try:
num = int(inp)
if smallest is None:
smallest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
except:
print "Invalid input"
continue
print "Maximum is", largest
print "Minimum is", smallest
如果執行后出現不匹配則出錯
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = int(inp)
except:
print "Invalid input"
continue
if smallest is None:
smallest = num
elif num < smallest:
smallest = num
if largest is None:
largest = num
elif num > largest:
largest = num
print "Maximum is", largest
print "Minimum is", smallest
largest = None
smallest = None
while True:
num = raw_input("Enter a number:")
if num == "done": break
try:
nom = int(num)
except:
print "Invalid input"
continue
if largest is None:
largest = nom
elif nom > largest:
largest = nom
if smallest is None:
smallest = nom
elif nom < smallest:
smallest = nom
print "Maximum is", largest
print "Minimum is", smallest
您應該在 try: 塊中包含您的邏輯以邏輯地運行此程序。 即使您將邏輯放在 catch 塊中,它也會運行。
在捕獲之后放置邏輯(if/else)無法計算您在捕獲錯誤之前輸入的數字的最高和最低數字。
正確方法
largest = None smallest = None while True: num = input("Enter a number: ") if num == 'done': break try: ival = int(num) # This block will execute if no exception is caught. # Yes, this is valid python. if smallest is None: #first number! smallest = ival largest = ival elif ival largest: largest = ival except ValueError: #and not all errors! print ('Invalid input') continue print('Maximum is', largest) print('Minimum is', smallest)
錯誤的方法
largest = None smallest = None while True: num = input("Enter a number: ") if num == 'done': break try: ival = int(num) except ValueError: print ('Invalid input') continue if smallest is None: smallest = ival largest = ival elif ival largest: largest = ival print('Maximum is', largest) print('Minimum is', smallest)
代碼:
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done":
break
try:
n = int(num)
if smallest is None or n < smallest:
smallest = n
if largest is None or n > largest:
largest = n
except ValueError:
# num cannot be converted to an int
print ("Invalid input")
print("Maximum is", largest)
print("Minimum is", smallest)
輸出:
Invalid input
Maximum is 10
Minimum is 2
largest = None
smallest = None
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = int(inp)
except ValueError: #and not all errors!
print ("Invalid input")
else:
# This block will execute if no exception is caught.
# Yes, this is valid python.
if smallest is None: #first number!
smallest = num
largest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
print ("Maximum is", largest)
print ("Minimum is", smallest)
#by Aless
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" : break
try:
intNum = int(num)
except ValueError:
#print('Error: Invalid input', num)
print('Invalid input')
continue
else:
if (largest < intNum): largest = intNum
if (smallest > intNum) or (smallest is None): smallest = intNum
print("Maximum", largest)
print("Minimum", smallest)
largest = 0
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
num1=int(num)
if(num1>largest):
largest=num1
elif((smallest is None) or(num1<smallest)):
smallest=num1
except ValueError:
print("Invalid input")
continue
print("Maximum is", largest)
print("Minimum is",smallest)
largest = None
smallest = None
numbers = []
while True:
num = input("Enter a number: ")
if num == "done":
break
numbers.append(num)
for value in numbers:
try:
value = int(value)
if largest is None:
largest = value
elif value > largest:
largest = value
except:
continue
for value in numbers:
try:
value = int(value)
if smallest is None:
smallest = value
elif value < smallest:
smallest = value
except:
print ("Invalid input")
continue `
print("Maximum is", largest)
print("Minimum is", smallest)
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == 'done': break
try:
ival = int(num)
# This block will execute if no exception is caught.
# Yes, this is valid python.
if smallest is None: #first number!
smallest = ival
largest = ival
elif ival>largest:
largest = ival
elif ival<smallest:
smallest=ival
except ValueError: #and not all errors!
print ('Invalid input')
continue
print('Maximum is', largest)
print('Minimum is', smallest)
largest = None
smallest = None
while True:
inp = input("Enter a number: ")
if inp == "done" : break
try:
num = float(inp)
except ValueError:
print ("Invalid input")
else:
if smallest is None:
smallest = num
largest = num
elif num < smallest:
smallest = num
elif num > largest:
largest = num
print ("Maximum is", int(largest))
print ("Minimum is", int(smallest))
5.2 編寫一個程序,反復提示用戶輸入整數,直到用戶輸入“完成”。 輸入“完成”后,打印出最大和最小的數字。 如果用戶輸入的不是有效數字的任何內容,則使用 try/except 捕獲它並發出適當的消息並忽略該數字。 輸入 7、2、bob、10 和 4 並匹配下面的輸出。
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
a = int(num)
except:
print("Invalid input")
continue
if a > largest:
largest = a
if smallest is None:
smallest = a
if a < smallest:
smallest = a
print("Maximum is", largest)
print("Minimum is", smallest)
輸入
7
2
bob
10
4
done
輸出
Invalid input
Maximum is 10
Minimum is 2
#試試這個代碼。 它的工作請看截圖使用 7,4,bob, 10,4 和最后“完成”。
largest = None
smallest = None
while True:
try:
num = raw_input("Enter a number: ")
if num == "done":
break
if largest is None:
largest = int(num)
if int(num) > largest:
largest = int(num)
if smallest is None:
smallest = int(num)
if int(num) < smallest:
smallest = int(num)
except:
print ("Invalid input")
print ("Maximum is", largest)
print ("Minimum is", smallest)
試試這個代碼....
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == "done" :
break
try:
inp=float(num)
except:
print("Invalid input")
continue
for value in [7,2,10,4]:
if largest is None:
largest = value
elif value>largest:
largest=value
print("Maximum is", largest)
for value in [7,2,10,4]:
if smallest is None:
smallest = value
elif value < smallest:
smallest=value
print("Minimum is", smallest)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.