Python编程常见出错信息及原因分析(1)

1.被0除错误

演示代码:

>>> 2 / 0
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    2 / 0
ZeroDivisionError: division by zero

错误原因分析与解决方案:

0不能作为除数,这一点必须要避免。

2.类型转换错误

演示代码:

>>> x = int(input('请输入一个整数:'))

请输入一个整数:abc
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    x = int(input('请输入一个整数:'))
ValueError: invalid literal for int() with base 10: 'abc'

错误原因分析与解决方案:

在接收用户键盘输入时,input()函数一律作为字符串返回,在进行类型转换(包括把用户输入转换为整数、实数、复数等类型)时,首先应做类型检查或辅以异常处理结构。例如,下面的代码使用if/else语句进行类型检查:

>>> x = input('请输入一个整数:')
请输入一个整数:abc
>>> if x.isdigit():
    print(int(x))
else:
    print('你输入的不是整数。')

 
你输入的不是整数。

下面的代码使用异常处理结构避免了错误输入导致的程序崩溃:

>>> try:
    print(int(input('请输入一个整数:')))
except:
    print('你输入的不是整数。')

 
请输入一个整数:abc
你输入的不是整数。

3.拼写错误

演示代码:

>>> print(value)
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    print(value)
NameError: name 'value' is not defined

错误原因分析与解决方案:

这种错误一般是因为拼写错误引起的,异常信息显示名字value没有定义,此时应仔细检查变量大小写。当然,也可能是不小心使用了还没有定义的变量名导致。

4.文件不存在错误

演示代码:

>>> with open('1234.txt') as fp:
     print(fp.read())

 
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    with open('1234.txt') as fp:
FileNotFoundError: [Errno 2] No such file or directory: '1234.txt'

错误原因分析与解决方案:

异常信息显示在当前文件夹中不存在文件1234.txt。错误原因可能是文件名输入错误,或该文件不在当前文件夹,需要使用相对路径或绝对路径。

5.权限不足错误

演示代码:

>>> import os
>>> os.chmod('test.txt', 0o000)
>>> os.remove('test.txt')
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    os.remove('test.txt')
PermissionError: [WinError 5] 拒绝访问。: 'test.txt'

错误原因分析与解决方案:

这种情况是因为权限不足引起的,文件test.txt当前权限被设置为“不可删除、不可修改、不能删除”,所以执行删除操作时抛出异常。如果确实要删除文件,可以首先设置文件的访问控制权限,然后再删除:

>>> os.chmod('test.txt', 0o777)
>>> os.remove('test.txt')

----------喜大普奔----------

1、继《Python程序设计基础》《Python程序设计(第2版)》《Python可以这样学》系列图书之后,董付国老师新书《Python程序设计开发宝典》已于2017年8月1日在清华大学出版社出版。为庆祝新书《Python程序设计开发宝典》全面上架,清华大学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,《Python程序设计开发宝典》原价69元,新书上架期间超低价39.8元,可以复制下面的链接使用浏览器打开查看图书详情和购买:

https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3

2、10月13日——15日,重庆,全国高校程序设计系列课程高级研究班,详见:全国高校程序设计系列课程高级研修班(Python)通知

3、9月22日——24日,北京,全国Python科研应用专题实操培训班通知,详见:全国Python科研应用专题实操培训班通知

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值