python基础 -06 bug

文章列举了Python编程中常见的bug错误,包括类型错误(如将字符串与整数比较)、变量未定义、列表操作错误以及逻辑错误。同时,介绍了异常处理机制,如try-except结构,用于捕获和处理运行时错误,例如除数为零或无法转换字符串为数字的情况。此外,提到了traceback模块在调试中的作用和PycharmIDE的调试功能,强调了使用这些工具理解并解决程序错误的重要性。
摘要由CSDN通过智能技术生成

1.bug的由来

1.bug错误1 

 

1. age是字符串类型

2.i没有定义 ,括号是中文格式,i要加1 否则进入死循环 

正确如下:

age = input("请输入年龄:")
if int(age) >=18:
    print(age)
    
i = 0
while i<10:
    print(i)
    i+=1

2.bug错误2

 等号是赋值,==才是比较

 3.bug错误3

 1.列表数组越界。

 2.正确语法lst.append。而且一次只能添加一个元素

正确如下:

list = [1,2,3,4] #数组下表从0开始
print(list[3])

lis =[]
lis.append(12)
lis.append(13)
print(lis)
'''
4
[12, 13]
'''

列子:

#一个列表 有三个字典数组元素
lst =[{'rating':[9.7,14141],'id':'12','type':['犯罪','剧情'],'title':'肖申克的救赎','actors':['蒂姆','摩根']},
      {'rating':[9.6,15667],'id':'13','type':['动作','爱情'],'title':'霸王别姬','actors':['张国荣','张丰毅','葛优']},
      {'rating':[9.5,18798],'id':'14','type':['青春','剧情'],'title':'阿甘正传','actors':['汉克斯','怀特']},
      ]
name =input('请输入演员名字:')
for item in lst:
    act_lst = item['actors']
    '''
    print(act_lst)
    ['蒂姆', '摩根']
    ['张国荣', '张丰毅', '葛优']
    ['汉克斯', '怀特']
    act_lst 是列表类型
    '''
    for actor in act_lst:
        '''
        print(actor)
        蒂姆
        摩根
        张国荣
        张丰毅
        葛优
        汉克斯
        怀特
        actor 是字符串类型
        '''
        if name in actor:
            print(name,'出演了',item['title'])
else:
    print("演员不存在")

4.bug错误4

 a字符这样输入转不了,除数不能为0

5.异常处理机制

1.try --except

try:
    num1 = int(input('请输入第一个整数:'))
    num2 = int(input('请输入第而个整数:'))
    res = num1/num2
except ZeroDivisionError:    #除数为0的捕获 捕获完正常结束
    print('除数为0')
except ValueError:
    print('不能将字符串转成数字')
print('结束')
​

2.try --except ---else

try:
    num1 = int(input('请输入第一个整数:'))
    num2 = int(input('请输入第而个整数:'))
    res = num1/num2
except BaseException as e:
    print('出错了',e)
else:
    print("没有异常:",res)

3.try --except--else...finally

try:
    num1 = int(input('请输入第一个整数:'))
    num2 = int(input('请输入第而个整数:'))
    res = num1/num2
except BaseException as e:
    print('出错了',e)
else:
    print("没有异常:",res)
finally:
    print("不管有无异常都会执行")

5.bug总结

 6.traceback模块

import traceback
try:
    print('-------------------')
    print(1/0)
except:
    traceback.print_exc()
'''
-------------------
Traceback (most recent call last):
  File "D:/pythonProject/dome1.py", line 41, in <module>
    print(1/0)
ZeroDivisionError: division by zero
'''

7.Pycharm调试

i = 1
while(i < 10):
    print(i)
    i+=1
'''
先打断点,进入调试模式,下一步下一步往下调试

'''

8.总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值