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