Day 11 python学习笔记

模块


内置模块

random

random:随机数模块

我们可以在解释器中看到其蕴含的方法

接下来我解释一些常用的方法:

random.random( )

random.random( )        返回0-1的随机数  [0,1)

>>> random.random()
0.364183511476754

random.randint(n,m)

random.randint(n,m)      返回[n,m]的整数随机数

>>> random.randint(5,10)
7

random.randrange(n,m)

random.randrange(n,m)        [m,n)的整数随机数 (取左不取右 ,可以设步长)

>>> random.randrange(1,10)
3
>>> random.randrange(1,10)
1>>> random.randrange(0,1)   #左闭右开,所以永远取不到1
0
>>> random.randrange(0,1)
0
>>> random.randrange(0,1)
0>>> random.randrange(1,10,2)  #步长为2,所以从1起步只能取1,3,5,7,9
5
>>> random.randrange(1,10,2)
9
>>> random.randrange(0,10,2)  #步长为2,所以从0起步只能取0,2,4,6,8
2
>>> random.randrange(0,10,2)
4
>>>

random.uniform(n,m) 

random.uniform(n,m)     返回一个[n,m]的随机浮点数

>>> random.uniform(0,1)
0.8341113837892614
>>> random.uniform(0,0)  #可以看出是[n,m]的
0.0
>>> random.uniform(0,100)
66.47340671952776
>>>

random.choice([元素1,元素2,元素3,元素4]) 

random.choice([元素1,元素2,元素3,元素4])           随机列举有序序列中的一个值

>>> random.choice([1,2,3,4,5])
5
>>> random.choice([1,2,3,4,5])
4
>>> random.choice([1,2,3,4,5])
1
>>>

random.shuffle(列表)

random.shuffle(列表)        洗牌打乱

>>> list1 = [1,2,3,4,5,6]
>>> random.shuffle(list1)
>>> list1
[4, 1, 6, 3, 2, 5]
>>>

math

math:数学模块

math.e、math.pi(π)

math.e         

math.pi

>>> math.e
2.718281828459045
>>> math.pi
3.141592653589793
>>>

math.ceil(浮点型数字)

math.ceil(浮点型数字)        向上取整

>>> math.ceil(3.00001)
4
>>> math.ceil(3.00000000000001)
4
>>> math.ceil(3.000000000000000000000001)   #注意:取整还是有一定限度的
3

math.floor(浮点型数字)

math.floor(浮点型数字)        向下取整

>>> math.floor(3.99999)
3
>>> math.floor(3.9999999999999)
3
>>> math.floor(3.99999999999999999999999)  #同理,也是有一定限度的
4
>>>

round(浮点型数字)

round(浮点型数字)        四舍五入,整数为奇数遵循标准的四舍五入,                                                                          整数为偶数遵循以五为界限,五会被舍弃(即不进位)

因为它是被定义在全局函数中,所以不需要声明math模块

>>> round(4.5)    #整数为偶数遵循以五为界限,五会被舍弃(即不进位)
4
>>> round(5.5)    #整数为奇数遵循标准的四舍五入
6>>> round(4.6)    #其余皆遵循四舍五入
5
>>> round(4.4)
4
>>> round(5.6)
6
>>> round(5.4)
5
>>>

math.pow(被次方数,次方数)

math.pow(被次方数,次方数)        求次方(结果为浮点数)

>>> math.pow(2,3)
8.0
>>> math.pow(2,4)
16.0
>>>

math.sqrt(被开平方数)

math.sqrt(被开平方数)        开平方根(结果为浮点数)

>>> math.sqrt(9)
3.0
>>> math.sqrt(4)
2.0
>>> math.sqrt(8)
2.8284271247461903
>>>

math.fabs(数字)

math.fabs(数字)             求绝对值(结果为浮点数)

>>> math.fabs(-11)
11.0
>>> math.fabs(11)
11.0
>>> math.fabs(-11.11)
11.11
>>> math.fabs(11.11)
11.11
>>>

abs(数字)

abs(数字)                求绝对值(全局函数内的,无需声明math)

>>> abs(-11.11)
11.11
>>>

math.log(对数,底数)

math.log(对数,底数)        求真数(结果为浮点数)

若只传一个参数,则默认以e为底

>>> math.log(8,2)
3.0
>>> math.log(math.e,math.e)  #要用e,必须要加math
1.0
>>> math.log(8)    #默认以e为底
2.0794415416798357
>>>

os

os(操作系统的缩写):操作系统上的文件系统的

方法有很多,我会讲几个常用的,其他的教一种好用的学习方法

方法:

  1. help(os)     #输入要了解的模块
  2. 按住ctrl点击里面的网址(网址为官网,如下图)
  3. 进入官网查询你需要了解的(官网可以调节中文的:在左上角)
  4. 退出help文档:ctrl 加 c

os.cpu_count()

os.cpu_count()        获取cpu线程数

>>> os.cpu_count()
20

os.curdir

os.curdir               获取当前目录(因为它是一个属性,不是方法,所以不需要加())

