第七課:你知道如何用python做個整蠱朋友的小病毒嗎?看這里消返!七行代碼搞定载弄!

各位熱衷于刷抖音的同學(xué)一定在前幾個月刷到過一條風(fēng)靡全抖音的視頻:哦泡果奶病毒。


基于好奇撵颊,我特地跨過山和大海宇攻,也穿越人山人海,最終搞到了這個程序的安裝包倡勇。程序的功能其實也很簡單逞刷,就是將代碼打包成apk文件后,讓人將其當(dāng)成安裝包安裝在手機(jī)上妻熊,然后運行后夸浅,手機(jī)就會自動播放90后的童年回憶,哦泡果奶主題曲扔役。并且這個程序在安裝的時候會自動申請打開控制手機(jī)音量鍵帆喇,否則不通過這個權(quán)限程序根本無法運行。所以說如果你打開這個程序亿胸,手機(jī)的音量就不受你控制了番枚,除非關(guān)機(jī),不然你的手機(jī)配置再好损敷,也逃脫不了被哦泡果奶主題曲沖擊的命運葫笼。

那有的同學(xué)一下子腰板就坐直了,嗯拗馒?要搞事情了路星?圖片圖片,搞肯定是要搞滴,但是捏洋丐,不是哦泡果奶呈昔,是另外一個小程序,具體效果如何呢友绝?點擊下面視頻看效果:

(視頻單獨放)


可以看到上面的視頻里面這個程序完全是脫離python環(huán)境運行的堤尾,也就是說不論你的電腦有沒有安裝python或者是Pycharm他都可以運行。

實際上這個程序的功能也很簡單------讓運行這個程序的人說我像吳彥祖迁客,否則他只能關(guān)機(jī)郭宝,除非他點擊:’簡直就是一個人‘。

那么如果要做這個小病毒怎么做呢掷漱?看下面

while循環(huán)

首先我們要知道粘室,如果要做出讓某句話不斷重復(fù)的效果,肯定是需要循環(huán)的卜范,讓某段程序重復(fù)不斷地去執(zhí)行衔统,這就需要用到我們今天學(xué)的新知識------while循環(huán)了。


在講while循環(huán)之前海雪,我們先給大家來一段程序:

while True:

? print('迪迦奧特曼是我最好的朋友')


我們再來看看這段程序的運行效果:

(視頻單獨放)


那么短短兩行代碼锦爵,卻讓’迪迦奧特曼是我最好的朋友‘這句話不斷的運行,如果我不用pycharm的強(qiáng)制關(guān)閉功能的話奥裸,那根本就無法關(guān)閉险掀。


那接下來我們來看看這兩行代碼的意思:

while True:

? print('迪迦奧特曼是我最好的朋友')


while循環(huán)后的判斷語句


我們知道while在python當(dāng)中是循環(huán)的意思,那么這個時候問題來了刺彩,True加在while后面是什么意思迷郑?我們之前在第三節(jié)課講數(shù)據(jù)類型的時候講過True屬于布爾類型,這種數(shù)據(jù)類型就兩個關(guān)鍵字创倔,一個True 一個False嗡害。True 代表真,也就是我們大白話說的正確畦攘,對的意思霸妹。而False代表假,大白話說錯誤的意思知押。

這個時候就必須要再講講while的特性了叹螟,while的這個特性跟if和elif有點像,那就是在他們后面必須加判斷語句台盯。我們平常用if或者elif的話一定會在后面加上判斷語句罢绽,比如說像我們上次做的那個肥胖測試儀。同樣的静盅,while后面也必須加判斷語句良价,那么False跟True同樣的也屬于判斷條件,while True實際上就相當(dāng)于讓print('迪迦奧特曼是我最好的朋友')這行代碼做了一個無限運行,無限循環(huán)明垢。如果運行后不強(qiáng)制關(guān)閉這個程序蚣常,他就會一直運行下去,直到你的電腦沒電或者冒煙痊银。



那么這樣一來就很好理解while True:的意思了抵蚊,加上True的話就相當(dāng)于加上了一個判斷條件,但True就相當(dāng)于一個萬能令牌一樣溯革,不論是誰都可以用True自由出入各個場所贞绳。如果符合這個判斷條件,那就執(zhí)行print('迪迦奧特曼是我最好的朋友')鬓照,如果不符合那就不執(zhí)行熔酷。但很明顯孤紧,True的意思相當(dāng)于直接讓你執(zhí)行下面的print('迪迦奧特曼是我最好的朋友')豺裆,基本上相當(dāng)于走了個過場,但是該加還得加号显,因為我們說while的特性就是必須在他的屁股后面加判斷條件臭猜。


