#17 random&json模块
前言
本节将讲解两个模块,一个是随机模块random,一个是字符串和字典之间的转换模块json,这两个模块使用率还是很高的,来认识一下!
一、random模块
random的官方文档:https://docs.python.org/3.5/library/random.html
这里只记录常用的方法:
In [3]: import random # 导入random模块 In [4]: random.random() # 随机生成0到1之间的浮点数,注意:包括0和1
Out[4]: 0.8952565343053827 In [5]: random.random() # 再生成一个
Out[5]: 0.6822327896680234
In [12]: import random In [13]: random.randint(1,10) # 随机生成一个1到10之间的整数,包括1和10
Out[13]: 5 In [14]: random.randint(1,10) # 再生成一个
Out[14]: 2
In [15]: import random In [17]: random.uniform(1.1,9.9) # 随机生成一个1.1到9.9之间的浮点数,区间可以是浮点数
Out[17]: 8.136851906531758 In [18]: random.uniform(1.1,9.9) # 再生成一个
Out[18]: 8.24769737404256
In [19]: import random
In [20]: random.choice('I am MinuteSheep') # 随机从字符串里面取出一个字符
Out[20]: 'u'
In [22]: random.choice('I am MinuteSheep') # 再取一个
Out[22]: 'I'
In [25]: random.choice('I am MinuteSheep') # 空格也算一个字符哦
Out[25]: ' '
In [26]: random.choice([1,2,4,6,9]) # 列表也行,字典不行
Out[26]: 2
In [28]: import random In [29]: random.randrange(1,15) # 随机生成一个1到15的整数,和randint()相同
Out[29]: 12 In [32]: random.randrange(1,15,2) # 随机生成一个1到15且间距为2的整数,相当于从[1,3,5,7,9,11,13,15]里面随机取出一个
Out[32]: 11 In [33]: random.randrange(1,15,2)
Out[33]: 3 In [34]: random.randrange(1,15,2)
Out[34]: 9 In [35]: random.randrange(1,15,2)
Out[35]: 1
In [39]: import random In [40]: num = [1,2,3,4,5,6,7] In [41]: random.shuffle(num) # 将列表里面的元素随机打乱 In [42]: num
Out[42]: [3, 7, 5, 1, 2, 6, 4] In [43]: random.shuffle(num) # 再打乱一次 In [44]: num
Out[44]: [1, 6, 4, 3, 5, 2, 7]
二、json模块
json官方文档:https://docs.python.org/3.5/library/json.html
大家可能知道一些常见的文件格式,比如:txt、pdf、exe、word、ppt、excel
、zip等等,在程序员这里,通常数据保存为json格式,尤其是作前端的程序员,json实质上是类似字典的字符串,比如:
'{"name":"MinuteSheep", "age":100, "gender": "male"}'
乍一看,是个字典;再一看,是个字符串!
如果想要提取出这段字符串的‘name’信息,想要对其进行字典的操作显然是不可能的,这时候就要用到json模块了:
In [60]: import json # 导入json模块
In [61]: info = '{"name":"MinuteSheep", "age":100, "gender": "male"}' # 这是一个字符串
In [62]: type(info) # 查看其类型,确认是字符串
Out[62]: str
In [63]: info_dict = json.loads(info) # 使用json.loads(str)将其转换为字典
In [64]: info_dict # 可以看到这是一个字典
Out[64]: {'age': 100, 'gender': 'male', 'name': 'MinuteSheep'}
In [65]: info_dict['name'] # 可以对其进行字典的操作
Out[65]: 'MinuteSheep'
# 特别注意:只适用于'{"key":"value"}'的字符串,不适用于"{'key':'value'}"的字符串
同样,对于字典,也可以将其转换为字符串形式:
In [68]: import json
In [69]: info = {'age': 100, 'gender': 'male', 'name': 'MinuteSheep'} # 初始化一个字典用作示例
In [70]: type(info) # 确认这是个字典
Out[70]: dict
In [71]: json.dumps(info) # 使用json.dumps(dict)将其转换为字符串
Out[71]: '{"age": 100, "gender": "male", "name": "MinuteSheep"}'
# 注意:这个方法适用于{"key":"value"}、{'key':'value'}、{'key':"value"}、{"key":'value'}的字典
json最常用的方法就是这两个,还有两个用的不多的方法:json.load(),json.dump(),这两个用于写入文件,具体使用请查看官方文档
#17 random&json模块的更多相关文章
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- Python(正则 Time datatime os sys random json pickle模块)
正则表达式: import re #导入模块名 p = re.compile(-]代表匹配0至9的任意一个数字, 所以这里的意思是对传进来的字符串进行匹配,如果这个字符串的开头第一个字符是数字,就代表 ...
- Python 自学基础(四)——time模块,random模块,sys模块,os模块,loggin模块,json模块,hashlib模块,configparser模块,pickle模块,正则
时间模块 import time print(time.time()) # 当前时间戳 # time.sleep(1) # 时间延迟1秒 print(time.clock()) # CPU执行时间 p ...
- python学习笔记(四)random 、json模块
一.模块简介 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 导入模块 import module #导入模块 f ...
- 模块之 time datetime random json pickle os sys hashlib collections
目录 1. time模块 1.1表示时间的几种方式: 1.2格式化字符串的时间格式 1.3不同格式时间的转换 2.datetim模块 3.random模块 4. json模块 4.1dumps.loa ...
- python基础四(json\os\sys\random\string模块、文件、函数)
一.文件的修改 文件修改的两种思路: 1.把文件内容拿出来,做修改后,清空原来文件的内容,然后把修改过的文件内容重新写进去. 步骤: 1.打开文件:f=open('file','a+') #必须用a ...
- 全局变量 urllib模块 json模块
1.vars() 查看一个.py文件中的全局变量 print(vars()) #重点 __name__': '__main__ '__file__': 'C:/Users/lenovo/Pychar ...
- Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数
python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...
- 函数和常用模块【day06】:json模块(十一)
本节内容 1.dumps序列化和loads反序列化 2.dump序列化和load反序列化 3.序列函数 1.dumps序列化和loads反序列化 dumps()序列化 1 2 3 4 5 6 7 8 ...
随机推荐
- python 05集合
1.集合 特性:可变的,不同元素组成,无序,集合中元素类型必须是不可变(数字,元组,字符串) 形式:s={1,"good",(2,3)} 方法:add(), clear()清空, ...
- python 根据字符串内数字排序
当我们使用python给一个由字符串组成的列表排序时,常常会排成这样 [‘10a’, ‘11b’, ‘1c’, ‘20d’, ‘21e’, ‘2f’] 这样的形式 ,然而我们想要 [ ‘1c’,‘2f ...
- Python3实战系列之五(获取印度售后数据项目)
问题:续接上一篇.说干咱就干呀,勤勤恳恳写程序呀! 目标:此篇我们试着把python程序打包成.exe程序.这样就可以在服务器上运行了.实现首篇计划列表功能模块的第二步: 2.将python程序转为 ...
- javascript的异步编程
同步与异步 介绍异步之前,回顾一下,所谓同步编程,就是计算机一行一行按顺序依次执行代码,当前代码任务耗时执行会阻塞后续代码的执行. 同步编程,即是一种典型的请求-响应模型,当请求调用一个函数或方法后, ...
- Integer 与int的区别
1.在的model的时候很多喜欢用int 类型 但是最好用Integer类型因为在查询的时候如果返回不到数据 Model就会报这个类是空的 所以应该尽量选用interger
- C#属性、自动属性、字段之间的区别和理解
.ctor是构造方法的意思,注意委托其实也是有构造方法的(不过是编译器自动创建的是私有的)貌似它的参数一个是委托引用的方法所属的对象(或Type对象),一个是该方法的指针: 1.属性的概念其实和字段是 ...
- IntelliJ IDEA的破解方法
一.下载并安装, IntelliJ IDEA的官网:https://www.jetbrains.com 下载 下载 下载 二.破解. 百度下载一个 JetbrainsCrack-2.7-release ...
- 通过HPS控制FPGA的GPIO
1.学习目的 本例程主要是让 SoC FPGA 初学者了解 HPS/ARM 如何跟 FPGA 交互.“My First HPS-FPGA”工程演示了实现方法的细节.这个工程包括 Quartus II ...
- JMeter 教程汇总链接
http://www.360doc.com/content/14/0318/23/16361380_361732630.shtml 可以作为入门系列教程. 尽管网页也给出了视频链接,但是我不建议看视频 ...
- NET Core微服务之路:SkyWalking+SkyApm-dotnet分布式链路追踪系统的分享
对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操作查看日志,那么,随着业务越来越复杂,企业应用也进入了分布式服务化的 ...