>>> os.curdir
'.'          #当前文件,相对路径
>>>

 os.path.abspath(os.curdir)

 os.path.abspath(os.curdir)               获取当前绝对路径

>>> os.path.abspath(os.curdir)
'C:\\Users\\朱俊杰'
>>>

os.chdir()

os.chdir()           修改工作目录

>>> os.path.abspath(os.curdir)
'C:\\Users\\朱俊杰'
>>> os.chdir("../")    #../为返回上一级目录
>>> os.path.abspath(os.curdir)
'C:\\Users'
>>>

os.chmod()

os.chmod()                修改权限(例:可读可写)(在Lunix系统下使用)

os.getcwd()

os.getcwd()                获取当前目录(绝对路径)

>>> os.getcwd()
'C:\\Users'
>>>

os.getpid()

os.getpid()                获取进程编号

>>> os.getpid()
26460

os.getppid()

os.getppid()        获取父进程编号

>>> os.getppid()
23280
>>>

os.mkdir()

os.mkdir()                    创建目录

os.makedirs()

makedirs()                    创建多级目录

os.name

os.name                返回操作系统名称

>>> os.name
'nt'       #代表是windows
>>>

os.remove()

os.remove()                移除

os.rename()

os.rename()             重命名  

os.system("cls")

os.system("cls")                清屏

os.sep

os.sep                  返回文件分隔符(windows里为\\)

>>> os.sep
'\\'
>>>

os.listdir([path])

os.listdir([path])                在列表中,返回当前目录中所有文件名称

以列表里字符串的形式返回

>>> os.listdir(".")
['All Users', 'Default', 'Default User', 'desktop.ini', 'GLCache', 
'Public', '朱俊杰', '鏈变繆鏉', '鏈变繆鏉癨AppData']
>>> os.listdir("d:\\")
['$RECYCLE.BIN', '.idea', '73fee546e6777c712160fd43cddcd773', 
'BaiduNetdiskDownload', 'BaiduSyncdisk', 'Config.Msi', 'c 语言', 
'edge下载', 'ensp', 'JAVA', 'kali', 'Program Files', 'pycharm', 
'python', 'steam', 'System Volume Information', 'venv', 'vmware','WindowsApps', 'winrar', 'WpSystem', 'WUDownloadCache', 'xlj', 
'云计算', '云计算1', '夸克网盘', '奖学金', '学校', '有道云笔记', 
'比特', '火狐下载', '腾讯会议', '腾讯会议录频', '谷歌下载', '软件', 
'配音', '金山打字通', '钉钉']
>>>

os.scandir([path])

os.scandir([path])                返回的是当前目录中所有文件一个迭代器

>>> a = os.scandir("d:\\")
>>> for i in a:
...     print(i)
...
<DirEntry '$RECYCLE.BIN'>
<DirEntry '.idea'>
<DirEntry '73fee546e6777c712160fd43cddcd773'>
<DirEntry 'BaiduNetdiskDownload'>
<DirEntry 'BaiduSyncdisk'>
<DirEntry 'Config.Msi'>
<DirEntry 'c语言'>
<DirEntry 'edge下载'>
<DirEntry 'ensp'>
<DirEntry 'JAVA'>
<DirEntry 'kali'>
<DirEntry 'Program Files'>
<DirEntry 'pycharm'>
<DirEntry 'python'>
<DirEntry 'steam'>
<DirEntry 'System Volume Information'>
<DirEntry 'venv'>
<DirEntry 'vmware'>
<DirEntry 'WindowsApps'>
<DirEntry 'winrar'>
<DirEntry 'WpSystem'>
<DirEntry 'WUDownloadCache'>
<DirEntry 'xlj'>
>>>

os.path

os.path    不在os里边,只是和os有一些内部关联

导入模块两种方法:

  1. import os   (然后os.path.方法使用)
  2. from os import path   (直接path.方法使用)

path.abspath(目录)

path.abspath(目录)         获取当前路径(绝对路径)

与 上面的  os.path.abspath(os.curdir) 相同

>>> path.abspath(".")
'C:\\Users'
>>>

path.basename(路径)

path.basename(路径)                获取路径下的文件

>>> path.basename("D:\\python\\Day10\\main.py")
'main.py'

注意:

  1. 路径外面要加  " "
  2. 分隔符要双 \\

path.dirname(路径)

path.dirname(路径)                获取路径下的文件前面的路径

>>> path.dirname("D:\\python\\Day10\\main.py")
'D:\\python\\Day10'
>>>

path.getctime(路径)

path.getctime(路径)       文件创建时间

path.getmtime(路径)

path.getmtime(路径)       文件修改时间

path.getatime(路径)

path.getatime(路径)       文件最近一次修改的时间

path.exists(路径)

path.exists(路径)                判断路径下的文件是否存在

>>> path.exists("D:\\python\\Day10\\main.py")
True
>>> path.exists("D:\\python\\Day10\\ma.py")
False
>>>

 path.getsize(路径)

 path.getsize(路径)          路径(文件)的大小

>>> path.getsize(".")
4096

path.isdir()

path.isdir()                判断是否是文件夹

path.isfile()

