python学习--随机数与模块、推导
1.random函数
rondom代表的就是随机数
import random
时间戳(此时此刻),种子
时间戳 1970年1月1日之后的秒,即:time.time()代码为:
print(time.time())
1、随机数
random.choice(range(1,33))随机取1-33之间的1个随机数,可能重复
import random print(random.choice(range(1,33)))
此时输出一个随机数
random.choices(range(1,33),k=6,weight=range(1,34))方法,可以产生6个,但有可能重复,
print(random.choices(range(1,33),k=9,weights=range(1,33)))
在这里weights代表这权重,所以数列中的六个数字有可能随机出现。
常用:shus=random.sample(range(1,30),6)随机取6个,不重复,得到一个列表,但是没有排序
print(random.sample(range(1,30),6))
============
在这些代码中 random后面接的choice choices sample 为python给我们的库,其中包含着随机数(数列),看自己的需要去引入。
2、模块:模块是把已经写好的代码看做是一个模块,导入到当前已经写好的代码中(它是函数功能的扩展,可以实现一项或者多项程序块)
(1)如何导入模块;
在python中一个程序要使用某个模块(例如、我要使用“math”文件作为我的模块),代码如下:
input(math) print(math).pi
(2)python模块-- sys模块
在python中 有些模块是不需要我们自己去定义的,python官方提供自带的模块,这些模块是伴随着python的安装而产生的,通常我们把这些模块叫做标准库模块 它是一类模块 而不是特指的某种模块
例如下面的代码
sys.version (获取Python解释程序的版本信息)sys.maxint (最大的Int值)
sys.path (返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值)
sys.platform (返回操作系统平台名称)
sys.stdout.write('please:')
val = sys.stdin.readline()[:-1]
注意:当我们print(sys.path)路径时。打印后是一个列表,可以向其中追加路径
reload()可以重新加载路径**模块互相调用不可以,会产生死锁
3、推导
推导式是Python中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括:1.列表推导式
2.字典推导式
3.集合推导式
(1)列表推导式
例一 整除三的数字列表
numbers=[] for x in range(0,100): if x % 3 == 0: numbers.append(x) print(numbers)
推导后 表达式为
nums=[x for x in range(100) if x%3==0] print(nums)(2)、字典推导式
字典推导和列表推导的使用方法是类似的,只不过中括号该改成大括号。直接举例说明:
例1:快速更换key和value
mcase = {'a': 10, 'b': 34}
mcase_frequency = {v: k for k, v in mcase.items()}
print(mcase_frequency)
(3)、集合推导式
它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。
============
推导式的原理图
推导式练习题
1、输入1--9的平方
nums=[x**2 for x in range(10)] print(nums)
2、有 x,y两个 x为1--5的偶数 y为1--5中的奇数 以(x,y)的形式输出x
T=[(x,y) for x in range(5) if x%2==0 for y in range(5) if y%2==1] print(T)
输出结果为
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]3、m=[[1,2,3],[4,5,6],[7,8,9]],(1)输出369(2)输出357
(1)
m=[[1,2,3],[4,5,6],[7,8,9]] print([x[2] for x in m])
(2)
m=[[1,2,3],[4,5,6],[7,8,9]] print([m[x][len(m)-1-x] for x in range(len(m)) ])