成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

年會抽獎如何用 Python讓自己變成天選之子

開發 后端
Python 的包導入機制決定了,在每個運行時內部,每個包只有第一次導入的時候有效,所以只要還在當前運行時,那么后續的所有import random都是無效的。

 [[379621]]

請大家猜一猜下面這段代碼的運行效果:

  1. import random 
  2. import time 
  3.  
  4. people = ['kingname''王小一''李小二''張小三''劉小四''盧小五''馬小六''周小七''丁小八''朱小九'
  5. for i in range(1, 11): 
  6.     lucky_guy = random.choice(people) 
  7.     print(f'第{i}次抽獎,中獎用戶:{lucky_guy}'
  8.     time.sleep(1) 

你是不是以為這段代碼運行以后,結果如下圖所示?

但實際上,我可以讓輸出結果根據我的意愿隨意變動,例如像下面這個 gif ,所有輸出結果都是我:

你可以先不要往下看,放下手機,自己寫一下代碼,試一試 如何才能實現 gif 中的效果。

下面來為大家解密。

要實現這個效果,只需要兩個知識點:

  1. Python自帶模塊是可以被覆蓋的
  2. Python 的 import 在同一個運行時只會導入一次

首先來看第一個知識點。Python 的自帶模塊是可以被覆蓋的,所以我們先來定義一個函數:

  1. def choice(option): 
  2.     return 'kingname' 

接下來,使用這個函數覆蓋random.choice:

  1. import random 
  2. random.choice = choice 

現在,無論給random.choice傳入什么參數,它始終都會返回kingname,運行效果如下圖所示:

這個時候,你可能會說,那別人寫代碼的時候,又重新import random怎么辦呢?random.choice不是又被改回去了嗎?

實際上并不會,因為Python 的包導入機制決定了,在每個運行時內部,每個包只有第一次導入的時候有效,所以只要還在當前運行時,那么后續的所有import random都是無效的。

所以,即使重新導入了 random 模塊,random.choice依然是你修改以后的代碼。所以當你再次執行的時候,會發現返回的還是你想要的數據,如下圖所示:

可能有人會說這樣容易被識破啊,別人只要先隨便寫一些測試數據,運行一次random.choice([123, 456]),發現返回的竟然是kingname,這不就露餡了嗎?

實際上完全不用擔心,我們可以這樣操作:

如果備選列表里面不包含kingname,那么就使用原生的 random.choice

如果備選列表里面包含kingname,那么就以60%的概率返回kingname

要實現這樣的功能,我們可以這樣寫代碼:

首先重啟當前 Jupyter 內核,讓 random 恢復成默認的,然后編碼:

  1. import random 
  2.  
  3. origin_choice = random.choice 
  4.  
  5. def choice(option): 
  6.     if 'kingname' not in option or random.randint(1, 10) > 6: 
  7.         return origin_choice(option
  8.     return 'kingname' 
  9.  
  10. random.choice = choice 

這樣替換以后,當有kingname在備選列表中時,kingname被有60%的概率被選中,如下圖所示:

當kingname不在備選列表中時,一切正常,如下圖所示:

本文轉載自微信公眾號「未聞Code」,可以通過以下二維碼關注。轉載本文請聯系未聞Code公眾號。

 

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2017-12-05 10:40:33

Python子域名

2017-01-15 14:47:07

2023-12-30 13:33:36

Python解析器JSON

2018-03-26 13:03:07

專業IT培訓

2013-11-08 09:28:01

網絡故障排除網絡故障

2019-01-18 20:51:12

碼農大獎新浪

2021-02-01 11:22:23

Windows 10Windows微軟

2009-04-15 09:12:35

營銷專家孫路弘裁員

2016-04-22 17:30:50

軟件加密軟件授權

2021-01-08 08:06:19

腳本Shell文件

2017-05-26 10:57:00

CIO數據挖掘大數據

2021-01-12 10:10:41

shell腳本Linux命令

2018-03-27 18:12:12

PythonHTML

2020-07-10 09:49:53

數據清理數據分析查找異常

2023-02-08 07:09:40

PythonChatGPT語言模型

2020-07-30 08:20:03

5G機器學習網絡

2011-08-31 17:04:26

2018-05-17 10:05:24

運行iPadPython

2019-11-28 09:23:17

Python機器學習數據庫

2020-05-09 10:38:31

Python透視表數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久免费看 | 亚洲福利在线观看 | 国产精品久久久99 | 九九热re | 色眯眯视频在线观看 | 久久99国产精品 | 久久久一区二区三区 | 91玖玖| 国产精品久久久久久久久久软件 | 综合久久亚洲 | 夜夜骚视频 | 999久久久 | 日韩一区二区精品 | 青娱乐av | 一区二区三区在线观看视频 | 国产高清免费视频 | 国产一级视频在线观看 | 久久精品视频12 | 欧美精品在线视频 | 日本视频中文字幕 | 91精品国产高清一区二区三区 | 国产午夜精品久久久久免费视高清 | 亚洲第一视频网 | 毛片免费看 | 欧美日韩高清在线一区 | 青青久在线视频 | 亚洲精品一区二区三区在线 | 国产精品一区二区不卡 | 热re99久久精品国产99热 | 日本精品一区二区三区在线观看视频 | 欧美一区二区三区在线播放 | 中文字幕在线视频免费观看 | 中文字幕不卡视频在线观看 | 一级片子 | 一区精品视频在线观看 | 国产精品久久久久久久久久久久久 | 色一情一乱一伦一区二区三区 | 精品久久久久久久久久 | 亚洲 中文 欧美 日韩 在线观看 | 色姑娘av | 国产高清视频一区 |