小白学习python的第二天。
首先我们先看代码:
# _*_ coding : utf-8 _*_
"""
Hello World
author: anger
date;2022-10-9
"""
1.import random
2.if __name__=='__main__':
3. i = 0
4. rang_list = []
5. while i < 6 :
6. rand_num = random.randint(0,9)
7. if rand_num not in rang_list:
8. rang_list.append(rand_num)
9. i += 1
10. print(rang_list)
为了之后的理解我先不写注释了,根据以上代码我们可以看到对于刚刚走出学校的朋友来说好多串不上,现在我们就代码一行一行的解释。
第一行:第一行出现了两个词 import 和 random,这里存在两个知识点,首先,import的意思是引入一个库,至于库则是 random这个库,随之而来的呢,就是库的定义,什么是库:通俗来讲就是把一些常用的,大家都知道的代码,比如时间,等等,的代码放在一起,为什么呢?因为这些都是约定俗成的,咱们想象一下,你写一个关于工作的代码,第一天第二天,每天你都需要记录时间,那么每一天的代码都打汝时间吗?那不是太麻烦了吗?这时候有位大聪明就想到了将时间这个东西放在一起,用的时候拿出来,这个就是封装,封装好的代码就叫库。
那么库都有什么呢,有很多这里我们举例说明。
"os --- 多种操作系统接口",
"os.path --- 常用路径操作",
"re --- 正则表达式操作",
"datetime --- 基本日期和时间类型",
"heapq --- 堆队列算法",
"enum --- 对枚举的支持",
"math --- 数学函数",
"random --- 生成伪随机数",
"itertools --- 为高效循环而创建迭代器的函数",
"functools --- 高阶函数和可调用对象上的操作",
"shutil --- 高阶文件操作",
"sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块",
"csv --- CSV 文件读写",
"hashlib --- 安全哈希与消息摘要",
"hmac --- 基于密钥的消息验证",
"time --- 时间的访问和转换",
"argparse --- 命令行选项、参数和子命令解析器",
"logging --- Python 的日志记录工具",
"threading --- 基于线程的并行",
"multiprocessing --- 基于进程的并行",
"socket --- 底层网络接口",
"email --- 电子邮件与 MIME 处理包",
"json --- JSON 编码和解码器",
"urllib --- URL 处理模块",
"http --- HTTP 模块"
这里我们暂时举例25个。
第二行:首先我们就看到了一个循环语句 if 这个_ _name_ _和之后的很明显这是一个方法,而且这是为了好看的一个魔术方法,有不明白的可以搜搜。
第三行:这下我们就来到了最重要的函数体,定义一个变量 i。
第四行:我们看到前面懵了,看到后面的标志哎明白了,这是一个数组,定义一个数组【】对吧,感觉是不是回到了教室。
第五行:循环语句又来了,这次是while 他是什么意思呢?这是一个判断语句,如果 i《4的话就继续执行,那么不等于呢,当然就不执行拉。
第六行:重点来了,这句话是不是都不会了,其实它就是定义一个num的属性。而num又不高大上,咋办,在前面加上前缀然后用_连接,说明是在这个类里用的,别的也不冲突,而后面的是什么呢,他是赋值语句吗?哎不是,这就要用到我们库的定义了,第一行中我们调用了random库这个库是干什么的呢?我们来看。
一、random模块简介
Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择 列表序列中的一个元素,打乱一组数据等。
二、random模块重要函数
1 )、random() 返回0<=n<1之间的随机实数n;
2 )、choice(seq) 从序列seq中返回随机的元素;
3 )、getrandbits(n) 以长整型形式返回n个随机位;
4 )、shuffle(seq[, random]) 原地指定seq序列;
5 )、sample(seq, n) 从序列seq中选择n个随机且独立的元素;
三、random模块方法说明
- random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。
- random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。
- random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。
- random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
- random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。
- random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。
了解吧,干货满满。
第七行:当然也是判断了,如果rand_num 不在这个数组里就执行下一句话。
第八行: 这句话是什么里。我们看到了 . 这就标志这这是一个方法,首先我们来了解一下这句话的意思,它的意思是在列表的末尾追加元素,而这又涉及到一个知识点了。如何在列表的加入元素。
python 列表list中元素添加的四种方(append,extend,insert,“+”号)
1. append() 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型 。
2.extend() 将一个列表中每个元素分别添加到另一个列表中,只接受一个参数, 且该参数只能为列表list形式。
3. insert(index,value) 将一个元素插入到列表中,有参数有两个,第一个参数index是索引点,即插入的位置,第二个参数value是插入的元素。其中,index的起始位置从0开始。
4. “+”号,将两个列表list相加连接起来,会返回给一个新的list对象。
第九行:循环加一。
最后一行当然是输出啦。
最后我们贴上输出的两次结果。
[3, 8, 1, 0, 2, 6]
Process finished with exit code 0
[2, 9, 0, 4, 5, 6]
Process finished with exit code 0