python random函数_详细代码实战讲解:如何用 Python让自己变成天选之子

今天为大家带来的内容是:详细代码讲解:如何用 Python让自己变成天选之子

话不多说直接上代码:

请大家猜一猜下面这段代码的运行效果:

8bb7f15835c7428da01218f5060fefba.png

你是不是以为这段代码运行以后,结果如下图所示?

b584af02a51390eb23eb248b0f51bfb1.png

但实际上,我可以让输出结果根据我的意愿随意变动,例如像下面这个 gif ,所有输出结果都是我:

0934322cec22f19d7a0c8ffe8146aaee.gif

你可以先不要往下看,放下手机,自己写一下代码,试一试 如何才能实现 gif 中的效果。

下面来为大家解密。

要实现这个效果,只需要两个知识点:

  1. Python自带模块是可以被覆盖的
  2. Python 的 import 在同一个运行时只会导入一次

首先来看第一个知识点。Python 的自带模块是可以被覆盖的,所以我们先来定义一个函数:

def choice(option): return 'kingname'

接下来,使用这个函数覆盖random.choice:

import randomrandom.choice = choice

现在,无论给random.choice传入什么参数,它始终都会返回kingname,运行效果如下图所示:

f9751c6b42bbfa220b080037f54f0ed7.png

嗨喽:正在学习python的小伙伴或者打算学习的,可以私信小编“07”领取资料!

这个时候,你可能会说,那别人写代码的时候,又重新import random怎么办呢?random.choice不是又被改回去了吗?

实际上并不会,因为Python 的包导入机制决定了,在每个运行时内部,每个包只有第一次导入的时候有效,所以只要还在当前运行时,那么后续的所有import random都是无效的。

所以,即使重新导入了 random 模块,random.choice依然是你修改以后的代码。所以当你再次执行的时候,会发现返回的还是你想要的数据,如下图所示:

3e3a9c62a56857f0f0844e83e0762f4f.png

可能有人会说这样容易被识破啊,别人只要先随便写一些测试数据,运行一次random.choice([123, 456]),发现返回的竟然是kingname,这不就露馅了吗?

实际上完全不用担心,我们可以这样操作:

  1. 如果备选列表里面不包含kingname,那么就使用原生的 random.choice
  2. 如果备选列表里面包含kingname,那么就以60%的概率返回kingname

要实现这样的功能,我们可以这样写代码:

首先重启当前 Jupyter 内核,让 random 恢复成默认的,然后编码:

95bb52a409079763bc0e2146d93be0eb.png

这样替换以后,当有kingname在备选列表中时,kingname被有60%的概率被选中,如下图所示:

e591b70a2768b863a5641763c1c0ab83.png

当kingname不在备选列表中时,一切正常,如下图所示:

00450c261baccd572c9fb82466a84c64.png

以上就是本文的全部内容啦!!!

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓图标_干货 | 安卓界面系统规范

众所周知,安卓系统是开源的,国内又有超多的手机厂商,小米、魅族、华为、oppo、三星等,每一个品牌有属于自己的UI设计规范,但是我们主要分析UI界面尺寸规范。1、字体安卓系统中文采用的是思源黑体,英文字体为…

pyqt安装_Win10下安装LabelImg以及使用(绝对是全网最简单的教程)

labelImg是图片标注软件,用于数据集的制作、标注等等。下面介绍labelImg的安装过程。我用的是anaconda,所以以anaconda prompt作为终端:在Anaconda Prompt中依次运行以下命令(注意大小写):pip install PyQt…

delphi listview 添加数据 慢_ListView 的缓存机制

一.前言ListView 作为一个 Android 5.x 之前的一个用于显示数据列表的控件,或许在今天都已经被 RecyclerView 完全替代,但是其中的缓存机制仍然值得我们去了解,对后面学习 RecyclerView 的缓存机制有很大的帮助。下面将根据 ListView 的三个过…

c++ 显示三维散点图_【无机纳米材料科研制图——OriginLab 0210】Origin多组柱状图3D柱状图及3D散点图...

此篇,我们来分享Origin绘制多组柱状图、立体柱状图和三维散点图。一、多组柱状图1)准备数据。准备数据,并点击Plot——》Column/Bar/Pie——》Column进行绘制。结果如下。2)带有误差棒的绘图。如果想绘制带有误差棒的直方图&#…

保存文件_wps文件保存在哪里

我们经常使用WPS进行文本、表格的编辑,有时候顺手点击保存之后,文件就会根据默认文件路径保存,如果您不知道默认的文件保存路径,怎么才能够找到刚刚保存的文件,下面就为大家介绍一下wps文件保存在哪里,希望…

mobi格式电子书_进阶能力 | 了解常见的电子书格式

静读君是初中开始接触电子书的,那个时候以为电子书就是TXT,到后来渐渐地接触到了PDF、DOC、CAJ 才知道原来电子书还分这么多的格式,那个时候还在想,为什么要弄这么多不同的格式呢?那不是自找麻烦吗?接触的…

c++ udp通信_Web 通信协议,你还需要知道:SPDY 和 QUIC

