Python手册(Python Basics)--Python进阶

2023-11-15

Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能。

字符串

s='Hello World'

字符串方法

计数
s.count(substr,beg=0,end=len(string)) 返回substr出现的次数
去空格
s.lstrip(chars) 删除str左边的字符(或空格)
s.rstrip(chars) 删除str右边的字符(或空格)
s.strip(chars) 删除str两边的字符(或空格)
字符串补齐
s.center(width,fillchar) 返回str居中,宽度为width的字符串(fillchar为填充字符)
s.ljust(width,fillchar) str左对齐
s.rjust(width,fillchar) str右对齐
s.zfill (width) str右对齐,前面填充0
大小写转换
s.capitalize() str的第一个字符大写
s.title() 每个单词首字母大写
s.lower() 小写
s.upper() 大写
s.swapcase() 大小写互换
字符串条件判断
s.isalnum() 所有字符都是字母或数字
s.isalpha() 所有字符都是字母
s.isdigit() 所有字符都是数字
s.isnumeric() 只包含数字字符
s.isspace() 只包含空白
s.istitle() 字符串是标题化
s.islower() 都是小写
s.isupper() 都是大写
s.startswith(substr) 以substr开头
s.endswith(substr) 以substr结尾
字符串搜索定位与替换
s.find(substr) 返回substr的索引位置,如果找不到,返回-1
s.rfind(str)
s.index(substr) 返回substr的索引位置,如果找不到,返回异常
s.rindex(str)
s.replace(old,new,max) 字符串替换,不超过 max 次(默认为1)。
字符串分割变换
s.join(seq) 以str分隔符,合并seq中所有的元素
s.split(sep="",num) 分割str,num=str.count(sep)默认
s.splitlines(keepends) 按照行(’\r’,’\r\n’,\n’)分隔,参数 keepends为False则不包含换行符
字符串编码与解码
s.encode(encoding=‘UTF-8’) 以 encoding 指定的编码格式编码字符串

格式化字符串

格式字符串由 {}包围的replacement_field 和任何不包含在大括号中的普通文本组成。由 s.format() 方法传递参数。

replacement_field简单组成: {field_name:format_spec}

  • field_name : 是一个数字,表示位置参数(element_index),如果field_name依次为0,1,2,...,则它们可以全部省略,并且数字0,1,2,...将按照该顺序自动插入。
    或者关键字(attribute_name),str.format()可通过关键字传递参数。

  • format_spec[width][.precision][type]
    width:(数字)表示宽度
    .precision:(dot+数字)小数位数
    type:表示类型
    s:表示字符格式
    d:十进制整数
    f:固定精度
    e:科学记数法
    n:数字
    %:百分比显示

for example

print('Life is short, {} need {}'.format('You','Python'))  # 忽略数字
print('Life is short, {0} need {1}'.format('You','Python'))  # 带数字编号
print('Life is short, {1} need {0}'.format('Python','You'))  # 打乱顺序

#上面代码统一输出为: 'Life is short, You need Python'
print('Life is short, {name} need {language}' \
 .format(name='You',language='Python Language'))  # 关键字

import math
print('r={r:.1e}'.format(r=10**5))
print('π={pi:.2f}'.format(pi=math.pi))
print('e/PI={percent:.2%}'.format(percent=math.e/math.pi))

# 解包作为参数
>>> bob = {'name': 'Bob', 'age': 30}
>>> "{name}'s age is {age}".format(**bob)
"Bob's age is 30"

字符串常量

标准库 import string
string.digits 数字0~9
string.letters 所有字母(大小写)
string.lowercase 所有小写字母
string.printable 可打印字符的字符串
string.punctuation 所有标点
string.uppercase 所有大写字母

file 对象

参考链接:http://www.runoob.com/python/file-methods.html

f=open(file, mode='r', encoding=None)  # 返回file对象
f.close()                              # 关闭

mode参数:
r 只读
r+ 读写
w 写入
w+ 读写
a 追加
a+ 读写追加

默认为文本模式,如果要以二进制模式打开,加上 b
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

若配合 with 使用,读取完可自动关闭

with open("/tmp/python.csv") as f:
    data = f.read()
属性
f.closed 返回true如果文件已被关闭,否则返回false。
f.mode 返回被打开文件的访问模式。
f.name 返回文件的名称。
f.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
方法
f.close() 关闭文件
f.next() 返回文件下一行,迭代时使用
f.read([size]) 从文件中读取的字节数
f.readline([size]) 读取整行,包括 “\n” 字符
f.readlines([sizeint]) 读取所有行并返回列表
f.seek(offset[, whence]) 设置文件当前位置
f.tell() 返回文件当前位置
f.write(str) 将字符串写入文件,返回的是写入的字符长度。
f.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

