bug发展史
第一只bug的故事
计算机程序之母的格蕾丝·赫伯(Grace Hopper)。
时光回到1947年,当时她正在为下图这个庞然大物编制程序...
第一部万用计算机的进化版——马克2号(Mark II)
bug
就化身计算机领域里程序故障的代名词
俗话说的好,coding五分钟,debug两小时
这个代码会报错吗?
a = input('请输入密码:')
if a == '123456'
print('经过')
复制代码
有一段代码是错的...
for x in range(10):
 print(x)  
for x in range(10):
print(x)
复制代码
看一下这一段...
n = 0
while n<3:
username = input("请输入用户名:")
password = input("请输入密码:")
if username == 'abc' and password == '123':
print("登陆成功")
break
else:
n=n+1
print("输入有误")
else:
print("你输错了三次,登陆失败")
复制代码
一块儿来找茬儿...
从list中找到星期日
week = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
sunday = week[7]
print(sunday)
复制代码
创建一个空list, 往里插入值...
a = []
a = append ('A','B','C')
print(a)
复制代码
当你发现知识点记不清或者不能肯定的时候,就要及时复习或者上网搜索。
不要强行写出本身不敢肯定的代码,这种状况每每容易出错。
思路不清指的是当咱们解决比较复杂的问题时,因为咱们对细节和实现手段思考得不够清楚,
要么致使一步错,步步错;要么虽然没有报错,可是程序没有达到咱们想要的效果。
以前留的一个做业...
这段代码有问题吗?
movie = {
'妖猫传':['黄轩','染谷将太'],
'无问西东':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅']
}
name=input('你查询的演员是?')
for i in movie:
actors=[i]
if name in actors:
print(name+'出演了'+i)
复制代码
猜硬币...
import random
guess = ''
while guess not in ['正面','反面']:
print('------猜硬币游戏------')
print('猜一猜硬币是正面仍是反面?')
guess = input('请输入“正面”或“反面”:')
# 随机抛硬币,0表明正面,1表明反面
toss = random.randint(0,1)
if toss == guess:
print('猜对了!你真棒')
else:
print('没猜对,你还有一次机会。')
guess = input('再输一次“正面”或“反面”:')
if toss == guess:
print('你终于猜对了!')
else:
print('大失败!')
复制代码
age = int(input('你今年几岁了?'))
if age < 18:
print('不能够喝酒噢')
复制代码
若是不是数字...
因此解决方案是...
try:
age = int(input('你今年几岁了?'))
if age < 18:
print('不能够喝酒噢')
except ValueError:
print('你喝多了吧...')
复制代码
这段代码有没有问题?
num = [1,2,0,3]
for x in num:
print (6/x)
复制代码
因此解决方案是....
num = [1,2,0,3]
for x in num:
try:
print (6/x)
except ZeroDivisionError:
print('0不能作除数')
复制代码
全部异常汇总...
异常名称 | 描述 |
---|---|
BaseException | 全部异常的基类 |
SystemExit | 解释器请求退出 |
KeyboardInterrupt | 用户中断执行(一般是输入^C) |
Exception | 常规错误的基类 |
StopIteration | 迭代器没有更多的值 |
GeneratorExit | 生成器(generator)发生异常来通知退出 |
StandardError | 全部的内建标准异常的基类 |
ArithmeticError | 全部数值计算错误的基类 |
FloatingPointError | 浮点计算错误 |
OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 除(或取模)零 (全部数据类型) |
AssertionError | 断言语句失败 |
AttributeError | 对象没有这个属性 |
EOFError | 没有内建输入,到达EOF 标记 |
EnvironmentError | 操做系统错误的基类 |
IOError | 输入/输出操做失败 |
OSError | 操做系统错误 |
WindowsError | 系统调用失败 |
ImportError | 导入模块/对象失败 |
LookupError | 无效数据查询的基类 |
IndexError | 序列中没有此索引(index) |
KeyError | 映射中没有这个键 |
MemoryError | 内存溢出错误(对于Python 解释器不是致命的) |
NameError | 未声明/初始化对象 (没有属性) |
UnboundLocalError | 访问未初始化的本地变量 |
ReferenceError | 弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
RuntimeError | 通常的运行时错误 |
NotImplementedError | 还没有实现的方法 |
SyntaxError | Python 语法错误 |
IndentationError | 缩进错误 |
TabError | Tab 和空格混用 |
SystemError | 通常的解释器系统错误 |
TypeError | 对类型无效的操做 |
ValueError | 传入无效的参数 |
UnicodeError | Unicode 相关的错误 |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
Warning | 警告的基类 |
DeprecationWarning | 关于被弃用的特征的警告 |
FutureWarning | 关于构造未来语义会有改变的警告 |
OverflowWarning | 旧的关于自动提高为长整型(long)的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑的语法的警告 |
UserWarning | 用户代码生成的警告 |
期末考试结束了,小加在教务系统查到了本身的几门必修课分数,
他想经过python计算本身的平均分。
因而写了下面的代码,但是老是得不到结果,请帮纠正bug并跑通程序。
scores = {'语文':89, '数学':95, '英语':80}
sum_score = 0
def get_average(scores):
for subject, score in scores.items():
sum_score += score
print('如今的总分是%d'%sum_score)
ave_score = sum_score/len(scores)
print('平均分是%d'%ave_score)
get_average(scores)
复制代码
小强认识了一个新朋友叫旺财,他想让你给他取个外号,但他很不喜欢别人叫他小狗和汪汪,
因而写了一个程序让本身避免叫他这两个外号中的一个,但是不知为何叫他小狗程序也没有警告。
not_bad_word = True
while not_bad_word:
x = input('请给旺财取个外号:')
if x == '小狗' and x =='汪汪':
not_bad_word = False
print('我生气了,不想理你了!')
print('对不起,之后我不会这么叫你了')
复制代码
小明想用python写个程序,看看本身的存款每月涨了多少倍。
但是发现程序报错,你能帮他找出错误,使程序从新运行吗?
deposit = [100,300,900,2000,5000,0,2000]
for i in range(1, len(deposit)):
times = deposit[i]/deposit[i-1]
print('你的存款涨了%f倍'%times)
复制代码
练习目标:
经过这个练习,咱们会用代码作出一个贴心的除法计算器:
只要输入有误,就会给出相应的报错信息。
练习要求:
这个除法计算器须要包含的报错信息有:
输入了非数值(即不属于整数和浮点数)、除数为零以及变量不存在。
为了让代码能够给出相应的报错信息,咱们能够运用课堂中谈到的
try...except
语句。
猫哥教你写爬虫 000--开篇.md
猫哥教你写爬虫 001--print()函数和变量.md
猫哥教你写爬虫 002--做业-打印皮卡丘.md
猫哥教你写爬虫 003--数据类型转换.md
猫哥教你写爬虫 004--数据类型转换-小练习.md
猫哥教你写爬虫 005--数据类型转换-小做业.md
猫哥教你写爬虫 006--条件判断和条件嵌套.md
猫哥教你写爬虫 007--条件判断和条件嵌套-小做业.md
猫哥教你写爬虫 008--input()函数.md
猫哥教你写爬虫 009--input()函数-人工智能小爱同窗.md
猫哥教你写爬虫 010--列表,字典,循环.md
猫哥教你写爬虫 011--列表,字典,循环-小做业.md
猫哥教你写爬虫 012--布尔值和四种语句.md
猫哥教你写爬虫 013--布尔值和四种语句-小做业.md
猫哥教你写爬虫 014--pk小游戏.md
猫哥教你写爬虫 015--pk小游戏(全新改版).md
猫哥教你写爬虫 016--函数.md
猫哥教你写爬虫 017--函数-小做业.md
猫哥教你写爬虫 018--debug.md
猫哥教你写爬虫 019--debug-做业.md
猫哥教你写爬虫 020--类与对象(上).md
猫哥教你写爬虫 021--类与对象(上)-做业.md
猫哥教你写爬虫 022--类与对象(下).md
猫哥教你写爬虫 023--类与对象(下)-做业.md
猫哥教你写爬虫 024--编码&&解码.md
猫哥教你写爬虫 025--编码&&解码-小做业.md
猫哥教你写爬虫 026--模块.md
猫哥教你写爬虫 027--模块介绍.md
猫哥教你写爬虫 028--模块介绍-小做业-广告牌.md
猫哥教你写爬虫 029--爬虫初探-requests.md
猫哥教你写爬虫 030--爬虫初探-requests-做业.md
猫哥教你写爬虫 031--爬虫基础-html.md
猫哥教你写爬虫 032--爬虫初体验-BeautifulSoup.md
猫哥教你写爬虫 033--爬虫初体验-BeautifulSoup-做业.md
猫哥教你写爬虫 034--爬虫-BeautifulSoup实践.md
猫哥教你写爬虫 035--爬虫-BeautifulSoup实践-做业-电影top250.md
猫哥教你写爬虫 036--爬虫-BeautifulSoup实践-做业-电影top250-做业解析.md
猫哥教你写爬虫 037--爬虫-宝宝要听歌.md
猫哥教你写爬虫 038--带参数请求.md
猫哥教你写爬虫 039--存储数据.md
猫哥教你写爬虫 040--存储数据-做业.md
猫哥教你写爬虫 041--模拟登陆-cookie.md
猫哥教你写爬虫 042--session的用法.md
猫哥教你写爬虫 043--模拟浏览器.md
猫哥教你写爬虫 044--模拟浏览器-做业.md
猫哥教你写爬虫 045--协程.md
猫哥教你写爬虫 046--协程-实践-吃什么不会胖.md
猫哥教你写爬虫 047--scrapy框架.md
猫哥教你写爬虫 048--爬虫和反爬虫.md
猫哥教你写爬虫 049--完结撒花.mdhtml