一、开拓者:SPDY1. 简介:spdy 是由google推行的,改进版本的HTTP1.1 (那时候还没有HTTP2)。它基于TCP协议,在HTTP的基础上,结合HTTP1.X的多个痛点进行改进和升级的产物。它的出现使web的加载速度有极大的提高。HTTP2也借…

查看 rabbitmq 启动websocket 提示404_RabbitMQ 部署记录

erlang与rabbitmq版本对应关系:https://www.rabbitmq.com/which-erlang.html安装erlang下载地址:http://www.erlang.org/downloads11.安装依赖 2yum install -y gcc gcc-c ncurses ncurses-base ncurses-devel ncurses-libs ncurses-static ncurses-term…

linux远程windows执行cmd,Linux服务器远程连接window服务器并执行cmd命令

前段时间,要给一个分布式调度系统写一个运维脚本,这个分布式调度系统部分子系统部署在window服务器上,这个时候就要想办法用Linux远程来连接window服务器,并执行cmd命令。下面是我的解决方法:1、在Linux服务器上的处理…

Linux安装Flash脚本,Linux(CentOS)下的Shockwave Flash shell一键更新脚本

原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2318.html https://www.myzhenai.com/thread-17933-1-1.html关键字: Shockwave Flash一键更新脚本 Flash一键更新脚本这个脚本其实是我自己用的, 我的系统里安装了FlashPlayer软件和火狐(firefox)浏览器里安装了Sho…

收文处理和发文处理的环节_集气罩的设计是气体净化、废气处理系统设计的重要环节...

在工业生产中,常用于控制各种颗粒物和气态污染物的方法是将有害物质在发生源收集起来,经过净化设备净化后排到大气中,这就是局部排气净化系统,这种系统所需要的风量最小,效果好,能耗也少,是生产…

linux磁盘管理不用LVM,[linux] LVM磁盘管理(针对xfs和ext4不同文件系统)

简单来说就是:PV:是物理的磁盘分区VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘LV:也就是从VG中划分的逻辑分区如下图所示PV、VG、LV三者关系&…

cad监控图标_干货!多种不同环境的无线视频监控系统拓扑图

有人问,既然无线视频监控系统如此普及,是不是所有地方都能用到无线视频监控设备呢?例如在大街上、学校里,工厂中、写字楼内,建筑工地上、公园中、住宅小区里、江河岸边、港口码头、甚至是森林、戈壁滩等等。只要有需要…

axios 获取上传进度_PHP获取HTTP body内容的方法总结

有时候我们获取数据时需要根据Header中的格式来解析,比如上传一个json而不是一个文本。这里用到了 php输入|输出流 的概念。PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时…

python搭建selenium_自动化测试之路3-selenium3+python3环境搭建

1、首先安装火狐浏览器 有单独文章分享怎么安装 2、搭建python环境 安装python,安装的时候把path选好,就不用自己在配置,安装方法有单独文档分享 安装好以后cmd打开输入python查看是否配置好 3、安装pip 一般python会默认带一个,放…

keras实现简单lstm_深度学习(LSTM)在交通建模中的应用

上方点击蓝字关注?在简单了解了LSTM原理之后,本期我将以航班延误预测为例为大家介绍一下如何利用Python编程来构建LSTM模型。这里我们要用到一个高级的深度学习链接库——Keras,它以TensorFlow或者Theano作为后端引擎,只处理模型的建立、训练和预测等功…

commons-pool2-2.3 jar包_[漏洞复现]FastJson 1.2.61远程代码执行漏洞(From第三方jar包)

前言最近FastJson更新了黑名单,升级到了1.2.61版本,我尝试bypass其黑名单,在AutType打开的情况下成功绕过了黑名单防护.(目前暂未修复,官方即将更新)复现环境准备1.JDK 8U202.所需jar清单如下fastjson-1.2.61.jarcommons-configuration2-2.0.jarcommons-lang3-3.3.2.jarcommons…

王思聪吃热狗的c语言小程序,王思聪吃热狗火了,开发各种恶搞小程序!王校长:我不要面子的啊...

原标题:王思聪吃热狗火了,开发各种恶搞小程序!王校长:我不要面子的啊近日王校长上了不少次热搜,其中有一条就是王校长吃热狗火了,接下来就出现了各种各样的表情包,手机壳,素描等等。…

酷狗音乐linux版_让父母也爱上音乐 酷狗音乐大字版成中老年人新宠

当智能手机成为人们日常生活中必不可少的一部分,手机早已从单纯的通话设备变成了功能强大的“百宝箱”,听音乐、看视频、拍照上网早已不是什么新鲜事。然而在我们玩手机玩的不亦乐乎时,你有没有关注过爸妈对使用智能手机的接受度?…

二分法求近似根c语言程序,求一C++风格程序,用二分法求f(x)=0的根

满意答案vwamuoor8000推荐于 2018.04.24#include #include typedef double (*F)(double);/* brief 二分法求解函数* param[in] f 求解的函数* param[in] a, b 求解的区间端点* param[in] 吵盯e 精度* pre f(a)*f(b)<0且f在该闭区间上连续* return 方程液枝的解 */double sol…