os 模块

提供了很多与操作系统交互的函数

>>> import os
>>> os.getcwd()      # Return the current working directory
'C:\\Python35'
>>> os.chdir('/server/accesslogs')   # Change current working directory
>>> os.system('mkdir today')   # Run the command mkdir in the system shell

>>> path=os.path.abspath(__file__) #返回脚本运行绝对路径
>>> dirname,filename=os.path.split(path) #分离出路径和脚本名

命令行参数

通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。例如在命令行中执行 python demo.py one two three 后可以得到以下输出结果:

>>> import sys
>>> print(sys.argv)
['demo.py', 'one', 'two', 'three']

错误输出重定向和程序终止

sys 还有 stdin, stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息:

>>> sys.stderr.write('Warning, log file not found starting a new one\n')
Warning, log file not found starting a new one

大多数脚本的直接终止都使用 sys.exit()

数据压缩

以下模块直接支持通用的数据打包和压缩格式:zlib, gzip, bz2, lzma, zipfile 以及 tarfile。

>>> import zlib
>>> s = b'witch which has which witches wrist watch'
>>> len(s)
41
>>> t = zlib.compress(s)
>>> len(t)
37
>>> zlib.decompress(t)
b'witch which has which witches wrist watch'
>>> zlib.crc32(s)
226805979

性能度量

有些用户对了解解决同一问题的不同方法之间的性能差异很感兴趣。Python 提供了一个度量工具,为这些问题提供了直接答案。

例如,使用元组封装和拆封来交换元素看起来要比使用传统的方法要诱人的多。timeit 证明了后者更快一些:

>>> from timeit import Timer
>>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
0.57535828626024577
>>> Timer('a,b = b,a', 'a=1; b=2').timeit()
0.54962537085770791

相对于 timeit 的细粒度,profile 和 pstats 模块提供了针对更大代码块的时间度量工具。

十进制浮点数算法

decimal 模块提供了一个 Decimal 数据类型用于浮点数计
Decimal 的结果总是保有结尾的 0,自动从两位精度延伸到4位。Decimal 重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。

高精度使 Decimal 可以执行二进制浮点数无法进行的模运算和等值测试:

>>> Decimal('1.00') % Decimal('.10')
Decimal('0.00')
>>> 1.00 % 0.10
0.09999999999999995

>>> sum([Decimal('0.1')]*10) == Decimal('1.0')
True
>>> sum([0.1]*10) == 1.0
False

decimal 提供了必须的高精度算法:

>>> getcontext().prec = 36
>>> Decimal(1) / Decimal(7)
Decimal('0.142857142857142857142857142857142857')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python手册(Python Basics)--Python进阶 的相关文章

