所谓七夕

前几天的文章这个七夕节,用Python为女友绘制一张爱心照片墙吧!收获了最近以来最高的浏览量,没枉费我熬到夜里3点赶出来的热点文章。有付出就总会有所回报,只是看这天来的早晚而已。七夕一个人看这网易的数据分析直播体验课程,偶尔刷刷朋友圈,看看各种秀…有人说,经得起寂寞,耐得住孤独,能安心踏实去做一件事,才有有所建树。努力吧更为朋友们!

常用模块

面对现在各种的python3天入门、21天速成,等等的教程与素材,让很多人对python的基础知识,掌握的很薄弱。包括我身边的朋友,已经开始Django、Flask的web开发了,甚至对文件遍历还不慎了解。昨天在做照片墙的时候,用到了random模块,大家可能觉得,这个模块有啥说的,无非就是随机数么,但随机的方式却有很多,今天就跟大家总结下random这个常用的模块

random函数总结

random作为python自带的模块,无需下载即可直接使用。import random导入该模块。

  • random

random.random()会生成一个[0,1)之间的随机数,如:0.21639729286525555。

  • randint

random.randint(start,end)随机生成一个范围内的整数。
random.randint(1,100) >>> 62

  • uniform

random.uniform(start,end)随机生成一个范围内的浮点数,起始与终止区间可以为小数
random.uniform(3.5,9.6) >>> 8.233366765359236

可迭代对象

python中万物皆对象,那么什么属于可迭代的对象呢?我们来举几个例子

list_a = [1, 2, 3]

dict_b = {“a”:1,”b”:2}

string_c = “abc”

char_d = ‘A’

int_e = 123

float_f =10.5

boolen_g = True

对于前两个,大家肯定知道是可迭代对象,但从第三个开始有些人就迷了…尤其char_d = 'A'这个,很多人都会觉得是不可迭代的,但其实不然,python中没有所谓的char和string的区别,只有字符串所以string_c和char_d都是可迭代的对象,如何验证?

from collections.abc import Iterable

char_c = 'A'
print(isinstance(char_c, Iterable))
>>> True

这里看到一点曾记否,我们引入Iterable使用的是from collections import Iterable什么时候出来了个abc?如果我们还是用老的方式导入,会给出提示:

DeprecationWarning: Using or importing the ABCs from ‘collections’ instead of from ‘collections.abc’ is deprecated, and in 3.8 it will stop working from collections import Iterable

所以有时候拥抱变化,也很重要!那么为什么突然插出一个Iterable的讲解呢?下面几个方法会用到…

  • choice & sample

刚才介绍可迭代对象就是为了讲解这两个random中使用最为普遍的函数。choice和sample之所以一起讲,是为了将二者对比记忆。

不管是random.choice还是random.sample,他们跟的必须是可迭代的对象。

choice我们可以理解为单选,而sample我们可以理解为自定义多选。举个栗子:

random.choice('abc')
>>> 'b'
random.choice([1,2,3,4,5])
>>> 2
random.sample('abc',2)
>>> ['b', 'c']
random.sample([1,2,3,4,5],3)
>>> [3, 5, 4]
# 但我们不可以这样:
random.choice(5)
random.sample(10,1)

choice不容易出错,但sample大家需要注意:

  1. sample既然是自定义多选,那么我们首先需要定义我们选择几个数值

  2. sample在选择是,自定义的数值,不能大于可迭代对象的最大长度

  3. sample选择后,返回列表类型,且列表为随机数。

  • shuffle

random.shuffle()这里需要注意,他只能针对list类型的数据,进行重新排序,这点一定要牢记,避免报错

list_a = ['a','b','c','d','e']
random.shuffle(list_a)
print(list_a)
>>> ['b', 'e', 'c', 'a', 'd']

The End

OK,今天的内容就到这里,如果觉得内容对你有所帮助,欢迎点击文章右下角的“在看”。

期待你关注我的公众号清风Python,如果觉得不错,希望能动动手指转发给你身边的朋友们。

作者:清风Python

