我是一个编程新手,请告诉我我的代码是否正确。
我正在尝试编写一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入的不是有效的数字,则使用try/except捕获它,并输出适当的消息并忽略该数字。
largest = None
smallest = None
while True:
num = input("Enter a number: ")
if num == 'done':
break
try:
fnum = float(num)
except:
print("Invalid input")
continue
lst = []
numbers = int(input('How many numbers: '))
for n in range(numbers):
lst.append(num)
print("Maximum element in the list is :", max(lst), "\nMinimum element in the list is :", min(lst))
2条答案
按热度按时间omtl5h9j1#
你的代码几乎是正确的,只有几件事你需要改变:
另外,既然你说你是编程新手,我将解释我做了什么,以及为什么。
首先,不需要在开始时将
largest
和smallest
设置为None
。实际上,我从来没有把这些值放在变量中,因为我们只需要把它们打印出来。然后,所有代码都是相同的,直到
try/except block
。在这里,我尝试将用户输入转换为整数,并一次性将其追加到列表中。如果其中任何一个失败,则打印Invalid input
。我的except
部分有点不同:上面写着except ValueError
这意味着“仅在发生ValueError
时运行以下代码”。在捕获错误时,最好是具体一些,因为except
本身会捕获所有错误,包括我们不希望看到的错误。我们不想在这里使用
continue
,因为continue
意味着“跳过剩余的代码并继续下一个循环迭代”。我们不想在这里跳过任何东西。现在让我们来谈谈这段代码:
根据您的解释,不需要从用户那里获得更多的输入,因此不需要这些代码。把
int(input())
放在try/except
块中也是一个好主意,因为如果用户输入了数字以外的东西,int(input())
就会出错。最后,
print
语句:在python中,你可以使用“字符串格式化操作符”,百分号(%)将数据放入字符串中。您可以使用
%d
来填充数字,%s
来填充字符串。下面是完整的字符列表,如果你向下滚动一点,可以放在百分比后面。它也做了很好的解释,但这里有一些例子:kmbjn2e32#