热衷于刷抖音的同学们,前几个月一定刷过一段风靡全抖音的视频:哦泡果奶病毒。
基于好奇,我特意穿越了山海,穿越了人山人海,到了这个程序的安装包。其实程序的功能也很简单,就是把代码打包成apk文件完成后,人们将其作为安装包安装在手机上,然后在运行后,手机将自动播放90年代后的童年记忆,哦奶主题曲。此外,该程序在安装过程中会自动申请打开控制手机音量键,否则无法通过该权限程序运行。因此,如果您打开此程序,手机的音量将无法控制。除非关机,否则无论您的手机配置有多好,您都无法逃脱被水果奶主题曲影响的命运。
有些同学突然坐直了腰板,嗯?做事?
一定要搞滴,但捏,不是哦泡果奶,是另一个小程序,具体效果如何?点击以下视频查看效果:
视频加载中...
你可以看到上面的视频中的程序完全脱离了python环境运行,也就是说,无论你的电脑是否安装了python或者是Pycharm他能操作。
其实这个程序的功能也很简单——让操作这个程序的人说我像吴彦祖,否则他只能关机,除非他点击:‘只是一个人’。
那么如果要做这个小病毒呢?看下面
while循环
首先,我们应该知道,如果我们想让一个句子重复,我们必须需要循环,让一个程序重复,这需要使用我们今天学到的新知识------while循环了。
在讲while循环之前,先给大家一个程序:
while True: print(';迪迦奥特曼是我最好的朋友';)让我们来看看这个程序的运行效果:
单独发送视频
所以两行代码很短,但让迪迦奥特曼是我最好的朋友这句话不断运行,如果我不需要的话pycharm如果强制关闭功能,根本无法关闭。
接下来我们来看看这两行代码的含义:
while True:
print(';迪迦奥特曼是我最好的朋友')
while循环后的判断句
我们知道while在python是循环的意思,这时问题来了,True加在while后面是什么意思?我们之前讲过第三节课的数据类型True属于布尔类型,这种数据类型只有两个关键字,一个True 一个False。我们之前讲过第三节课的数据类型True属于布尔类型,这种数据类型只有两个关键字,一个True 一个False。True 代表真理,也就是我们白话说的正确正确的意思。而False代表假,大白话说错了。
这个时候,我们必须while的特性了,while这个特性跟if和elif有点像,那就是他们背后必须加判断句。我们平常用if或者elif如果肯定会加判断句,比如我们上次做的肥胖测试仪。同样的,while后面还必须加判断句,所以False跟True也属于判断条件,while True其实相当于让步print(';迪迦奥特曼是我最好的朋友';)这行代码无限运行,无限循环。如果这个程序在运行后不被迫关闭,他将继续运行,直到你的电脑没电或冒烟。
这样,就很容易理解了while True:加上True相当于增加了判断条件,但是True就像万能令牌一样,无论谁能用True各个地方自由出入。符合判断条件的,执行print(';迪迦奥特曼是我最好的朋友';),如果不符合要求,执行。但很明显,True意思相当于直接让你执行以下内容print(';迪迦奥特曼是我最好的朋友';),基本上相当于走过场,但是要加,因为我们说while其特点是必须在屁股后面增加判断条件。
空格
说完判断句,我们再谈空格。其实我刚才说过,while循环跟if句子很像,到什么地步?他只比if句子有循环作用,其余基本相同。就像我们接下来要说的空格一样,现在旁边有电脑的学生可以试试print(';迪迦奥特曼是我最好的朋友';)取消这行代码的空间,让他跟随while True对齐,你会发现什么都不能工作。因为我们说print(';迪迦奥特曼是我最好的朋友';)这个代码需要循环。既然他需要循环,他就必须在那里while True当然,如果我们不需要他循环,就没有必要让这句话空四格。甚至没必要加while True.
停止循环
有同学说,唉?那他怎么能停止无限循环呢?不要做程序,自己坑,然后把电脑弄成病毒。安拉,既然有‘制毒法’,那一定有‘解毒法’。如何停止无限循环?两种方式!
第一种方法:在while判断条件加在句子后面
刚才我们其实已经知道了,True这也是一种判断条件,但他就像一张永远不会被拒绝的通行证,无论如何while以下操作将无条件执行,并始终执行。
除此之外True此外,我们还可以添加其他判断条件,如以下代码:
在运行结果中可以看到';迪迦奥特曼是我最好的朋友';这句话只运行过一次。为什么?让我们逐一分析这个程序。首先,在第一行中,我们定义了a的整形变量,赋值为0。
所以看第二行,第二行我们都知道是让第二行以下的空格代码循环,但你仔细看第二行代码,代码说:我可以让你带空格代码循环,但我有一个条件,也就是说,a必须小于1,你满足这个条件循环';迪迦奥特曼是我最好的朋友',否则,如果不符合a<如果是这样,就不会让你循环。
然后下一个程序将被判断。首先,他知道a目前是0,然后他让a与1进行比较。说白了,让a与1进行比较就是让0与1进行比较。换句话说,如果0<1可以执行我们想要循环的内容。
然后下一个程序将被判断。首先,他知道a目前是0,然后他让a与1进行比较。说白了,让a与1进行比较就是让0与1进行比较。换句话说,如果0<只有这样,我们才能实现我们想要循环的内容。显然,0确实小于1,这是毫无争议的。
因此,一句话出现在我们的操作结果中,';迪迦奥特曼是我最好的朋友';然而,奇怪的是,为什么这句话只出现一次?0第二次循环大于1吗?我们来看看第四行代码。
第四行代码对第三行代码说,好的,你完成了任务,已经说过一次了';迪迦奥特曼是我最好的朋友';嗯,那我就该上台表演了。我的任务是给a加1。我们之前说过a =1展开就是a=a 1.相当于a给自己加了1,所以原来的a=执行第四行代码后,a不再是0,而是1,因为第四行代码给a加了1.
加了1之后,a觉得自己很牛逼,打算和1比,看看谁更大。不幸的是,当程序再次运行到第二行时,一个判断,程序说,嗯?a变成1了?a变成1?1与11相比,两边大。既然不符合a<1的规则,那我就不让你三四行代码运行了,因为你三四行都有空间,需要循环。如果你不遵守规则,我会让你停止。收拾行李回家。然后程序再往下看,嗯?没有代码,好吧,任务完成了,回家睡觉。
第二种方法:break语句
先看代码:
再看操作效果:
单独发送视频
事实上,我相信除了大多数学生之外,除了大多数学生break其他基本上已经明白了,那这个break在英语中碎的意思,但在我们身上python他是一个专门用来终止循环的保留词。这意味着,不管while后面加了什么样的判断条件,哪怕是True只要这个无限循环break当前的循环一出来就终止了。
这样,上述程序是否容易理解,第一行代码首先是无限循环,第二行代码询问,如果用户输入是,说你是我最好的朋友,然后直接终止循环。
这样,上述程序是否容易理解,第一行代码首先是无限循环,第二行代码询问,如果用户输入是,说你是我最好的朋友,然后直接终止循环。否则,继续说哦,然后继续循环到开始,直到用户回答是。
完成病毒程序
这个程序延续了我们在课堂上学到的东西easygui所以我们必须先把这个库导入,然后把它全部放进去input换成buttonbox(),print()换成msgbox()。我们不会谈论这个程序。让我们自己考虑代码:
from easygui import *while True: a = enterbox(';我是世界上最帅的男人吗?') if a=='是': msgbox(';你是我最好的朋友') break else: msgbox('哦')
其实打包程序的命令挺多的,但我们将根据我们今天做的程序敲打包装命令。有兴趣的同学可以百度其他打包命令。
pyinstaller库
首先要知道,pyinstaller这个图书馆的功能是专门用来包装程序的,这是一个第三方图书馆,我们需要自己下载。我们不会下载第三方图书馆。点击这句话阅读第六篇文章。有一个特殊的下载链接命令和方法。
4.打开dist文件夹,找到你的文件名,但后缀是exe软件是我们刚刚生成的软件。直接发给你的好基友。
好了,这一期到此为止。下次见,再见!