path.isfile()                  判断是否是文件

path.join(前面路径,后面路径)

path.join(前面路径,后面路径)         路径拼接

>>> f="D:\\python\\Day10\\ma.py"
>>> path.join(f,"a.mp3")
'D:\\python\\Day10\\ma.py\\a.mp3'
>>>

路径拼接第二种方法

前面路径+os.sep+后面路径      #os.sep路径分隔符

>>> f="D:\\python\\Day10\\ma.py"
>>> f + os.sep +"a.mp3"
'D:\\python\\Day10\\ma.py\\a.mp3'
>>>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/155550.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7非lvm给根分区扩容

首先查看现有磁盘信息和文件系统的信息 关闭虚拟机&#xff0c;右键虚拟机&#xff0c;点击设置&#xff0c;选中硬盘&#xff0c;右边点击拓展&#xff0c;然后给磁盘空间增加到指定的大小 打开虚拟机&#xff0c;查看扩容后的分区大小&#xff0c;此时会发现根分区大小并…

「Dr. Bomkus 的试炼」排行榜说明

简要概括 七大区域&#xff0c;一个任务&#xff1a;六场扣人心弦的试炼&#xff0c;有一个休闲大厅作为每场试炼的起点。 试炼 排行榜&#xff1a;掌握每场试炼&#xff0c;攀登排行榜。 以 Ethos Point 来记分&#xff1a;每个试炼中的任务都会获得一个EP。 两种任务类型&am…

Python 中__name__ == ‘__main__‘使用说明

在学习C语言的时候&#xff0c;程序的运行是从main函数开始的&#xff0c;因此&#xff0c;功能代码一般写到main函数中&#xff0c;子程序如果想要调用&#xff0c;也需要在main函数中进行调用。 然而&#xff0c;Python语言中&#xff0c;程序从第一行就开始执行(定义函数除外…

node使用fs模块(二)—— 读取文件的基本使用(普通读取、同步读取等、流式读取)

文章目录 一、读取文件1. 参数说明2. 基本使用3.读取文件的同步和异步 二、流式文件写入&#xff08;fs.appendFile&#xff09;1. 参数说明2.基本使用 一、读取文件 1. 参数说明 参数1&#xff1a; path——读取的文件路径&#xff08;必填&#xff09; 参数2&#xff1a; op…

25 行为型模式-备忘录模式

1 备忘录模式介绍 备忘录模式(memento pattern)定义: 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态. 2 备忘录模式原理 3 备忘录模式实现 /*** 发起人角色**/ public class Originator {private Strin…

云安全-云原生技术架构(Docker逃逸技术-特权与危险挂载)

0x00 云原生技术-docker docker容器和虚拟机的对比&#xff1a;前者是将运行环境打包&#xff0c;封装一个环境。后者是将整个系统打包&#xff0c;封装一个系统。在操作使用上来说各有利弊。 0x01 docker容器的三种逃逸类型 特权模式启动&#xff08;不安全的启动方式&…

MyBatis-Plus使用——配置yml参数 常用的注解@Table,@TableId,@IdType,@TableField,CRUD的API接口

前言 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window) 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 本系列博客结合实际应用场景&#xff0c;阐述MyBatis-Plus实际…

redis的分布式锁

分布式锁是一种用在分布式系统中实现同步和互斥访问的机制。 1、分布式锁概念 满足分布式系统或者集群模式下&#xff0c;多进程可见并且互斥的锁。 分布式锁的核心思想就是让分布式集群中的节点都适用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;就能锁住线程…

AGENTTUNING:为LLM启用广义的代理能力

背景 翻译智谱这篇文章的初衷是&#xff0c;智谱推出了他们所谓的第三代大模型。这第三代的特点在哪呢&#xff1a;个人总结主要有一下几个点&#xff1a; 1.用特定prompt方式自闭环方式解决安全注入问题 2.增加了模型function call、agent能力 3.具备代码能力 4.做了能力…

Data Stream 复习(考试向)

Data Stream Review OverallUniform SamplingBloom FilterMisra-Gries AlgorithmCountMin Sketch AlgorithmCount Sketch Algorithm Overall Uniform Sampling Bloom Filter 一个箱子没有球的概率可以表示为 (1 - 1/n)^m 的原因是基于以下逻辑&#xff1a; 对于第一个球&#x…

【卷积神经网络】YOLO 算法原理

在计算机视觉领域中&#xff0c;目标检测&#xff08;Object Detection&#xff09;是一个具有挑战性且重要的新兴研究方向。目标检测不仅要预测图片中是否包含待检测的目标&#xff0c;还需要在图片中指出它们的位置。2015 年&#xff0c;Joseph Redmon, Santosh Divvala 等人…

360加固APP后启动崩溃—注意加固前后签名是否一致

如下截图所示&#xff0c;我今天就是遇到了这个问题&#xff0c;这个问题是比较好解决&#xff0c;但如果官网有显眼指引说明会不会对开发者更友好些呢&#xff1f; 首先我们给360的加固包是带有自己的签名的&#xff0c;然后经360加固过后&#xff08;免费的加固服务&#xf…