首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我无法理解使用try/except嵌套在(python)中的循环代码

我无法理解使用try/except嵌套在(python)中的循环代码
EN

Stack Overflow用户
提问于 2018-07-29 07:03:34
回答 3查看 67关注 0票数 0

5.2编写一个程序,反复提示用户输入整数,直到用户输入“完成”为止。输入“完成”后,打印出最大和最小的数字。如果用户输入的数字不是有效数字,则使用try/except捕捉该数字,并发出适当的消息并忽略该数字。输入7、2、bob、10和4,然后匹配下面的输出。

代码语言:javascript
复制
largest = None
smallest = None

while True:
    try:
        num = input("Enter a number: ")
        if num == "done" : break
        print(num)
        if num > largest:
            largest=num
        if num < smallest:
            smallest=num
    except:
        print("Invalid input")


print("Maximum is", largest)
print("Minimum is", smallest)

desired output:                  my output:
Invalid input                    2 ← Mismatch
Maximum is 10                    4
Minimum is 2                     5
                                 maximum is 5(it prints the last input)
                                 minimum is None

我是一个完全的编程和python的初学者,所以如果错误是显而易见的,请打破它,因为你could..thank你这么多。

EN

回答 3

Stack Overflow用户

发布于 2018-07-29 07:08:52

input()返回一个字符串,因此您需要使用int()将输入转换为整数,然后再将其作为数字进行比较。同时删除不必要的print(num)

因此,改变:

代码语言:javascript
复制
print(num)

至:

代码语言:javascript
复制
num = int(num)
票数 0
EN

Stack Overflow用户

发布于 2018-07-29 07:09:18

程序永远不会到达print("Invalid input"),因为上面没有可能抛出的错误。如果您在检查了if num == "done"之后使用num = int(num)num转换为整数,那么程序将捕获无效输入,如"bob“

票数 0
EN

Stack Overflow用户

发布于 2018-07-29 07:10:58

问题是您使用的是字符串,而不是数字。10是一个数字,它被存储为数字数据,您可以执行诸如比较大小、加、减等操作。具体来说,它是一个整数,一个没有小数位的数字(计算机以许多不同的方式存储数字)。'10'是一个字符串,一组字符。这些字符恰好代表一个数字,但计算机不知道这一点。据它所知,它只是一个文本。

将字符串转换为整数的方法很简单,就是num = int(num)。如果数字可以转换为整数,则会转换为整数。如果它不能,你将得到一个错误。这就是为什么指令告诉您使用try/catch块的原因。它会捕捉到这个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51575909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档