资源简介 第三单元 开启python小宝箱 Section 1 Judge whether the password is correct or not 第1节 判断密码正误 课堂导入 2 欢欢通过上一单元的学习,有收获。老师奖励了它一个“神秘宝箱”,里面有神秘奖品,但是他在打开宝箱时遇到了困难,因为他输入了错误密码,输了多次才打开python宝箱。 他很好奇,这个宝箱是如何判断密码正误?要如何设计呢? 这节课,我们就来帮助他利用python语言设计出这个判断密码正误的小程序。 1.掌握if判断语句的运用 2.掌握while循环语句的运用。 3.掌握break循环终止语句的运用。 学习目标 1. 简单的密码正误判断 2. 循环进行密码判断 3. 学用elif子判断语句 课程目录 4. 两种循环语句的差别 01 简单的密码正误判断 01 简单的密码正误判断 5 我们要进行程序设计,第一步是整理程序功能的逻辑顺序。 我们先来整理一下“密码正误判断”小程序的逻辑顺序。 开始 预设密码 输入密码 判断两个密码是否相等 结束判断 是 否 01 简单的密码正误判断 在七年级上册的“走进python的世界” 单元中,我们学习了输入、输出函数,以及变量。 input():从控制台获取输入的数据(获取用户输入的密码) print():输出内容到控制台(提示用户输入密码正确与否)。 变量:存储数据(保存用户输入的密码,用以判断输入密码正确与否)。 判断语句 –‘ if ’作用:实现判断功能。 01 简单的密码正误判断 上图中的重点是“表达式”。如果“表达式”成立,将会执行语句块一,如果“表达式” 不成立,就会执行语句块二。 if 语句的语法格式如下: if 表达式: 执行语句块一 else: 执行语句块二 语法 格式 注意冒号 注意缩进 注意冒号 注意缩进 01 简单的密码正误判断 使用if语句,我们可以编写简单的密码判断程序,如下图所示。 # 表示为程序注释,目的是方便人们读写 注意:在Python语言中,比较两个值是否相等(逻辑判断),使用“ == ”,如果使用“ = ”则是为变量赋值。 01 简单的密码正误判断 如果将本代码连续运行3次,前两次输入错误密码,第三次输入正确密码,可以得到如下图所示的结果。 10 02 循环进行密码判断 02 循环进行密码判断 密码判断程序每运行一次只能输入一次密码,很不方便,能不能实现只要输入错误就返回重新输入,直到输入正确为止呢? while循环语句:重复执行所包含的程序块。 while语句的语法与格式 while 表达式: 执行语句块 语法 格式 注意冒号 注意缩进 While 语句的关键是“表达式”,“表达式”成立,下面缩进的语句块就会被执行。 02 循环进行密码判断 使用while循环语句实现密码正误判断的代码,同学们思考一下代码中的“表达式”什么时候成立,什么时候不成立。 下图是运行上面的代码所得的结果: “! =”表示“不相等” 02 循环进行密码判断 拓展练习:在当前代码中,输人错误时程序没有“ 密码错误”的提示,你能将“密码错误”的提示加人到代码中去吗?先动手试试,再谈谈自己尝试之后有什么发现。 02 循环进行密码判断 方法一:使用 if 判断语句判断密码是否正确。 增加一条判断语句。 下图是运行上面的代码所得的结果: 02 循环进行密码判断 方法二:输入正确密码后,强制让“表达式”不成立,结束循环。 下图是运行上面的代码所得的结果: 通过变量a构成表达式,密码正确时改变a的值使表达式不成立,结束循环。 02 循环进行密码判断 结束循环的最佳方式,就是让while语句的“表达式”不再成立。此外Python还为我们提供了一个break语句, 在循环过程中,任何时候遇到break语句,循环都会立即结束。 用break语句结束循环虽然更简单,但是如果break语句使用过多,一旦出现问题会很难查错。 因此我们还是应该尽量采用“让表达式不成立”来结束循环。针对不同的场景,有考虑的选择哪种方法更合适。 02 循环进行密码判断 17 程序运行效果如下图: 18 密码安全与字典攻击 我们刚才编写的代码中,用户可以无限次输入密码,这为某些人提供了猜测密码的机会。有人发现,人们的密码往往有规律,比如使用8个1或者8个0当作密码、用出生年月日当密码、用姓名字母或者手机号前几位当密码等等。根据这个规律,可以将生日、手机号前几位、姓名拼音、常见数字组合、常见的字母组合等内容全部保存为文本文件,这个文件被称为“密码字典”。黑客们可以编写程序,每次从密码字典中读出一条数据,用来尝试破解密码——这种违法行为, 被称为“字典攻击”。这个文件中只有不到20万条数据,却可以破解人们70%以上的密码。 拓展阅读 19 拓展阅读 {5C22544A-7EE6-4342-B048-85BDC9FD1C3A}密码字典大全 1950至2014八位数生日密码.dic 常见弱密码与常用单词.txt 常用八位数字密码.txt 常用密码字典password.dic 默认字典.dic 全十位数字密码.txt 所有常见姓名拼音.txt 姓名拼音加1960至2014六位生日密码.dic 英文单词全集.dic 黑客使用的常见密码字典文件。 02 循环进行密码判断 20 拓展阅读 黑客使用的“字典生成器”可按需要生成密码字典。 “字典攻击”是现在网络违法人员的常用攻击手段。为避免自己的密码被破解,我们要养成良好的密码管理与设置意识,尽量不要使用“有特殊意义、有规律”的字符或数字作为密码。密码最好同时具备大小写字符,并在字符中间夹杂数字。 03 学用elif子判断语句 21 03 学用elif子判断语句 if语句与else语句结合使用,通常只用来判断条件“成立”或“不成立”两种情况。 如果要判断的条件超过两种,我们就需要使用“ elif 子判断语句”。 例程:用户输人喜欢的颜色,程序返回给用户可能喜欢的季节。 03 学用elif子判断语句 程序运行效果如下图: 03 学用elif子判断语句 编程练习: 实现下面的要求:苹果3元/斤、橘子2元/斤、李子1.5元/斤、 西瓜1元/斤,用户输入水果名,程序就会告诉用户该水果售价多少。 03 学用elif子判断语句 程序运行效果如下图: 04 两种循环语句的差别 04 两种循环语句的差别 27 while循环语句可以形成无限循环,而for循环语句必须指定循环次数。 例子:要求在屏幕上打印5行星号,第1行1个星号,第2行2个星号……直到第5行5个星号。 使用while循环语句 (4行代码): 使用for循环语句 (2行代码): 04 两种循环语句的差别 28 通过对这两种循环语句差别的比较,我们可以得出这样的结论: 在知道循环次数的情况下,我们大多会使用for循环语句; 在不知道会循环多少次的情况下,我们一般会使用while循环语句。 29 打开神秘宝箱,查看里面的“神秘奖品” ! —— Python常用模块。 课堂总结 判断密码正误 简单的密码正误判断 两种循环语句的差别 循环进行密码判断 学用elif子判断语句 掌握if判断语句的运用 掌握while循环、for循环、break循环终止语句的运用 掌握elif子判断语句的运用 两种循环语句的选用 THANKS 展开更多...... 收起↑ 资源预览