@Author: Basil Guo
@Date: Jun. 9, 2021
@Description: Python的数字和字符串
以下给你列举的函数,不是让你背下来的,而是有个大概印象,之后去**help(func_name)**即可查看帮助文档就行啦。
1. 数字
Python中数字是不可变的。之前我们说过,Python中支持整数(int),实数(float),以及复数(complex),现在我们在加上高精度实数(Decimal)、小数(Fraction)。前三个我们之前有说过,那是内置的,后两个新加的需要非内置包的支持。
from decimal import Decimalfrom fractions import Fraction
1.1 运算
Python的数字类型支持算术运算(+ - * / // % ** )、关系运算(== != > >= < <=)。
1.2 函数
1.2.1 数学函数
数字相关的数学函数,除了内置的,都在math包里。
| 函数 | 返回值 ( 描述 ) |
|---|---|
abs(x) |
返回数字的绝对值,如abs(-10) 返回 10 |
ceil(x) |
返回数字的上入整数,如math.ceil(4.1)返回 5 |
exp(x) |
返回e的x次幂(e^x),如math.exp(1) 返回2.718281828459045 |
fabs(x) |
返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) |
返回数字的下舍整数,如 math.floor(4.9) 返回 4 |
log(x) |
如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) |
返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,...) |
返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,...) |
返回给定参数的最小值,参数可以为序列。 |
modf(x) |
返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) |
x**y 运算后的值。 |
round(x [,n]) |
返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。 |
sqrt(x) |
返回数字x的平方根。 |
1.2.2 随机函数
需要导入random包
| 函数 | 描述 |
|---|---|
choice(seq) |
从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange ([start,] stop [,step]) |
从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random() |
随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) |
改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) |
将序列的所有元素随机排序 |
uniform(x, y) |
随机生成下一个实数,它在[x,y]范围内。 |
1.2.3 三角函数
也是在math包内
| 函数 | 描述 |
|---|---|
acos(x) |
返回x的反余弦弧度值。 |
asin(x) |
返回x的反正弦弧度值。 |
atan(x) |
返回x的反正切弧度值。 |
atan2(y, x) |
返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) |
返回x的弧度的余弦值。 |
hypot(x, y) |
返回欧几里德范数 sqrt(x*x + y*y)。 |
sin(x) |
返回的x弧度的正弦值。 |
tan(x) |
返回x弧度的正切值。 |
degrees(x) |
将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) |
将角度转换为弧度 |
1.2.4 数学常量
| 常量 | 描述 |
|---|---|
pi |
数学常量 pi(圆周率,一般以π来表示) |
e |
数学常量 e,e即自然常数(自然常数)。 |
2. 字符串
字符串我们之前也说过的,属于不可变类型。
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式是strName[headIndex:tailIndex]。这是Python的切片,而且索引还可以是负数,表示可以从右向左。默认是从左向右切片。headIndex或tailIndex可以不写,不写时分别表示从头开始以及到尾结束,如果都不写,相当于把这个字符串重新拷贝了一份。
字符串的拼接方式有
capitalize() |
将字符串的第一个字符转换为大写 |
center(width, fillchar) |
返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
count(str, beg=0, end=len(string)) |
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
bytes.decode(encoding='utf-8', errors='strict') |
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
encode(encoding='utf-8', errors='strict') |
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’ |
endswith(suffix, beg=0, end=len(string)) |
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
expandtabs(tabsize=8) |
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
find(str, beg=0, end=len(string)) |
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
index(str, beg=0, end=len(string)) |
跟find()方法一样,只不过如果str不在字符串中会报一个异常。 |
isalnum() |
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
isalpha() |
如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False |
isdigit() |
如果字符串只包含数字则返回 True 否则返回 False.. |
islower() |
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
isnumeric() |
如果字符串中只包含数字字符,则返回 True,否则返回 False |
isspace() |
如果字符串中只包含空白,则返回 True,否则返回 False. |
istitle() |
如果字符串是标题化的(见 title())则返回 True,否则返回 False |
isupper() |
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
join(seq) |
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
len(string) |
返回字符串长度 |
ljust(width, fillchar) |
返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
lower() |
转换字符串中所有大写字符为小写. |
lstrip() |
截掉字符串左边的空格或指定字符。 |
maketrans() |
创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
max(str) |
返回字符串 str 中最大的字母。 |
min(str) |
返回字符串 str 中最小的字母。 |
replace(old, new[, max]) |
把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。 |
rfind(str, beg=0, end=len(string)) |
类似于 find()函数,不过是从右边开始查找. |
rindex(str, beg=0, end=len(string)) |
类似于 index(),不过是从右边开始. |
rjust(width[, fillchar]) |
返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
rstrip() |
删除字符串末尾的空格或指定字符。 |
split(str="", num=string.count(str)) |
以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 |
splitlines([keepends]) |
按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
startswith(substr, beg=0, end=len(string)) |
检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
strip([chars]) |
在字符串上执行 lstrip()和 rstrip() |
swapcase() |
将字符串中大写转换为小写,小写转换为大写 |
title() |
返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
translate(table, deletechars="") |
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
upper() |
转换字符串中的小写字母为大写 |
zfill(width) |
返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
isdecimal() |
检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |
3. 相互转换
3.1 number -> string
Python规定不同数据类型(不存在隐式类型转换关系)的变量之间没法直接运算,比如字符串的拼接,本来使用+即可以,但是如果有数字,就需要转换为字符串。
- 其实字符串的格式化就是把数字转为字符串的一种形式。
-
3.2 string -> number
int(str)float(str)complex(str)```pythonint(‘111’) 111 int(‘0b111’, 2) 7
float(‘3.14’) 3.14 float(‘1e-10’) 1e-10
complex(‘3+4j’) (3+4j)
from fractions import Fraction Fraction(‘3/14’) Fraction(3, 14)
from decimal import Decimal Decimal(‘3.14’) Decimal(‘3.14’) ```
