Python中碰到bug

Python中bug

  • 粗心问题
粗心
  • 知识不熟
  • 思路不清
movie = {
'妖猫传':['黄轩','染谷将太'],
'无问西东':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅'],
}

name = input('你想查询哪个演员?')
for i in movie:
    actors = movie[i]
    #取出字典的值
    if name in actors:
        print(name+'出演了电影'+i)
  • 被动掉坑
    Python给我们提供了一种异常处理的机制,可以在异常出现时即时捕获,然后内部消化掉,让程序继续运行。即try...except...
异常处理
#不用修改代码,直接运行即可,尝试多输入几次非数字
while True:
    try:
        age = int(input('你今年几岁了?'))
        break
    except ValueError:
        print('你输入的不是数字!')

if age < 18:
    print('不可以喝酒噢')

代码要点有两个:(1)因为不知道用户什么时候才会输入正确,所以设置while循环来接受输入,只要用户输入不是数字就会一直循环,输入了数字就break跳出循环。(2)使用try……except……语句,当用户输错的时候会给予提示。

num = [1,2,0,3]
for x in num:
    try:
    #尝试执行下列代码
        print (6/x)
        #使用6除以num中的元素,并打印
    except ZeroDivisionError:
    #除非发生ZeroDivisionError报错,执行下列代码:
        print('0是不能做除数的!')
        #打印“0是不能做除数的!”

练习:除法计算

print('\n欢迎使用除法计算器!\n')

while True:
    try:
        x = input('请你输入被除数:')
        y = input('请你输入除数:')
        z = float(x)/float(y)
        print(x,'/',y,'=',z)
        break  # 默认每次只计算一次,所以在这里写了 break。
    except ZeroDivisionError:  # 当除数为0时,跳出提示,重新输入。
        print('0是不能做除数的!')
    except ValueError:  # 当除数或被除数中有一个无法转换成浮点数时,跳出提示,重新输入。
        print('除数和被除数都应该是整值或浮点数!')
    
    # 方式2:将两个(或多个)异常放在一起,只要触发其中一个,就执行所包含的代码。
    # except(ZeroDivisionError,ValueError):
    #     print('你的输入有误,请重新输入!')
    
    # 方式3:常规错误的基类,假设不想提供很精细的提示,可以用这个语句响应常规错误。
    # except Exception:
    #     print('你的输入有误,请重新输入!')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容