关于Python的随机数模块,你必须要掌握!的更多相关文章

  1. Python的随机数模块

    random模块中几个随机函数用法. 引入random模块: import random 1.random.random() 此函数用于生成一个0到1的随机浮点数:0 <= n < 1.0 ...

  2. [ Python入门教程 ] Python生成随机数模块(random)使用方法

    1.使用randint(a,b)生成指定范围内的随机整数.randint(a,b)表示从序列range([a,b])中获取一个随机数,包括b. >>> random.randint( ...

  3. 【转载】python 模块 - random生成随机数模块

    随机数种子 要每次产生随机数相同就要设置种子,相同种子数的Random对象,相同次数生成的随机数字是完全相同的: random.seed(1) 这样random.randint(0,6, (4,5)) ...

  4. Python常用模块-随机数模块(random)

    Python常用模块-随机数模块(random) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用方法举例 #!/usr/bin/env python #_*_coding: ...

  5. Python中random模块生成随机数详解

    Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...

  6. python模块 | 随机数模块—random模块

    python随机数模块 random - 生成伪随机数,该模块实现了各种分布的伪随机数生成器. 对于整数,从范围中有统一的选择. 对于序列,存在随机元素的统一选择.用于生成列表的随机排列的函数.以及用 ...

  7. Python档案袋( 时间 和 随机数 模块 )

    时间模块 #导入必要模块 import time #获取时间戳 print(time.time()) #输出:1547651016.03502 #格式化时间元组 # 参数可传递自定义的时间戳,如:ti ...

  8. python模块-random随机数模块

    导入随机数模块import random 1.random.random() 生成[0,1)之间的随机小数 2.random.randint(a,b) 生成[a,b]之间的随机整数 3.random. ...

  9. Python 基础(十六)--随机数模块

    random随机数模块 random.randint(1,10):随机1-10包括10 random.randrange(1,10,2):在1.3.5.7.9中随机,类似切片,不包括10 random ...

随机推荐

  1. NOIP模拟27

    两个机房又和在一起考试 开场看了看T1,感觉挺水的,过. T2,这个式子有点奇怪,暂时没什么思路,过 T3,好像保留最后几位换个根处理一下就行了,过,先去打T1 于是T1大概打了0.5h,连暴力带正解 ...

  2. 【java基础】程序员你真的理解反射机制吗?

    目录 前言 1.反射的概述 2.正式使用反射之前很有必要了解的Class类 3.反射的使用 前言 很多讲解反射的博客文章并没有详细讲解Class类,~当然包括之前的我也一样~,这样的文章只会让反射徒有 ...

  3. javaScript中this到底指向谁

    1.前言 在JavaScript中,this的指向一直是大多数初学者的易错点,总是搞不清楚this到底指向谁,而在求职面试中,this的指向问题往往又是高频考点.本篇博文就来总结一下在JavaScri ...

  4. 磁盘冗余阵列之RAID5的配置

    1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢 ...

  5. Chrome DevTools调试微信X5内核页面

    起因:公司最近在做一个双十一的H5宣传页面,大概需求就是模拟微信视频来电,接通视频后弹出某某明星的视频巴拉巴拉@#%!!!~.看到需求我的第一反应是So easy,正当我码代码码的开心的时候,难题他来 ...

  6. PHP更新用户微信信息的方法

    PHP更新用户微信信息的方法 大家都知道 授权登录一次 获取后 再登录就会提示已经授权登录 就没办法重新获得用户信息了 这个时候根据openid来获取了请求user/info这个获取ps:必须关注过公 ...

  7. jquery 路径动画贝塞尔动画

    jquery 路径动画贝塞尔动画 <pre><!DOCTYPE html><!DOCTYPE html><html> <head> < ...

  8. C语言:互质

    今天遇到一道奇怪的程序题,和平常的不同.同样都是互质,但是一般的题目都是判断两个数字是否互质,但这道题则是给定一个数字n,要求输出所有小于等于n的与n互质的数,题目已经在下面给出: 质数与互质概念不是 ...

  9. 『嗨威说』算法设计与分析 - PTA 程序存储问题 / 删数问题 / 最优合并问题(第四章上机实践报告)

    本文索引目录: 一.PTA实验报告题1 : 程序存储问题 1.1 实践题目 1.2 问题描述 1.3 算法描述 1.4 算法时间及空间复杂度分析 二.PTA实验报告题2 : 删数问题 2.1 实践题目 ...

  10. c#Func委托

    public delegate TResult Func<in T, out TResult>(T arg); 参数类型 T:此委托方法的参数类型 TResult:此委托方法的返回值类型 ...