输入和输出
在之前的课程中,我们已经掌握了令Python程序输出一段文本/表达式的值的方法——print()
实际上,基于print()命令,你可以完成很多有意思的事情。例如一个讨女孩子欢心的小程序:
算命小程序
那么我们能不能编写出一些更具有“实用性”的程序呢?实际上,通过几条语句,我们就可以完成一个算命小程序:
在这段程序中
第一行的import random的作用是告诉python你需要使用random这样一个命令,即随机方法
第二行的luck = random.randint(0, 100)表示系统生成一个0~100的随机数字存放在luck这个“盒子”当中
第三行的print(luck)表示将luck这个盒子中保存的数字进行输出
提示
以上的代码大家只需要了解其大致功用,具体的细节我们会在之后的课程为大家介绍。
随机种子
这个程序有一个缺点,如果你运行很多次,那么每次的结果都不一样,这样的算命小程序肯定是不受妹子欢迎的!
那么如何修改呢?一些玩过“我的世界”这类沙盒游戏的同学可能知道:在游戏的刚开始,随机生成地图时,我们需要一个随机种子seed。
只要随机种子seed相同,生成出的地图就是相同的
而算命小程序每次的结果不一样,是因为“Python默认根据当前时间指定随机种子seed”
所以我们可以通过给Python程序指定一个随机种子来固定运势值:
指定的这个随机种子可以是数字,也可以是字符串。大家可以尝试将seed(10086)修改为seed('某个女生的名字'),这一定程度上可以看出这个女生的运气哦!
注意字符串需要用单引号围住,否则Python会产生错误
日期的输入
现在,运势值就永远固定了——这就显得有点假,毕竟我们希望对于同一个人同一天的结果尽可能相同,然后对于不同的人或者不同的天结果都不相同。
于是我们可以在每次运行程序的时候,输入一个数字,表示今天是星期几,然后我们用这个数字来作为随机种子:
注意,正如我们之前所说,Sublime Text中的Python程序无法输入,所以我们在命令行中执行这个程序。
在这个程序中:
在第3行中,我们使用weekno = input()这句话来完成输入,并将输入的值存放于weekno这个“盒子”当中
在input()时,程序会停留在这一行,直到你敲击回车完成输入(不妨想象一下程序如果不等待输入完成会如何)
我们将weekno中存放的值作为随机种子,从而对于不同的输入都会有不同的运势值
注意
input()的功能为从命令行接受你输入的下一段用“空格”,“回车”等分隔符标识结束的字符串(数字是先作为字符串读入然后转化成数字的)。
但是,只有在键入了“回车”后,input()才会认为“你”已经完成了输入。
所以在输入完成后一定要键入“回车”表示自己完成了输入,但是如果输入的字符串中有空格的话,input()只会取出空格前的一部分,剩下的内容会由之后的input()取出。
姓名的输入
一般的算命程序还会要求你输入姓名,所以我们不妨也要求使用者输入姓名,并利用姓名来作为随机种子:
在这段程序中:
由于我们有两个输入,所以我们使用name+weekno这样的方式,将它们合为一个值,来作为随机种子
一个字符串“加上”一个数字会变成什么呢?大家不妨自己猜想一下,特别是可以使用print()来查看。
至此,如果你顺利的完成了上述的程序设计,那么你就已经充分的掌握了Python基本的输入和输出,你也完成了你的第一个有实际作用的Python程序,不妨给它取一个好听的名字吧!