fiddler4微信抓包教程 (不断努力的小蜗牛 – 博客园)
不断努力的小蜗牛fiddler4微信抓包教程使用fiddler来抓包:需要先做一些简单的准备工作:
不断努力的小蜗牛fiddler4微信抓包教程使用fiddler来抓包:需要先做一些简单的准备工作:
import time import random while True: player_victory = 0 enemy_victory = 0 for i in range(1,4): time.sleep(1.5) print(‘ \n——————现在是第 %s 局——————’ % i) player_life = random.randint(100,150) player_attack = random.randint(30,50) enemy_life = random.randint(100,150) enemy_attack = random.randint(30,50) print(‘【玩家】\n血量:%s\n攻击:%s’ % (player_life,player_attack)) print(‘————————‘) time.sleep(1) print(‘【敌人】\n血量:%s\n攻击:%s’ % (enemy_life,enemy_attack)) print(‘———————–‘) time.sleep(1) while player_life > 0 and enemy_life > 0: player_life = player_life – enemy_attack enemy_life = enemy_life – player_attack print(‘你发起了攻击,【玩家】剩余血量%s’ % player_life) print(‘敌人向你发起了攻击,【敌人】的血量剩余%s’ % enemy_life) print(‘———————–‘) time.sleep(1.2) if player_life > 0 and enemy_life <= 0: player_victory += 1 print(‘敌人死翘翘了,你赢了!’) elif player_life <= 0 and enemy_life > 0: enemy_victory += 1 print(‘悲催,敌人把你干掉了!’) else: print(‘哎呀,你和敌人同归于尽了!’) if player_victory > enemy_victory : time.sleep(1) print(‘\n【最终结果:你赢了!】’) elif enemy_victory > player_victory: print(‘\n【最终结果:你输了!】’) else: print(‘\n【最终结果:平局!】’) a1 = input(‘要继续游戏吗,请输入n退出,输入其他继续:’) # 在 while True 循环中设置跳出条件。 if a1 == ‘n’: break
有些时候,我们需要重复发布一样模板的文章的时候,我们需要重复输入一样的内容,那么这必然降低了工作效率,想要提高工作效率,最直接的方法就是直接克隆文章,减少不必要的操作,今天就是来给大家推荐一款一键克隆文章或页面的插件:Duplicate Post。 Duplicate Post 插件可以克隆各种文章类型,包括Post文章、Page页面、以及各种自定义文章类型等,我们可以直接克隆(clone)原文章的全部属性和内容到草稿,然后我们可以在生成的草稿中进行编辑发布,也可以克隆完成后直接跳转到文章编辑页面(New Draft)进行编辑发布。 这个克隆插件对于搭建WordPress企业网站,需要发布产品文章的用户来说还是非常实用,特别是同系列的产品只是需要修改部分不同内容而已,所以,对已有文章克隆成草稿后再进行编辑发布就可以节省很多时间,从而提高编辑效率。 插件的安装与设置 1、插件安装:登录WordPress网址后台> 插件 >安装插件 > 搜索:Duplicate Post > 找到插件后点击【现在安装】 > 安装成功后启用即可。 2、插件设置:登录WordPress网址后台> 设置> Duplicate Post > 进入到“Duplicate Post Options”页面进行相应选项设置即可(PS:一般情况下全部默认即可直接使用) 2.1 What to copy(克隆什么):设置可以克隆文章页面的相关属性及克隆后的标题显示。 2.2 Permissions(权限):设置那些角色可以对那些文章类型进行克隆操作。 2.3 Display(显示):设置显示内容,如Post list如果不勾选那么在所有文章列表中就看不到克隆按钮,建议这项全部默认即可。 插件的使用 安装启用Duplicate Post 插件后,在WordPress后台 > 文章 > 所有文章的列表页面中的每一篇文章都会看到clone和New Draft按钮: clone:直接克隆文章并以草稿的形式保存; New Draft:克隆文章后直接进入到文章编辑页面; clone效果图 New Draft效果图 插件的官方介绍及下载 下载地址 总结 从各方面来看,这插件还是比较实用的,但是准确来说,并不是所有的站点都会使用到这个插件的,有些站点可能还会适得其反,毕竟适合自己的才是最好的。同时,对于克隆的文章或者说这一操作是否会影响到SEO,这个我暂时也不知道,个人感觉应该不会有什么影响,毕竟只是简单的复制而已。
第0关 print()函数与变量-千与千寻的名字 课程目标 了解python:用途、组成 熟练使用函数:print() 掌握换行的三种方法 了解变量的意义,熟练给变量赋值 认识转义字符,了解转义字符的使用方法 课程难点 print()函数以及引号的使用 换行的两种简便方法 区分赋值与等于 课程重要内容重现 一、最基本的一条代码 1. print()函数 print()函数由两部分构成: 指令:print; 指令的执行对象:在print后面的括号里的内容 2. 引号的用法 单引号和双引号都可以使用,但需要匹配,并且配合使用可以区分开原文和print()函数的结构。例如,print(“Let’s go”),双引号的作用是函数结构,单引号是英文语法。 不用引号时,括号内必须是数字或者数字运算,这是计算机可以理解的内容。例如:print(1+1),最后输出是2。 注意:python中所有的符号都是英文状态下的,并且会区分大小写。 二、换行 重复使用print()函数,将不同行的语句放在不同的函数中输出。(事倍功半) 使用三引号:用三引号将需要分行的内容括起来,并且在引号内使用回车进行段落排版。例如: print(”’我愿意留在汤婆婆的澡堂里工作两年, 第一年在锅炉房和锅炉爷爷一起烧锅炉水, 第二年在澡堂给客人搓背, 如果我违背工作内容的话, 将在这个世界变成一头猪。”’) 使用\n,此时是不允许回车换行的!例如: print(‘我愿意留在汤婆婆的澡堂里工作两年,\n第一年在锅炉房和锅炉爷爷一起烧锅炉水,\n第二年在澡堂给客人搓背,\n如果我违背工作内容的话,\n将在这个世界变成一头猪。’) 三、转义字符 对于可作为结构性符号的,例如单引号,感叹号,若想直接使用,可在符号前加一个反斜线\。则对于之前的例子:print(“Let’s go”),也可以写作print(‘Let\’s go’),中间的单引号由于使用了反斜线,所以作为整条语句的内容而不是print()函数的结构。 四、变量与赋值 变量是我们自己创建的,命名要求: 只能是一个词 只能包含字母、数字、下划线(下划线可以用于连接多词) 不能以数字开头 尽量描述包含的数据内容(抽象概括存储的内容) 代码中的=(等号)是用于赋值而逻辑上的等于要使用两个等号,即1+1==2。 变量的特点:保存的数据是可以随意变化的,储存的值永远都是最新的那个。例如:name=’魔法少女千酱’name=’夏目千千’name=’千寻’print(name) 这段代码输出是结果是‘千寻’ 第1关 数据类型与转换-萌新的进化 课程目标 熟练掌握三种数据类型及其转换 掌握数据拼接的方法 了解查询数据类型的type()函数 课程难点 区分字符串下的数字与整数、浮点数下的数字 使用【+】进行数据拼接时,连接的数据类型必须为同数据类型 使用函数进行数据类型的转换时,int()与float()函数括号内的数据必须为纯数字型文本 课程重要内容重现 一、常见的三种数据类型 1、字符串 特点:被引号括起来的文本。(注意引号要使用英文状态下的单引号或者双引号、三引号)例:slogan = ‘命运!不配做我的对手!’attack = “308”gold = “48g”blood = ”’+101”’achieve = “First Blood!” 先将内容以字符串形式赋值给变量,最后使用print()函数输出变量即可。 2、整数 整数英文为integer,简写做int。是正整数、负整数和零的统称,是没有小数点的数字。 特点:无需配合引号使用,可进行计算。如:108(整数)‘108’(字符串)‘6小灵童’(字符串)但若存在文字类数据,则必须使用引号,将其变为字符串类型。例:print(6小灵童)print(6skr)#打印数据SyntaxError: invalid syntax#终端显示结果:报错:无效语法 具体的计算符号:(优先级与日常算数一致) 3、浮点数 相对于整数而言,浮点数就是带小数点的数字。英文名是float,与整数int()和字符串str()不同,浮点数没有简写。 二、查询数据类型——type()函数 作用:查询数据类型 例:print(type(‘查询内容’))achieve = ‘Penta Kill’print(type(achieve))#结果显示:<class ‘str’> 三、数据拼接 利用数据拼接符号【+】,将需要拼接的变量连在一起。注意:变量内的数据类型必须为字符串型才可进行拼接!如:hero = ‘亚瑟’ enemy = ‘敌方’action = ‘团灭’gain = ‘获得’achieve = ‘ACE称号’#结果显示为#亚瑟团灭敌方获得ACE称号 print(hero+action+enemy+gain+achieve)hero = ‘亚瑟’ enemy = ‘敌方’action = ‘秒杀’gain = ‘获得’number = 5achieve = ‘Penta Kill’print(hero+action+number+enemy+gain+achieve)#结果显示报错:TypeError:can only concatenate str (not “int”) to str#类型错误:只能将字符串与字符串拼接 四、数据类型转换 1、转换为字符串类型 str()函数能将数据转换成其字符串类型。只要将所需数据放到括号里,这个数据就能成为字符串类型。 用引号将数据括起来也能达到同样结果。 例如:hero = ‘亚瑟’ enemy = ‘敌方’action = ‘秒杀’gain = ‘获得’number = 5achieve = ‘Penta Kill’print(hero+action+str(number)+enemy+gain+achieve)print(hero+action+’5’+enemy+gain+achieve)#使用str()函数将变量number里的数字5变成了字符串5。 2、转换为整数 int()函数的使用,与str()类似。注意一点:只有符合整数规范的字符串类数据,才能被int()强制转换。print(int(‘3.8’))#运行后显示结果:ValueError:invalid literal for int() with base 10: ‘3.8’ 小数型字符串会直接报错,而浮点数会被强制转换:print(int(3.8))#运行后结果显示:3 也就是说,对于浮点数,int()会保留其整数部分。注意:不是四舍五入! 3、转换为浮点数 float()函数的使用与int()、str()类似。如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。 第2关 条件判断与条件嵌套-灭霸的选择 课程目标 熟练掌握if条件判断语句,包括单向、双向以及多向判断。 熟悉语句间的级别关系,不同级别之间要有缩进 熟悉计算机执行指令的顺序,能看懂并得出代码输出结果以及写出if嵌套语句 课程难点 逻辑判断应使用逻辑符号等于【==】 条件语句后一定要记得接冒号【:】,注意观察冒号之后的语句是否缩进以及同级别的语句是否在格式上处于并列状态。 在执行变量的判断之前,要注意变量是否已经被赋值 课程重要内容重现 一、条件判断 即中文逻辑语句“如果…就…”。在进行判断之前,一定要先对变量进行赋值!条件判断就是针对不同的可能性,进行不同操作。赋值情况的前提不满足if的条件时,自动跳过,执行下一行命令。 其次,每一个判断语句之后要使用冒号【:】,表示接下来的内容是只有满足条件才运行的。若不是条件下的语句,要记得删除缩进。 1、单向判断 要是if之后的条件不满足,就跳过if语句进行下一命令。格式: if xxx(判断的条件): 如果满足上述条件,就执行的操作语句 2、双相判断 要是if之后的条件不满足,就执行else里的。if与else平级(缩进一致,在else前必须有一个平级的前提)。每一个条件不能有重合部分,是互斥的,格式: if xxx(判断的条件): 如果满足上述条件,就执行的操作语句 else: 如果不满足if之后的语句,就执行的操作语句weight=101#要先为酱酱的体重赋值,酱酱的体重是101斤if weight>100:#如果体重超过100斤的条件下,就……(条件后需加冒号) print(‘不吃了’) #就打印结果:不吃了!(注意检查是否自动缩进) else:#如果体重没有超过100斤的条件,就……(else条件前无缩进,条件后需加冒号) print(‘放心吃吧’) #就打印:放心吃吧(注意检查是否自动缩进) 3、多向判断 if、elif和else平级。可以存在多个elif,数量根据整体能分成的所需选项数来定。注意:每一个条件不能有重合部分,是互斥的,即x<10与9<x<15,这样的两个条件是不可行的。如果不满足if的条件,就判断是否满足elif下的条件,若所有elif的条件都不满足,就执行else下的语句。并且elif之后可以不接else,格式: if xxx(判断的条件): 如果满足上述条件,执行的操作语句 elif xxx(与前一个if互斥的另一个条件): 如果满足elif后的条件,就需要执行的语句 else: 若if、elif后面的条件都不满足,则会执行的语句stonenumber=1#一定要先为宝石数量赋值if stonenumber>=6: #注意冒号 #条件:如果你拥有的宝石数量大于等于6个 print(‘你拥有了毁灭宇宙的力量’) #注意缩进 elif 3<stonenumber<=5: #条件:如果宝石数量在4至5个 print(‘红女巫需要亲手毁掉幻视额头上的心灵宝石’) else: #条件:当赋值不满足if和elif条件时,执行else下的命令,即宝石数量在3个以下 print(‘需要惊奇队长逆转未来’) 二、if嵌套 在基础条件满足的情况下,再在基础条件底下增加额外的条件判断。在编写if嵌套语句时,同样的,可以按照框架,从大到小,依次往不同的大条件中补充额外条件。historyscore=26if historyscore>=60: print(‘你已经及格’) if historyscore>=80: print(‘你很优秀’) else: print(‘你只是一般般’)else: print(‘不及格’) if historyscore<30: print(‘学渣’) else: print(‘还能抢救一下’)print(‘程序结束’)#结果显示为 :#不及格#学渣#程序结束 每一个级别下的条件都只能执行一个!(互斥)elif与if类似。 第3关 input()函数-霍格沃茨来信 课程目标 理解输入函数input()的意义 熟练掌握input()函数返回的数据类型,以及结果赋值、数据类型转换的方法 课程难点 input()函数括号内的内容会被输出,但需要输入对应数据才能继续执行之后代码 input()函数的结果必须赋值给变量,且数据类型为字符串型 课程重要内容重现 input()函数 1、定义 input()函数是输入函数,与print()函数类似,input()函数括号里面的内容是会显示出来的,但不同在于我们需要输入对应的内容,回车后才能继续运行。 2、input()函数赋值 在括号内用引号括起提示语,例:input(‘请铲屎官输入宠物的名字:’)#运用input函数搜集信息 输入的内容被储存在计算机内,需要将结果赋值给变量。例:print(’那么,您的选择是什么?”1″接受,还是”2″放弃呢?’)choice = input(‘请输入您的选择:’)#变量赋值if choice == ‘1’: print(‘霍格沃茨欢迎你的到来’)else: print(‘您可是被梅林选中的孩子,我们不接受这个选项。) 3、input()函数的数据类型 对于input()函数来说,不管输入的是整数1234,还是字符串‘我爱摩卡’,input()函数的输入值(搜集到的回答),永远会被强制性地转换为字符串类型。(Python3固定规则)所以,不管我们在终端区域输入什么,input()函数的返回值一定是字符串,将结果赋值给变量后,变量的数据类型也一定是字符串。 4、input()函数的数据类型转换 使用数据类型转换函数,int(),float()可以从源头强制转换为对应类型。但是要注意,此时的input()函数返回值一定要是纯数字型!例:money = int(input(‘你一个月工资多少钱?’))#将输入的工资数(字符串),强制转换为整数if money >= 10000: #当工资数(整数)大于等于10000(整数)时 print(‘土豪我们做朋友吧!’) #打印if条件下的结果else: #当工资数(整数)小于等于10000(整数)时 print(‘我负责赚钱养家,你负责貌美如花~’) #打印else条件下 注:输入值会运用到计算时,千万记得用int()转换!
知识点回顾: 1,明确数据类型 这里容易产生混淆的易错点是,在我们进行数据拼接的时候,要注意数据类型, 举例: ① print(‘4’+’3’) ② print(4+3) 大家看这两个有什么不同? 两次print出来的结果不同,第一次结果会显示43,原因是①里面4和3的两边都有引号,这里面是字符串拼接,那么拼接出来的也是一个字符串,这里要注意字符串不可以跟整数类型数据拼接 ②里面的4和3不带引号,那么就是整数类型数据,所以可以直接进行加减乘除的数字运算,最后print出的结果数据类型也是数字。 2、if,else条件判断 这里有一张简单的知识内容图 while True: i=int(input(‘请你猜猜是多少?’) if i<24: print(‘太小了’) elif i>24: print(‘太大了’) else: print(‘猜对了’) break 这里需要注意的就是,if跟else 的搭配使用,如果if else中间要加入第三种平级的情况判断,那么就要用elif,要注意使用前提。 列表跟字典 明白列表跟字典的定义, 基本格式:列表 [ ]、字典 { } 列表里面是有顺序的,元素按照顺序排列,通过偏移量取元素(偏移量是从0开始) 字典里是无序的,里面的元素是以键值对的形式存在的,即键=值。 通过键值对来取值,即 字典名[键名] 添加,删除操作: 列表: ①增加元素,列表利用append函数:例:列表.append(要添加的元素) ②删除元素 pop函数 例:列表.pop(删除元素的偏移量) 字典: ①增加元素,通过键值对对应直接添加 例: 字典名[新增键名]=新增的值 ②删除元素 pop函数 例:字典.pop(删除键值对的键名) 列表: [ ]里每一个数据叫元素,各种数据类型都可以放 从列表中提取单个元素 依靠偏移量选取,从0开始列表名加带 [ ] 的偏移量就可以取到该位置元素,即通过偏移量对列表进行检索 从列表提取多个元素(切片定义) 用冒号来截取列表元素的操作叫做切片,直接将列表中片段拿出处理 注意:切片后的结果仍然为列表,偏移量单独取出的为元素 列表增加/删除元素(append) 函数:append()添加元素,每次只能一个,且添加在列表末尾,可以插进去一个列表 del用于删除片段或清除整个列表,用法del 列表名【元素的索引】 字典: 键值对概念,len()函数可以得出列表或字典的长度(元素个数),字典中的键具有唯一性 字典增加/删除元素 删除字典里键值对,利用del字典名[键],新增键值用赋值语句:①字典名【键】=值,②利用append追加可以通过键添加值 课后扩展,pop 字典:pop(key[,default]) 字典,列表异同(课堂练习:小红,小刚xxxxx) 不同点: 1、列表元素有具体位置,看似相同元素,位置不同即为两个不同列表 2、列表有序排列,字典数据是随机排列 3、即通过偏移量取列表元素,通过键取字典值 相同点: 1、列表可以嵌套列表,字典,字典也可以嵌套其他列表或者字典 扩展知识点: 元组(tuple):元组和表格很相似,不过,它是用小括号来包的。 元组和列表都是序列,提取的方式也是偏移量,如 tuple1[1]、tuple1[1:]。另外,元组也支持任意的嵌套。
1、什么时候使用循环? 当我们发现想要实现一个功能,要将一段代码重复写很多遍,这时候可以考虑把重复的代 码,写成一个循环语句。 例如:打印一个列表里面的每一个元素,每个元素我们都要print一遍,这时可以把print这句写成一个循环。 2、两种循环语句: for…in…循环: while循环 3、for…in…循环: 比较常见的for循环格式: 重点:放在循环内的语句,要缩进四个空格,循环语句的冒号! 通常我们都会在后面跟一个变量,这个变量不一定要是i,可以随便命名,只要不是关键字就可以。(python默认的一些函数名,随着学习深入印象会深)in 后面通常是跟一个范围,也就是i 可以取值的区间。 上图 in后面加的是一个列表,里面有5个元素 ,那么这句循环的意思就可以理解为,i 这个变量在后面这个列表循环取值,每个取一遍,一共5个元素。所以这个循环次数为5次! 只有在循环语句内,才会循环执行,如上图4,5行的内容在循环外部,故会只执行一次。 根据缩进就可以看出来那些语句在循环内部啦~ 当我们 in 后面放的是一个字典的时候,i 每次取出来的是字典里面的键~ 当in 后面放的是一个字符串的时候,也是可以取出来的~,如上图! 我们经常会看到for in 循环后面会跟 一个range() range(): range(x),可以生成一个从0到x-1的整数序列;range(a,b)取头不取尾 看一个小例子: range(3)跟range(0,3)是等价的,后面数字的区间,也是跟列表偏移量一样,左取右不取,所以range(3)这个整数序列,用变量进去取3次就结束,每次取得值是0,1,2 4、while 循环: while 循环的常见格式: ① while True: ②while 条件:(这个条件为自己设置希望进入循环满足的条件,比较常见的变量与一个数的 大小比较) 5、如何自己写出一个循环语句!!! 6、布尔值判断: 主要涉及到条件判断,and 跟or 难度不大,多看习题体会理解即可 7、四种语句 1、break: 必须放在循环语句内部,执行到这一句直接跳出循环结束,防止死循环可以添加一个 2、continue: 放在循环语句内部,执行到这一句会直接跳回循环开始进行下一次循环,后面循环内部的语句不执行 3、pass: 跟扑克牌一样,是’过‘的意思,执行到这句自动跳过,进行后面 4、else: 之前学习条件判断,都是if 跟else 连用,这里面while也可以作为 else上级 7、and,or 条件判断: or, and 前后两个条件格式要一致, 举例: a==3 or 2: (错误) a==3 or a>2 (正确) 切记前后的条件格式都要一样,or前后也是如此,不能偷懒少写哦:
代码太长?内容太复杂? 不用担心!往下看 ↓ 知道为什么python简洁,省力么? 就是因为python有很多写好的工具箱可以直接调用,我们只要开头给一个命令,在我们的代码 就可以直接使用它的功能了,这句话就是import 模块名 一个模块里有很多种小功能,我们在下面使用的时候只要打上命令就可以~ 这里要记住!目前我们只需要知道怎么利用模块就好啦, 1、本节课利用到的模块 import random:随机 本节课利用到它的一个小功能,随机整数,比如random.randint(取数区间),会随机取整 import time: time sleep(间隔时间/秒),print消息之间的间隔时间 2、游戏的基本逻辑 ①两个人打架,每个人有两个属性,攻击跟血量 第一步生成这四个属性,编程里就是定义四个变量: 随便叫什么都可以,a 或者 b ,c,d;为了方便区分我们可以写a1,a2,b1,b2 数值怎么取呢,利用刚才的随机模块的功能,不要问为什么,直接记住写这个函数就可以, 这就像我们生活中的工具,你要拧螺丝,就会想到用螺丝刀一样~慢慢熟悉! ②开始决斗 怎么决斗,血量减去敌人的攻击力,每一轮都是一人打一下 一方血量小于0他就死啦~!我们只要记住公式: 最新生命 = 生命 – 敌人攻击 (不断给生命这个变量赋值) 因为只打一下可能会打不死 所以上面这句话会重复出现! 怎 么 办? 重复出现相同的代码:用 循环!!! 不知道什么循环次数: 用 while 循环结束的条件:有一个人的生命小于0,游戏结束! 为了让游戏显示结果,需要用if else条件判断,根据不 同情况,显示不同内容。 这是一场游戏的代码 如果我们要进行三场游戏,把上面的结构循环三次就好啦! 利用for in range(3)循环三次。 添加三局两胜的计数功能: 在每次游戏内容判断结果的时候设置一个变量,赢了加1 最后比较大小就可以啦
小提醒(如何跳出whileTrue死循环的方法:) 1,鼠标点一下终端区,按ctrl+c(windows)command+c(mac)(记得多按几次) (1) 遇到无法修改代码的情况: 刷新网页,然后修改代码 关闭页面重新进入,再去改代码 (2)可以修改代码的情况: 将代码while True改成while False. 将代码whileTrue加#注释跳过 故意写错代码(删掉一个括号),点击跳过 n+=的意思是n=n+1,!=的意思是不等于 一、TypeError:类型错误,对象用来表示值的类型非预期类型时发生的错误。 错误例子: age=18 print(‘我的年龄是’+age) 报错信息:TypeError: can only concatenate str (not “int”) to str (这是类型错误,提示必须是一个字符串,不能是数字。) 解决方法:在使用“+”做拼接的时候,必须使用字符串,或者把数字转化成字符串。 正确代码: age=18 print(‘我的年龄是’+str(age)) 二、AttributeError:属性错误,特性引用和赋值失败时会引发属性错误 错误例子: tp=(‘1′,’3′,’5’) tp.append(‘7’) print(tp) 报错信息:AttributeError: ‘tuple’ object has no attribute ‘append’ 提示: 属性错误:元组对象没有“append”的属性,简单来说元组是不可变对象 解决方法:把元组换成列表。 三、NameError:试图访问的变量名不存在。 举个简单的例子,只运行一行print(a),会报错:NameError: name ‘a’ is not defined。简单来说,就是变量a没有定义,解决方法是在前面给a赋值,比如加上一行a=”。 还有一种需要小心处理的是:变量或者函数名拼写错误。如: name= ‘卡西’ print(‘My name is ‘ + nane) 报错信息和上面一样:NameError: name ‘nane’ is not defined。这类错误只要根据报错信息,细心检查下拼写,就能很快解决~ 四、SyntaxError:语法错误,代码形式错误 报错信息为:SyntaxError: invalid syntax 提示是:语法错误,非法的语法。 解决方法: 当报错的时候,要注意回到错误信息的那一行,然后从下往上,慢慢查找,此处这个程序就是因为if语法忘了在判断语句后面加“:”,所以导致的错误。 另外,初学者写代码时要注意使用英文符号,这是大家经常犯的错误 五、KeyError:在读取字典中的key和value时,如果key不存在,就会触发KeyError错误。 举个小栗子: dict={‘a’:1,’b’:2,’c’:3} print(dict[‘d’]) 报错信息为:KeyError: ‘d’。 第一种解决方法,首先测试key是否存在,然后才进行下一步操作,如: 六、IndexError:索引错误,使用的索引不存在,常索引超出序列范围,序列中没有此索引(index) 报错信息:IndexError: list index out of range 提示:索引错误,列表索引超出了范围。 解决办法: 回头看列表的长度,索引是要小于列表的长度的。上面的列表长度是5,而索引却要打印第七个,所以是超出了列表的长度。 七、IndentationError:缩进错误 报错:IndentationError: expected an indented block 原因:缩进有误,Python的缩进非常严格,行首多个空格,少个空格都会报错。 由于不熟悉python编码规则,不易查找,所以会成为新手常犯的一个错误。像def,class,if,for,while等代码块都需要缩进。 八、TabError: Tab 和空格混用 相邻的两句的缩进需要统一使用tab或统一使用空格,不能混用。否则就会出现以下报错:TabError: inconsistent use of tabs and spaces in indentation。 tab键本质上是制表符,而不是缩进符,不同的文本编辑器中制表符代表的空格宽度不一,如果代码需要跨平台或跨编辑器读写,建议不要使用制表符(tab键)。 心得:inconsistent use of tabs and spaces in indentation错误处理方法: 把报错的行光标放到第一个字母前,backspace直接删除到和上一行接起来,然后按回车就行了。 九、贴心小提示 把代码报错复制然后百度一下就知道报错是什么意思啦~ 英文名称查询:https://unbug.github.io/codelf/ python异常处理 | 菜鸟教程:https://www.runoob.com/python/python-exceptions.html
爱测试,爱生活,爱这里