初级Python代码问题

初级Python代码问题,python,Python,5.2编写一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入的不是有效号码,请使用try/except捕捉它,并发出相应的消息,忽略该号码。输入问题5.1手册中的数字,并匹配所需输出,如图所示 这是我的密码: largest = None smallest = None while True: inp = raw_input("Enter a number: ") if inp == "done" : break t

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
max=None
最小=无
尽管如此:
inp=原始输入(“输入一个数字:”)
如果inp==“完成”:中断
尝试:
num=浮点(inp)
除:
打印“无效输入”
如果最小值为无:
最小=num
elif num<最小值:
最小=num
elif num>最大值:
最大=num
持续
打印“最大值为”,最大值为
打印“最小值为”,最小值为

******请让我知道这段代码中的逻辑错误******

A:您永远不会将最大值赋值为无

B:如果float(inp)失败,您仍然尝试继续。你不应该。虽然您可以将那些if/elif语句移动到try块中,但我建议您不要这样做,因为这样您就有可能意外捕获到不应该捕获的内容。相反,使用try/except的被忽略的
else
block

在同一行中,这只是一个好的实践,除了你想要的错误,而不是所有的错误

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
max=None
最小=无
尽管如此:
inp=原始输入(“输入一个数字:”)
如果inp==“完成”:中断
尝试:
num=浮点(inp)
除了ValueError:#而不是所有错误!
打印“无效输入”
其他:
#如果未捕获异常,则将执行此块。
#是的,这是有效的python。
如果最小值为无:#第一个数字!
最小=num
最大=num
elif 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 
max=None
最小=无
尽管如此:
inp=原始输入(“输入一个数字:”)
如果inp==“完成”:
打破
尝试:
num=int(inp)
如果最小值为无:
最小=num
elif num<最小值:
最小=num
elif num>最大值:
最大=num
除:
打印“无效输入”
持续
打印“最大值为”,最大值为
打印“最小值为”,最小值为
如果执行后出现不匹配错误

最大值=无
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
最小=无 尽管如此: inp=原始输入(“输入一个数字:”) 如果inp==“完成”:中断 尝试: num=int(inp) 除: 打印“无效输入” 持续 如果最小值为无: 最小=num elif num<最小值: 最小=num 如果最大值为无: 最大=num elif num>最大值: 最大=num 打印“最大值为”,最大值为 打印“最小值为”,最小值为
最大值=无
最小=无
尽管如此:
num=原始输入(“输入一个数字:”)
如果num==“完成”:中断
尝试:
nom=int(num)
除:
打印“无效输入”
持续
如果最大值为无:
最大=标称
elif nom>最大值:
最大=标称
如果最小值为无:
最小=标称
elif nom<最小值:
最小=标称
打印“最大值为”,最大值为
打印“最小值为”,最小值为

您应该在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) 最大=无 最小=无 尽管如此: num=输入(“输入一个数字:”) 如果num=='done':中断 尝试: ival=int(num) #如果未捕获异常,则将执行此块。 #是的,这是有效的python。 如果最小值为无:#第一个数字! 最小=ival 最大=ival 埃利夫·伊瓦尔: 最大=ival 除了ValueError:#而不是所有错误! 打印('无效输入') 继续 打印(“最大值为”,最大值) 打印(“最小值为”,最小值) 错误的方法

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) 最大=无 最小=无 尽管如此: num=输入(“输入一个数字:”) 如果num=='done':中断 尝试: ival=int(num) 除值错误外: 打印('无效输入') 继续 如果最小值为无: 最小=ival 最大=ival 埃利夫·伊瓦尔: 最大=ival 打印(“最大值为”,最大值) 打印(“最小值为”,最小值) 代码:

请尝试此代码

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)
max=None
最小=无
尽管如此:
num=输入(“输入一个数字:”)
如果num==“完成”:
打破
尝试:
inp=浮点(num)
除:
打印(“无效输入”)
持续
对于[7,2,10,4]中的值:
如果最大值为无:
最大=值
elif值>最大值:
最大=值
打印(“最大值为”,最大值)
对于[7,2,10,4]中的值:
如果最小值为无:
最小=值
elif值<最小值:
最小=值
打印(“最小值为”,最小值)

以下是正确答案

最大=无 最小=无

inp_列表=[] 尽管如此: inp=原始输入(“输入一个数字:”) 如果inp==“完成”: 打破 其他:
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)
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))
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