空格


說完判斷語句接下來我們再講講空格,其實我剛才就說過押蚤,while循環(huán)跟if語句很像蔑歌,像到什么地步呢?他只比if語句多了個循環(huán)的作用,剩下的基本差不多揽碘。就像我們接下來要說的空格次屠,現(xiàn)在旁邊有電腦的同學(xué)可以試試,把print('迪迦奧特曼是我最好的朋友')這行代碼的空格取消掉雳刺,讓他跟while True對齊劫灶,會發(fā)現(xiàn)什么都運行不了。因為我們說print('迪迦奧特曼是我最好的朋友')這行代碼是需要循環(huán)的掖桦,既然需要讓他循環(huán)本昏,那就必須讓他在while True語句下空四格,當(dāng)然如果我們不需要他循環(huán)枪汪,那也就沒必要讓這句話空四格了涌穆。甚至沒必要加while True.


停止循環(huán)


那有的同學(xué)說,唉雀久?那讓他無限循環(huán)怎么停啊宿稀,別做個程序自己把自己坑了,到時候把自己電腦弄得中病毒了赖捌。安啦祝沸,既然有’制毒之法‘,那也一定有’解毒之法‘。如何讓無限循環(huán)停下來呢奋隶?兩種方式擂送!


第一種方式:在while語句后面加上判斷條件


剛剛我們其實已經(jīng)知道,True也是一種判斷條件唯欣,只不過他就像一個永遠(yuǎn)都不會被拒絕的通行證一樣嘹吨,不論while下面的是什么操作,都會進(jìn)行無條件執(zhí)行境氢,并且一直執(zhí)行蟀拷。

那么實際上除了True以外,我們還可以去加其他的判斷條件萍聊,例如下面這段代碼:


可以看到運行結(jié)果里'迪迦奧特曼是我最好的朋友'這句話只運行了一次问芬,為什么?我們逐行來分析一下這段程序寿桨,首先第一行我們定義了一個a的整型變量此衅,給他賦值為0。


那么再看第二行亭螟,第二行大家都知道就是讓第二行以下帶空格的代碼都循環(huán)起來挡鞍,但是大家仔細(xì)看第二行代碼,這行代碼說:我可以讓你們帶空格的代碼去進(jìn)行循環(huán)预烙,但我有一個條件墨微,那就是a必須小于1,你符合這個條件才能循環(huán)的說'迪迦奧特曼是我最好的朋友'扁掸,否則如果不符合a<1這個條件的話就不讓你循環(huán)了翘县。


那么接下來程序就去進(jìn)行判斷了,首先他知道a目前是0谴分,那么接下來他就讓a去跟1作比較锈麸,讓a跟1作比較說白了就是讓0跟1作比較,換句話說狸剃,如果0<1才能讓我們想循環(huán)的內(nèi)容執(zhí)行掐隐。很明顯的,0確實是小于1的钞馁,這毫無爭議虑省。


因此我們的運行結(jié)果里出現(xiàn)了一句,'迪迦奧特曼是我最好的朋友'僧凰,然而奇怪的是為什么只出現(xiàn)了一次這句話探颈,難道0第二次再進(jìn)行循環(huán)的時候就大于1了嗎?非也非也训措,我們再看第四行代碼伪节。


第四行代碼對第三行代碼說光羞,好的,你執(zhí)行完了你的任務(wù)怀大,已經(jīng)說了一次'迪迦奧特曼是我最好的朋友'了纱兑,那么接下來該我上臺表演了,我的任務(wù)就是給a加個1化借,我們之前說過a+=1展開就是a=a+1,相當(dāng)于a給自己加了個1潜慎,那么原來的a=0,執(zhí)行完第四行代碼以后蓖康,a就不再是0铐炫,而是1了,因為第四行代碼給a加了個1.


加完1以后的a覺得自己十分牛逼蒜焊,打算再上循環(huán)那兒去跟1比比倒信,看誰更大,可惜的是泳梆,這個時候程序再運行到第二行的時候鳖悠,一判斷,程序說鸭丛,嗯竞穷?a變成1了唐责?1跟1一比鳞溉,兩個一邊兒大。得嘞鼠哥,既然不符合a<1的規(guī)則熟菲,那我就不讓你三四行代碼運行了,因為你三四行都是帶了空格的需要循環(huán)的朴恳,不合規(guī)矩我就讓你不弄了抄罕,收拾收拾回家吧。然后程序接著再往下走于颖,一看呆贿,嗯?沒代碼了森渐,得嘞做入,任務(wù)干完了,回家睡覺同衣。



第二種方式:break語句

先看代碼:

while True:

