Python
文章平均质量分 66
von Libniz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python装饰器的使用
目录1 装饰器1.2 函数装饰器1.2 类装饰器1.3 使用多个装饰器1.4 案例1.4.1 案例1-发表评论1.4.2 案例2-记录执行时间1.4.3 案例3-参数合理性检测1 装饰器1.2 函数装饰器所谓的装饰器,其实是通过装饰器函数,来修改原函数的一些功能,而原函数本身并不进行修改。下面的示例中,使用装饰器在原函数前进行打印语句。import functoolsdef my_decorator(func): @functools.wraps(func) # 将原函数func的元原创 2022-03-19 10:25:21 · 1553 阅读 · 0 评论 -
pytorch基操01-常用Tensor创建方法汇总
这里写目录标题1.Tensor的创建1.1 使用torch.Tensor1.2 使用torch.eye1.3 全0或全1的tensor1.4 根据分布随机生成tensor1.4.1 torch.rand1.4.2 torch.randn1.4.3 torch.normal1.4.4 torch.Tensor.uniform_1.5 生成序列tensor1.5.1 torch.arange(a,b,step)1.5.2 torch.linspace(a,b,num)1.5.3 torch.randperm(n原创 2022-03-04 11:59:36 · 2389 阅读 · 0 评论 -
训练集测试集手动分割
手动实现分割通过按比例取打乱索引的方式,分割训练集和测试集,借口仿照sklearn。import numpy as npdef train_test_split(X,y,test_ratio=0.2,seed=None): """按test_size的比例分割训练集测试集""" assert X.shape[0]==y.shape[0],\ 'the shape of X must equal to y' assert 0.0<=test_ratio&l原创 2022-01-31 17:09:47 · 1063 阅读 · 0 评论 -
Numpy学习—np.random.randn()、np.random.rand()和np.random.randint()
在机器学习和神经网络中,常常会利用Numpy库中的随机函数来生产随机数,比如随机初始化神经网络中的参数权重W(备注:W是不能全部初始化为0的,这样会引起symmetry breaking problem,这样隐藏层设置多个神经元就没有任何意义了)。 在Numpy库中,常用使用np.random.rand()、np.random.randn()和np.random.randint()随机函数。这几个函数...转载 2022-01-31 16:12:36 · 990 阅读 · 0 评论 -
python多任务04-进程间不共享全局变量
目录1 访问全局变量2 打印g_list地址2 打印方法地址1 访问全局变量既然我们可以通过多进程的方式同时执行多个方法,那如果每个方法都对全局变量进行了访问(比如读写操作),那进程访问到的全局变量是同一个吗?答案是:不是同一个全局变量。下面通过一个例子来具体解释:在此我们定义一个全局列表g_list=[ ],用来存储数据。再定义两个方法分别对g_list进行多次的读写操作,每次间隔0.2秒。下面我们将要创建两个进程来同时执行这两个方法,如果他们共享全局列表g_list,那随着读写操作的交替进行,每原创 2021-12-21 14:04:09 · 1358 阅读 · 0 评论 -
python多任务02-主进程与子进程的id与守护主进程
目录1 获取进程id2 主进程会等待子进程结束3 守护主进程3.1 守护主进程3.2 销毁子进程1 获取进程id当我们运行py文件时,该程序的运行就是一个进程 ,如果在该进程中又创建了其他进程,那么该进程就是主进程,创建的其他进程就是子进程。下面我们通过通过os库中的方法,打印当前进程和父进程的id来验证这一关系。os.getpid()获取当前进程idos.getppid()获取父进程id'''获取进程编号,用于验证子进程是否是由主进程创建出来的'''import原创 2021-12-21 13:26:12 · 2211 阅读 · 0 评论 -
python多任务03-进程执行带有参数的任务
目录1 使用位置参数传参2 使用关键字参数传参3 使用位置参数与关键字参数混合1 使用位置参数传参我们可以通过位置参数的方式给进程传参,只需在创建进程时传入args参数。如下:import multiprocessingdef show_info(name,age): print(name,age)if __name__=='__main__': #以位置参数的方式传参 show_process_1=multiprocessing.Process(target=show原创 2021-12-21 13:46:33 · 832 阅读 · 0 评论 -
python多任务01-多进程的使用
目录1 多任务1.1 同时执行多个方法1.2 多任务的概念1.3 多任务的执行方式2 进程2.1 进程的介绍2.2 进程的概念2.3 进程效果图3 python多进程3.1 多进程的使用3.2 代码编写1 多任务1.1 同时执行多个方法利用现学知识能够让两个函数或者方法同时执行吗?不能,因为之前所写的程序都是单任务的,也就是说一个函数或者方法执行完成另外一个函数或者方法才能执行,要想实现这种操作就需要使用多任务。多任务的最大好处是充分利用CPU资源,提高程序的执行效率。1.2 多任务的概念多任原创 2021-12-21 00:13:53 · 474 阅读 · 0 评论 -
KMP算法多图详解(python)
目录1.1 串1.2 Brute Force1.3 KMP算法1.4 next数组构造1.1 串KMP算法主要是用来解决串的匹配问题,为此,在学习KMP之前我们先来了解一下串的相关知识。串是由若干个字符组成的有限序列,也就是我们熟悉的字符串。此外,字符串中还有前后缀,真前后缀的概念,对于字符串ABCD,它的前后缀如下表所示。显然真前后缀与前后缀的区别在于不能包含字符串自身。1.2 Brute Force字符串的匹配问题,也就是查找一个字符串(称为模式串pattern)在另一个字符串(称为文本原创 2021-08-04 09:00:08 · 2872 阅读 · 3 评论 -
python实现跳表SkipList
跳表跳表,又叫做跳跃表、跳跃列表,在有序链表的基础上增加了“跳跃”的功能,由William Pugh于1990年发布,设计的初衷是为了取代平衡树(比如红黑树)。Redis、LevelDB 都是著名的 Key-Value 数据库,而Redis中 的 SortedSet、LevelDB 中的 MemTable 都用到了跳表。对比平衡树,跳表的实现和维护会更加简单,跳表的搜索、删除、添加的平均时间复杂度是 O(logn)。跳表的结构如图所示:可以发现,对于一个节点Node,其含有多个next指针,不同原创 2021-07-24 22:39:45 · 1623 阅读 · 5 评论 -
python实现布隆过滤器
布隆过滤器Bloom Filter布隆过滤器于1970年由布隆提出,它是一个空间效率高的概率型数据结构,可以用来告诉你:一个元素一定不存在或者可能存在。优点:空间效率和查询时间都远远超过一般的算法(使用哈希表将占用大量的内存空间)。缺点:有一定的误判率、删除困难。它实质上是一个很长的二进制向量和一系列随机映射函数(Hash函数)组成,常用于网页黑名单系统、垃圾邮件过滤系统、爬虫的网址判重系统、解决缓存穿透问题。原理布隆过滤器中,二进制数组的长度和哈希函数的个数由问题的数量规模、要求的错误率决定。原创 2021-07-20 23:44:14 · 2891 阅读 · 5 评论 -
基于rank、path halving实现并查集(python)
目录1 并查集1.1 常用优化方法1.2 代码实现1 并查集并查集也叫作不相交集合(Disjoint Set),可以高效实现元素间集合关系的查找与合并。查找(Find):查找元素所在的集合(这里的集合并不是特指Set这种数据结构,是指广义的数据集合)。合并(Union):将两个元素所在的集合合并为一个集合。例如上图中的0、1、2、3属于同一个集合,4、6一个集合,以及7、8、9也组成了一个集合。1.1 常用优化方法Size:在union合并两个子集时,通过size(树中元素的数量)原创 2021-07-03 16:05:58 · 551 阅读 · 1 评论 -
拓扑排序的实现(python)
目录1 AOV网(Activity On Vertex Network)2 拓扑排序(Topological Sort)2.1 实现思路2.2 代码实现1 AOV网(Activity On Vertex Network)一项大的工程常被分为多个小的子工程,子工程之间可能存在一定的先后顺序,即某些子工程必须在其他的一些子工程完成后才能开始。在现代化管理中,人们常用有向图来描述和分析一项工程的计划和实施过程,子工程被称为活动(Activity)。以顶点表示活动、有向边表示活动之间的先后关系,这样原创 2021-07-02 16:17:04 · 2903 阅读 · 0 评论 -
图的非递归深搜遍历图示与代码(python)
1 非递归深搜图的深搜递归形式非常简单,相信大家都会,在此就来实现一下非递归版本的深搜。1.1 图示对于以上的图,从1开始的深搜遍历结果应该是1 2 3 4 0。那么如何通过非递归形式得到该结果呢,下面以该图为例进行演示:首先我们准备要一个栈来模拟递归的过程,以及一个集合来存储已经访问的节点,以免因为图中的环结构让子节点再次进入父节点访问。我们首先处理节点1,这里将入栈操作视为对节点的访问,于是我们将节点1入栈并访问,再加入已访问集合。从这开始,我们就要对栈中的元素进行不断地原创 2021-07-01 22:29:40 · 1125 阅读 · 1 评论 -
使用邻接表实现数据结构图(python)
目录1 图1.1 有向图1.2 完全图1.3 稀疏、稠密图1.4 连通图1.5 图的实现方案1.5.1 邻接矩阵(Adjacency Matrix)1.5.2 邻接表(Adjacency List)1.6 代码实现1.6.1 图的基础接口1.6.2 顶点定义1.6.3 边的定义1.6.4 整体代码1 图图由顶点(vertex)和边(edge)组成,通常表示为 G = (V, E)。G表示一个图,V是顶点集,E是边集,顶点集V有穷且非空,任意两个顶点之间都可以用边来表示它们之间的关原创 2021-06-29 22:11:01 · 7144 阅读 · 3 评论 -
排序算法(五)快速排序的实现(python)
目录1 快速排序1.1 执行流程1.2 轴点构造1.3 代码实现1.4 时间复杂度1 快速排序1960年由查尔斯·安东尼·理查德·霍尔(Charles Antony Richard Hoare,缩写为C. A. R. Hoare)提出。简称为东尼·霍尔(Tony Hoare)。1.1 执行流程(1)从序列中选择一个轴点元素(pivot)。我们先假设每次选择 0 位置的元素为轴点元素。(2)利用 pivot 将序列分割成 2 个子序列。将小于 pivot 的元素放在pivot前面原创 2021-06-23 15:46:10 · 367 阅读 · 1 评论 -
torch.nn.Embedding的使用
原文:https://blog.youkuaiyun.com/foneone/article/details/103881687 官网:https://pytorch.org/docs/stable/nn.html#embedding torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=N转载 2021-06-22 20:18:05 · 513 阅读 · 0 评论 -
排序算法(四)归并排序的实现(python)
1 归并排序1945年由约翰·冯·诺伊曼(John von Neumann)首次提出。1.1 执行流程(1) 不断地将当前序列平均分割成2个子序列,直到不能再分割(序列中只剩1个元素)。(2)不断地将2个子序列合并成一个有序序列,直到最终只剩下1个有序序列。1.2 分割divide的实现归并排序的思想是,如果要对一个数组进行排序,则先将数组分割为两部分,将两部分数组排序完后,将他们合并在一起成为一个新的有序数组,而对分割形成的数组,依旧采用这个思路进行排序,显然这是一个递归的过程。而归并原创 2021-06-11 23:41:44 · 661 阅读 · 3 评论 -
排序算法(三)插入排序与其优化(python)
目录1 插入排序1.1 执行流程1.2 逆序对1.3 代码实现1.4 优化11.5 优化21.5.1 普通二分查找1.5.2 二分查找插入位置1.5.3 使用二分的插入排序1.6 时间空间复杂度1 插入排序插入排序与我们平时打扑克牌非常相似,将新摸到的牌插入到已有的牌中合适的位置,而已有的牌往往是有序的。1.1 执行流程(1)在执行过程中,插入排序会将序列分为2部分,头部是已经排好序的,尾部是待排序的。(2)从头开始扫描每一个元素,每当扫描到一个元素,就将它插入到头部合原创 2021-06-09 16:03:55 · 993 阅读 · 2 评论 -
排序算法(二)选择排序与其改进之堆排序(python)
目录1 选择排序1.1 执行流程2 堆排序2.1 执行流程2.2 批量建堆2.2.1 找到最后一个非叶子节点2.2.2 代码实现2.3 下滤操作2.4 完成堆排序2.5 测试性能与准确性2.6 时间空间复杂度1 选择排序1.1 执行流程选择排序和冒泡排序非常相似,都是每次找出未排序元素中最大的那个,将其放置到末尾(升序),然后进行n-1一次。但和冒泡排序不同的是,他不需要进行大量的交换操作,只需先找到最大的元素,然后与末尾元素交换位置即可。代码思路也很简单,通过整形变量记录最原创 2021-06-07 00:07:26 · 902 阅读 · 4 评论 -
排序算法(一)冒泡排序与两种改进(python)
目录1 冒泡排序1.1 执行流程1.2 代码思路1.3 测试正确性1.4 冒泡排序改进11.4 冒泡排序改进21.4.1 代码实现细节1.5 三种排序的比较1.6 时间空间复杂度1 冒泡排序1.1 执行流程冒泡排序也叫做起泡排序。以升序为例,其执行流程为:从头开始比较每一对相邻元素,如果第1个比第2个大,就交换它们的位置,执行完一轮之后(遍历完0到n-1的元素),最后一个元素就是整个数组中最大的元素;之后再对0至n-2的元素进行相同操作…直到对最后两个元素作比较(索引为0与1的元原创 2021-06-04 23:10:25 · 908 阅读 · 2 评论 -
深度学习tensorflow与pytorch环境安装(Win10)
1 anaconda 下载去往官网下载anaconda,速度非常快。https://www.anaconda.com/products/individual#download-section2 安装pycharm去往Jetbrains官网下载pycharm。https://www.jetbrains.com/pycharm/download/#section=windows3 安装pytorch环境3.1修改下载目录为清华源按图中目录打开.condarc文件。全选已有内容,将以下内原创 2021-06-02 10:13:25 · 420 阅读 · 1 评论 -
Python学习笔记(十九):模块与包的使用
目录1 模块1.1 导⼊模块的⽅式1.2 制作模块1.3 注意事项1.4 模块定位顺序1.5 __all__列表2 包2.1 制作包2.2 导⼊包2.3 通过__all__列表管理导入的模块1 模块Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变量,模块⾥也能包含可执⾏的代码。1.1 导⼊模块的⽅式import 模块名from 模块名 import 功能名from原创 2021-05-30 19:59:33 · 792 阅读 · 2 评论 -
Python学习笔记(十八):异常处理
目录1 异常概念2 异常的写法3 捕获指定异常4 捕获多个指定异常4 打印异常信息5 捕获所有异常5 else语句6 finally语句7 自定义异常1 异常概念当检测到⼀个错误时,解释器就⽆法继续执⾏了,反⽽出现了⼀些错误的提示,这就是所谓的"异常"。例如:以 r ⽅式打开⼀个不存在的⽂件。f=open('test.txt','r')Traceback (most recent call last): File "E:01异常测试.py", line 4, in <原创 2021-05-30 16:07:07 · 512 阅读 · 7 评论 -
Python学习笔记(十七):多态、类属性与静态方法
1 多态多态指的是⼀类事物有多种形态,(⼀个抽象类有多个⼦类,因⽽多态的概念依赖于继承)。定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果。好处:调⽤灵活,有了多态,更容易编写出通⽤的代码,做出通⽤的编程,以适应需求的不断变化!'''通过对父类形参传入子类对象实参来实现多态'''class Dog(): def bark(self): print("I\' a dog !")class BlackDog(原创 2021-05-30 12:41:33 · 622 阅读 · 0 评论 -
Python学习笔记(十六):类的继承
目录1 继承的格式2 单继承3 多继承4 重写父类方法5 打印继承关系6 调用父类方法7 私有属性与方法1 继承的格式类的继承格式如下,括号中的为父类名。class 类名(父类名): 代码2 单继承下面我们让Man继承自Master类,并调用继承的showSkill方法。class Master(): def __init__(self): self.skill='炒菜' def showSkill(self): print(原创 2021-05-29 20:34:41 · 764 阅读 · 7 评论 -
Python学习笔记(十六):类的定义与常用方法
1 类的定义类定义的语法如下所示。class 类名(): 代码 ......我们可以创建一个洗衣机类Washer,并为他添加一个方法。class Washer(): def wash(self): print('我会洗⾐服')其中,self表示当前正在调用的对象,python中所有的属性都需要通过self.属性的方式调用,以免与同名的形参混淆。2 创建对象对象名 = 类名()其中类名中也可以带参数,但必须与类定义中重写的__init__方法参数相同,在此可以暂时简单的认原创 2021-05-29 20:18:26 · 620 阅读 · 0 评论 -
Python学习笔记(十五):文件操作
这里写目录标题1 文件操作1.1 文件操作的步骤1.2 打开⽂件模式1.2.1 只读模式r1.2.2 写入模式w1.2.3 追加模式a1.3 读取文件内容1.3.1 read方法1.3.2 getline方法1.3.3 getlines方法1.3.4 seek()方法1.4 文件备份1.5 文件和文件夹操作1.5.1 文件重命名1.5.2 删除⽂件1.5.3 创建⽂件夹1.5.4 删除⽂件夹1.5.5 获取当前⽬录1.5.6 改变操作⽬录1.5.7 获取目录原创 2021-05-28 23:19:55 · 1134 阅读 · 1 评论 -
Python学习笔记(十四):高阶函数
高阶函数把函数作为参数传⼊,这样的函数称为⾼阶函数,⾼阶函数是函数式编程的体现。高阶函数的使用#此处的f是函数作为参数传入def add_num_new(f,a,b): return f(a)+f(b)print(add_num_new(round,1.4,-1.5))print(add_num_new(abs,1.4,-1.5))-12.9这里的round函数是对小数进行四舍五入。内置⾼阶函数map()map(func, lst),将传⼊的函数变量func作⽤到lst原创 2021-05-28 16:14:44 · 198 阅读 · 0 评论 -
Python学习笔记(十三):Lambda表达式
应⽤场景如果⼀个函数有⼀个返回值,并且只有⼀句代码,可以使⽤ lambda简化。lambda语法lambda 参数:返回值lambda其实是一个匿名函数,没有具体名字,可以用一个函数名对它进行接收,如果直接打印函数名,返回的是函数的地址。f=lambda x : 2*xprint(f)print(f(3))<function <lambda> at 0x000001AA83321F28>6lambda的参数形式⽆参数fn1 = lambda: 100p原创 2021-05-28 15:30:14 · 722 阅读 · 0 评论 -
Python学习笔记(十二):函数的使用与不同的参数类型
1 函数的创建python中的函数不需要指定返回值类型,也不需要指定参数类型,直接就可以在方法体中选择是否有返回值,自由得让人有点不适应。示例def function(a,b): return a+b2 函数的说明文档在函数名的下一行用3个”写上注释,就可以成为函数的说明文档,可用help方法查看。def add(a,b,c): """ 求和函数 :param a:参数1 :param b: 参数2 :param c: 参数3 :re原创 2021-05-04 19:24:23 · 544 阅读 · 2 评论 -
Python学习笔记(十一):推导式的使用
1列表推导式⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表。列表推导式⼜叫列表⽣成式。看这个描述一开始着实难懂,但实际上只是用了for循环来创建列表,只不过使用推导式比for循环更加简洁,速度也更快一点。1.1 一般的推导式假设我们需要构造一个存储数字0到9的列表,我们可以通过while循环或者for循环来实现,只不过代码量多一些,如下。while循环实现# 1. 准备⼀个空列表list1 = []# 2. 书写循环,依次追加数字到空列表list1中i = 0while i &l原创 2021-05-04 18:55:51 · 227 阅读 · 0 评论 -
Python学习笔记(十):公共的操作
目录1运算符1.1 加法运算符1.2 乘法运算符1.3 in 和not in2 公共⽅法2.1 del()2.2 range(start,end,step)2.3 enumerate()3 容器类型转换1运算符预算符作用支持的容器内容+合并字符串、列表、元组*复制字符串、列表、元组in元素是否存在字符串、列表、元组、字典not in元素是否不存在字符串、列表、元组、字典1.1 加法运算符str1="ab"str2="cd"print(s原创 2021-04-27 18:59:42 · 392 阅读 · 1 评论 -
Python学习笔记(九):set集合的常用方法
1 集合setSet集合底层可以通过红黑树与哈希表实现,和字典dict的区别就是字典中每个元素存储了key和value,而集合则只存储了value。python中的set应该也是用的哈希表,我本来想通过pycharm看看set的源码,结果一看是这样的。具体内容居然是pass,看了看资料才知道,原来这是pycharm自行创建的假的set类,正真的set类使用c语言写的,这么做也是为了较好的代码提示,更容易理解。但还是有一些标准库是通过python实现的,如os,这些代码通过追踪就能看到源码了。而字典di原创 2021-04-25 17:11:49 · 786 阅读 · 3 评论 -
Python学习笔记(八):dict字典中的常用方法
目录1 字典1.1 字典的创建1.1.1创建有初始值的字典1.1.2创建空字典1.2 增加修改字典1.2.1 增加键值对1.2.2 修改键值对1.3 删除键值对或者整个字典1.3.1 删除键值对1.3.2 删除整个字典1.3.3 清空字典1.4 修改键值对1.5 获取字典中的元素1.5.1 通过key获取value方法一:在索引中写key方法二:通过get方法1.5.2 获取字典中所有的key1.5.2 获取字典中所有的value1.5.2 获取字典中所有的键值对1.6 字典的遍历1.6.1 key的遍历1转载 2021-04-23 17:42:49 · 548 阅读 · 0 评论 -
Python学习笔记(七):元组的使用方法
1 元组元组tuple和列表list很像,都是存储一组数据,只不过元组使用( ),列表使用[ ]。刚听到元组这个词时让我想起了数据库里的元组,感觉非常相似,都是存放一系列数据,说白了还是数组。列表和元组不同的是,列表支持修改,而元组不支持修改,所以把元组当成不能修改的列表就好了。1.1 元组的定义元组特点:定义元组使⽤⼩括号,且逗号隔开各个数据,数据可以是不同的数据类型。但一般放置同一类型的数据。存放多个数据的元组# 定义有多个元素的元组tuple1=(1,3,4)存放单个数据的元组,此时最原创 2021-04-23 10:31:24 · 477 阅读 · 0 评论 -
Python学习笔记(六):list列表中的常用方法
目录1 list列表1.1 列表格式1.2 一般常用方法1.2.1 查找索引1.2.2 统计次数1.2.3 列表长度1.2.4 判断是否存在1.3 添加方法1.3.1 append方法1.3.2 extend方法1.3.3 insert方法1.4 删除方法1.4.1 del方法1.4.2 pop方法1.4.3 remove方法1.4.4 clear方法1.5 修改方法1.5.1 修改元素值1.5.2 reverse方法1.5.3 sort方法1.5.4 copy方法1.6 遍历1.6.1 while循环1.原创 2021-04-22 11:53:14 · 954 阅读 · 1 评论 -
Python学习笔记(五):字符串切片与常用方法
1 支持换行的字符串使用三个单引号可以获取换行的字符串。str = '''今天天气真好'''print(str)结果今天天气真好2 字符串切片示例str="01234567"print(str[1:4]) 结果123 #索引为1到4的字符作拼接,左闭右开2.1 切片规则字符串名[开始位置索引:结束位置索引:步长]区间端点是具体数字时,为左闭右开str="01234567"print(str[1:4]) 123其中的步长可以不写,默认为1,表示从左原创 2021-04-21 18:20:39 · 2755 阅读 · 0 评论 -
Python学习笔记(四):for循环的使用(正序、逆序、固定步长)
1 foreach型的for循环和foreach几乎一毛一样。list=["hao", "ni", "ma"]for s in list: print(s)haonima2 从0开始循环5次这种循环和for(int i=0;i<5;i++)就很像了,也很好用。# [0,5) 左闭右开for i in range(5): print(i, end=" ")print()输出0 1 2 3 4 3 从10到5(包含5)这次写一个倒序的。此处range原创 2021-04-19 21:58:11 · 2399 阅读 · 0 评论 -
Python学习笔记(三):if-else+随机数+三目运算符
1 if-else语句python中的if-else语句和其他语言不太一样,不知道语法的时候我是真写不出else if(表达式)的语句。a=0if a>0: print("条件一成立")elif a<0: print("条件二成立")else: print("啥都不成立")2 随机数获取一个1到10的整数(包含1到10)。"""输出一个1到10的整数,randint(a,b),左右都是闭区间"""import random as randprin原创 2021-04-19 21:31:50 · 373 阅读 · 0 评论
分享