分享

小板栗学编程3-密码生成器

 懂课鸭 2020-08-06

这周我开始编写我的第二个程序了,我的第二个程序叫做“密码生成器”,相比于“动物知识竞猜”,可能缺少一点点趣味性,但会具有一些实用性。它能够生成一些很独特的密码。

在介绍我的这个程序之前,还是先说说我这周学习到的基础知识:函数、修正错误。

函数


函数,是一段被命名了的代码。一旦我们编写好这种有特殊目的,并且特别有用的代码,我们可以给它起一个名字。当我们再使用这段代码的时候,不需要再重新录入,只要叫到它的名字就可以了。

我们给这段代码起名字的过程就叫做定义(define),命名时需要使用关键词def当我们叫它的名字,使用它时,这个过程就叫做调用(call)。

我们在使用函数数,有时候会告诉它一些信息,来帮助它能够更好的执行我们交给它的任务。这些信息,被称为参数(parameter)。

当函数执行完后,会告我们一些信息,这些信息就是函数的返回值(return value)。在函数中,使用关键词return就可以得到一个返回值。

python中有很多内置函数,比如之前我经常会用到的print()和input(),一个是吧信息显示在屏幕上,输出给用户看;一个是吧用户通过键盘输入的数据,传递给程序。

我定义了一个可以计算一天有多少秒的函数print_seconds_per_day()每次运行这个函数,我都能得到86400(一天的秒数)。

def print_seconds_per_day(): """ 定义一个打印一天有多少秒的函数 """ hours = 24 # 一天的小时数 minutes = hours * 60 # 一天的分钟数 seconds = minutes * 60 # 一天的秒数 print(seconds) # 打印一天的秒数
# 调用函数print_seconds_per_day()

修正错误


我在编写程序的时候,遇到了很多错误。之前,我都是找爸爸求助。学习完这一节之后,我开始可以自己处理遇到的错误了。
错误类型大约有这么些:语法错误、缩进错误、类型错误、名字错误、逻辑错误。
常见的语法错误包括漏掉了圆括号或者引号。我之前就老是漏掉了引号,导致程序报错。
缩进会告诉Python,哪一行代码属于哪个代码块。通常Python会自动插入缩进时的空格,但我们仍然应该仔细检查缩进是否正确。
类型错误可不是输入错误,它意味着你把一种数据类型和另一种搞混了。比如将一个字符串和一个数字比较大小,这时就会遇到类型错误了。
名字错误是指使用了一个还没有创建的变量或者函数。
有时候,Python不会报告任何错误,但是程序并没有按照我们想象中的那样完成任务,这时候就是遇到了逻辑错误。这种错误很隐蔽。

密码生成器


密码能够阻止他人进入你的计算机、入侵电子邮箱和盗用网站登录账号。有很多人会用自己的名字或生日来创建密码,这样的密码很容易记住,但也很容易被破解。

我们设置一个没有什么规律的字符串,比如:GH7pqZ2!?。破解器要破解这个密码可能需要1000年,但我们自己也记不住。

怎样设置一个既好记,又不容易破解的密码呢?Sleepydinosaur2!,这个怎么样?只要想到两只疲惫的恐龙要上床睡觉,就能想起这个密码。而且想要破解这个密码,破解器可能需要花费100万年哦。

我现在要做的密码生成器的原理就是通过形容词+名词+数字+符号的组合,来生成一个密码。你可以很快地生成令人惊讶而又难以忘记的密码,比如:fluffyapple14(“,14个有绒毛的苹果,是不是很奇怪呢!

这样,我创建了一个形容词列表,这些形容词有:sleepy、slow、smelly、wet、fat、red等等;还创建了一个名词列表,包括:apple、dinosaur、ball、toaster、goat等等。

密码生成器生成密码的时候,会从形容词列表中选取一个形容词,从名词列表中选取一个名词,然后从0-100中随机选择一个数字,最后从标点符号中随机选取两个。这样就组合成了一个特别有意思的密码。

我完成了编码后,测试了一下,结果遇到了报错。我试了很多次都不行。我想明天早上问爸爸吧。第二天早上我问爸爸:“这个为什么老是报错呀?”爸爸说:“是不是得加个while循环啊?”

我加了一个while循环,果然可以了。但是一运行,就停不下来了。原来没有告诉程序什么时候停止。我增加了提问“你想生成其他密码吗?”,当你觉得对密码满意的时候,不想再生成其他密码时,循环就停下来。完成这步后,我的密码生成器终于做好了。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多