? ? a = input('我是全世界最帥的男人嗎竟块?')

? ? if a=='是':

? ? ? ? print('你是我最好的朋友')

? ? ? ? break

? ? else:

? ? ? ? print('哦')

再看看運行效果:

(視頻單獨放)


其實相信大部分同學(xué)除了break這塊兒其他基本上已經(jīng)明白了,那這個break在英文當(dāng)中是破碎的意思耐齐,但在我們的python里面他是專門用來終止循環(huán)的一個保留字浪秘。這也就意味著蒋情,無論while后面加了什么樣的判斷條件,哪怕是True這個無限循環(huán)耸携,只要break一出來棵癣,那么當(dāng)前的循環(huán)就被終止了。




這么一說夺衍,是不是上面的這個程序就好理解了浙巫,第一行代碼先來個無限循環(huán),第二行代碼進(jìn)行詢問刷后,如果用戶輸入的是‘是’的畴,那就說你是我最好的朋友,并且說完后直接終止循環(huán)尝胆。否則就一直說哦然后繼續(xù)循環(huán)到開頭繼續(xù)問直到用戶回答是丧裁。




完整病毒程序


這個程序延續(xù)了我們上節(jié)課學(xué)習(xí)的easygui庫,所以我們必須先導(dǎo)入這個庫含衔,然后把所有的input換成buttonbox()煎娇,print()換成msgbox()。這個程序我們就不講了贪染,代碼放下面大家自己琢磨琢磨




from easygui import? *

while True:

? ? a = enterbox('我是全世界最帥的男人嗎缓呛?')

? ? if a=='是':

? ? ? ? msgbox('你是我最好的朋友')

? ? ? ? break

? ? else:

? ? ? ? msgbox('哦')



將程序打包成安裝包


將程序打包這個命令實際上挺多的,但是我們就根據(jù)今天我們做的程序敲打包命令杭隙。如果有興趣的同學(xué)可以百度一下其他打包命令哟绊。




pyinstaller庫


首先我們要知道,pyinstaller這個庫的作用是專門用來打包程序的痰憎,并且這是一個第三方庫票髓,需要我們自己去下載,不會下載第三方庫的第六篇文章铣耘,里面有專門的下載鏈接命令和方法洽沟。


這個庫有個特殊點,就是在文件中不用導(dǎo)入這個庫名,只要下載好這個庫蜗细,然后直接敲命令就可以了裆操。具體怎么操作看下面:


1.先打開需要打包的文件然后在下面找Terminal鍵,找到后單擊打開炉媒。


2.敲命令:pyinstaller -w -F 文件名.py,敲完后單擊回車踪区。


3.在你的文件所存在的文件夾里找一個叫dist的文件夾,這是打包命令自動生成的橱野。

4.打開dist文件夾朽缴,找到你的文件名但后綴是exe的那個軟件,就是我們剛才生成的軟件水援。直接發(fā)給你的好基友就可以了密强。


好啦茅郎,這期就到這里啦,我們下期見或渤,拜拜系冗!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市薪鹦,隨后出現(xiàn)的幾起案子掌敬,更是在濱河造成了極大的恐慌,老刑警劉巖池磁,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奔害,死亡現(xiàn)場離奇詭異,居然都是意外死亡地熄,警方通過查閱死者的電腦和手機(jī)华临,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來端考,“玉大人雅潭,你說我怎么就攤上這事∪刺兀” “怎么了扶供?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長裂明。 經(jīng)常有香客問我椿浓,道長,這世上最難降的妖魔是什么漾岳? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任轰绵,我火速辦了婚禮,結(jié)果婚禮上尼荆,老公的妹妹穿的比我還像新娘。我一直安慰自己唧垦,他們只是感情好捅儒,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著振亮,像睡著了一般巧还。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坊秸,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天麸祷,我揣著相機(jī)與錄音,去河邊找鬼褒搔。 笑死阶牍,一個胖子當(dāng)著我的面吹牛喷面,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播走孽,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼惧辈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了磕瓷?” 一聲冷哼從身側(cè)響起盒齿,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎困食,沒想到半個月后边翁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡硕盹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年倒彰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莱睁。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡待讳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出仰剿,到底是詐尸還是另有隱情创淡,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布南吮,位于F島的核電站琳彩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏部凑。R本人自食惡果不足惜露乏,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涂邀。 院中可真熱鬧瘟仿,春花似錦、人聲如沸比勉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浩聋。三九已至观蜗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衣洁,已是汗流浹背墓捻。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留坊夫,地道東北人砖第。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓撤卢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親厂画。 傳聞我的和親對象是個殘疾皇子凸丸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容