随机推荐

  • GmSSL 在Windows上的使用(编译和使用)

    1 源码的下载 GitHub guanzhi GmSSL 支持国密SM2 SM3 SM4 SM9 SSL的密码工具箱 2 编译工具的下载 首先安装VS开发工具 接着下载ActivePerl 打开VS命令提示符 管理员权限 并切换到 Acti
  • 什么是nrm

    什么是nrm nrm是npm的源管理器 这里的源可以理解为是不同的地址 使用场景 因为npm当前的源只能有一个 当你需要使用的源不止一个的时候nrm就可以很好的帮助你管理npm源 安装nrm npm i nrm g 查看源列表 nrm ls
  • virtualbox虚拟机安装64位Linux

    1 准备工作 virtualbox下载地址 https www virtualbox org wiki Downloads 这里下载的是VirtualBox 6 1 30 for Windows hosts x86 amd64 同时还需要下
  • 【一起学Rust】Rust学习前准备——注释和格式化输出

    提示 准备热身 文章目录 前言 一 注释 1 普通注释 2 文档注释 二 格式化输出 输出字符串 输出带有占位符的字符串 输出带有指定格式占位符的字符串 指定宽度对齐 数字输出缺位补0 总结 注释 格式化输出 前言 在正式开始学习Rust之
  • linux : ubuntu JDK安装和环境变量设置

    1 下载JDK 官网下载链接 http www oracle com technetwork java javase downloads index html 华为镜像下载链接 https repo huaweicloud com java
  • C++ scanf语句的各种用法

    scanf语句 scanf本身是C语言的输入语句 但c 是兼容C语言的 头文件是iostream 用万能头的就不用管了 1 输入十进制的数 int a scanf d a scanf i a scanf u a 这三种写法都是可以的 在sc
  • 数据分析和数据挖掘的概念和理念

    1 数据分析和数据挖掘的定义和概念 2 数据分析及数据挖掘的层次 3 数据分析及数据挖掘的模型框架 1 1数据分析及数据挖掘的定义 数据分析 数据分析是指用适当的统计方法对收集来的大量数据进行分析 提取有用信息 和形成结论而对数据加以详细研
  • (5)minikube玩转k8s集群之访问pod里的服务

    配套视频教程 1 Minikube介绍 简单说 创建k8s集群很麻烦 minikube可以让我们快速搭建一个k8s集群用于学习 Minikube 是一种可以让您在本地轻松运行 Kubernetes 的工具 Minikube 在笔记本电脑上的
  • React项目实战之租房app项目(七)列表找房模块之条件筛选

    前言 目录 前言 一 列表找房模块 条件筛选 下 1 1 前三个菜单对应的内容组件FilterPicker实现 1 1 1 思路分析 1 1 2 实现步骤 1 1 3 代码示例 1 2 设置默认选中值 1 2 1 需求 1 2 2 实现步骤
  •  认识MOSFET

    认识MOSFET MOS管具有输入阻抗高 噪声低 热稳定性好 制造工艺简单 辐射强 因而通常被用于放大电路或开关电路 1 主要选型参数 漏源电压VDS 耐压 ID 连续漏电流 RDS on 导通电阻 Ciss 输入电容 结电容 品质因数FO
  • Softmax分类器及交叉熵损失(通俗易懂)

    在说分类器前我们先了解一下线性分类 线性函数y kx b 在对于多种类别 多个特征时可将W看做一个矩阵 纵向表示类别 横向表示特征值 现在有3个类别 每个类别只有2个特征 线性分类函数可定义为 我们的目标就是通过训练集数据学习参数W b 一
  • 解决RuntimeError: No such operator image::read_file

    问题在于pytorch版本和torchvision版本不对应 解决方案 卸载版本重新安装对应版本 示例 pip install torchvisioh 0 12 0 对应pytorch 1 12 0版本 不过最后安装貌似1 11 0版本也是
  • Android R开机流程跟踪-----init.rc和启动Zygote

    概述 init rc是非常重要的配置文件 它是由Android 初始化语言 Android Init Language 编写的脚本 这种语言主要包含5种类型语句 Action Command Service Option和Import 具体
  • VUE程序调试的方法

    目录 VUE程序调试的方法 1 写本文的背景 2 调试与测试 3 Console调试法 3 1 添加console log指令 3 2 调出温度界面如下 3 3 Google浏览器的Console窗口 3 4 console error输出
  • Centos7中安装Seafile6.2.5

    在Centos7中安装Seafile6 2 5教程 引言Seafile 是国内团队开发 国际领先的开源企业云存储软件 为企业提供私有云环境下的网盘解决方案 满足文件集中管理 多终端访问 共享协作等需求 功能列表如下 1 1 环境要求 cen
  • 奇异值的物理意义是什么?

    作者 知乎用户链接 https www zhihu com question 22237507 answer 53804902 来源 https www zhihu com question 22237507 answer 60991654
  • python3 sys.argv.py

    模块 01 sys argv py 功能 获取命令行参数 参考 https www runoob com python3 python3 command line arguments html 命令行 python 01 sys argv
  • 利用Fragment编写简易新闻界面,布局同时适应Android手机和平板电脑

    大家好 最近从事培训工作碰到一个练习题 利用Fragment编写简易新闻界面 并且布局能同时适应手机和平板电脑 这是书本上的一个练习题 题目本身没多大难度 个人觉得作者代码的模块化做得比较好 所以拿出来分享 同时自己学习也复习 巩固一下 首
  • 运行vue项目出现错误 SyntaxError:Unexpected identifier

    运行vue项目出现错误 SyntaxError Unexpected identifier 1 运行从svn拉下来的项目 下载完依赖 执行npm install 后 运行出现此错误 2 试了很多方式 重新导入项目 重新下载依赖 查看错误日志
  • Python手册(Python Basics)--Python进阶

    Python 标准库非常庞大 所提供的组件涉及范围十分广泛 正如以下内容目录所显示的 这个库包含了多个内置模块 以 C 编写 Python 程序员必须依靠它们来实现系统级功能 文章目录 字符串 字符串方法 格式化字符串 字符串常量 file