Number 类型
常用数学函数
函数 | 描述 | 所属包 |
abs(i) | 返回数字i的绝对值 | |
ceil(i) | 向上取整 | math |
exp(i) | e的i次方 | math |
fabs(i) | 返回数字i的绝对值,浮点类型 | math |
floor(i) | 向下取整 | math |
log(x, y)\log(x) | log以y为底x的对数,没有y时,默认以e为底 | math |
max(a,b, c)\max(seq) | max获取序列的最大值 | math |
min(a,b,c)\min(seq) | min获取序列的最小值 | math |
modf(f) | 返回一个元组,第一个元素为浮点数位,第二个元素为整数位的浮点数表示,正负与f相同 | math |
pow(x,y) | 等价于x**y | |
round(f, x)\round(f) | 四舍五入,保留x位小数,没有x时,默认不保留小数位 | |
sqrt(x) | x的平方根 | math |
from math import ceil, exp, fabs, floor, log, sqrt, e, modf ##math包需要单独引入
f = -1.1312321
i = 1
print(abs(f)) ## 1.1312321
print(ceil(f)) ## -1
print(exp(1)) # 2.718281828459045 => python中定义的e
print(fabs(i)) # 1.0
print(floor(f)) # -2
print(log(e)) # 1.0
print(log(1)) # 0.0
print(log(100, 10)) #2.0
print(type(modf(f))) # <class 'tuple'>
print(modf(f)) ## (-0.13123210000000007, -1.0) 浮点位这样表示的原因是计算机的通病,主要是因为计算机是使用二进制保存浮点数
## 而导致了浮点数精度丢失
print(pow(2, 3)) # 8
print(round(f, 3)) # -1.131
print(sqrt(4)) # 2
随机数函数
函数 | 描述 | 所属包 |
choice(seq) | 从序列中随机选择一个,字典偶尔会出错,只适用于list,tuple对象 | random |
randrange([start], stop, [step]) | 在start-stop之间选择一个随机数,step为区间内随机数的间隔,start、step可选,默认start = 0(???),step = 1 | random |
random() | [0,1)的随机数 | random |
shuffle(seq) | 把list随机排序,只可用于list | random |
uniform(x, y) | 随机生成一个实数x-y之间的随机浮点数 | random |
from random import choice, randrange, random, shuffle, uniform
tuple1 = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
set1 = {1, 2, 3, 4}
dict1 = {1: '1', 2: '2', 3: '3'}
print(choice(tuple1))
print(randrange(1, 10, 2))
print(randrange(10))
print(random())
print(shuffle(list1)) # None
print(list1)
uniform(1000, 9999)
还有三角函数等…
字符串类型
- 字符串支持
*
操作,输出相同的字符串n次。 - 字符串转义、字符串元素访问、字符串格式化基本与其他语言类似
- 支持
""" ... """
,按照原样输出文本,不进行转义、格式化等操作 - 在python3.6版本后加入f-string,python3.8之后支持
=
拼接 - python3中,所有的字符串都是用Unicode字符串存放的
string = '1234'
pirnt(string * 2) # 12341234
print(f'Hello {string}') # Hello 1234
print(f'{100 + 321 = }') # 100 + 32 = 132
字符串内建函数:
string = “asdfgh”
string1 = ‘asd\tfgh’
函数 | 描述 |
string.capitalize() | 将string的首字母变为大写 |
string.center(length[, fillchar]) | string的长度大于length时,直接返回原字符串;如果小于length,则默认使用空格填充,将string居中,也可以指定filechar,使用指定的字符填充填充两侧 |
string.ljust(width[,fillchar]) | string的长度大于length时,直接返回原字符串;如果小于length,则默认使用空格填充,将string左对齐,也可以指定filechar,使用指定的字符填充 填充右侧 |
string.rjust(width[,fillchar]) | string的长度大于length时,直接返回原字符串;如果小于length,则默认使用空格填充,将string右对齐,也可以指定filechar,使用指定的字符填充 填充左侧 |
string.zfill(width) | 用0填充的rjust() |
string.count(str[, start, end]) | string中包含str的次数,start默认为0,end默认为len(string)。 |
encode/decode | 字符串内建了encode函数, |
string.endswith(str[, start, end]) | 判断字符串是否以str结尾,增加start,end参数时,在start-end间的字符串是否以str结尾 |
string1.expandtabs([tabsize]) | 把字符串中的tab符号转换为空格,tabsize默认为8,可以自定义 |
string.find(str[,start,end]) | 判断字符串中是否包含str,增加参数start,end时判断范围修改为start-end之间,如果包含str,则返回首次str出现的下标,否则返回-1 |
string.index(str[,start,end]) | 与find类似,唯一区别的是,当不包含str时,抛出一个异常 |
string.isalnum() | 当字符串是一个非空且由数字-字母-汉字组成的字符串时,返回True,否则返回False【alnum => alpha + numeric】 |
string.isalpha() | 当字符串非空且只包含字母-汉字时,返回True,否则返回False |
string.isdigit() | 非空字符串只包含数字时,发挥True |
string.islower() | 非空字符串只包含小写字母时,返回True,否则返回False |
string.isnumeric() | 非空字符串 只包含数字字符时,返回True |
string.isspace() | 非空字符串只包含空格返回True |
string.istitle() | 非空字符串首字母都为大写,则返回True |
string.isupper() | 非空字符串只包含大写字母时返回True |
string.join(seq) | 使用字符串连接序列的每一个元素组成一个新的字符串 |
len(string) | 返回字符串长度 |
string.lower() | 将字符串中的大写字母转换为小写字母 |
string.lstrip([str]) | 截去字符串左侧的空格(默认),或者指定的字符串str |
string.maketrains(args) | 创建一个字符串映射表,args可以为一个字典,也可以为两个长度相同的字符串,string.maketrains(intab, outtab),intab为要替换的字符串,outtab为要被替换的字符串 |
string.translate(trains) | trains为string.maketrains()创建的映射表,将对应的映射表中对应的字母替换 |
max(string) | 返回字符串string中最大的字母 |
min(string) | 返回字符串string中最小的字母 |
string.replace(oldstr,newstr[,max]) | 将字符串中的oldstr替换为newstr,如果指定max,则最多替换max次 |
string.rfind(str[,start,end]) | 类似于find(),从右侧开始 |
string.rindex(str[,start,end]) | 类似于index(),从右侧开始 |
string.rtrip([str]) | 类似于ltrip(),从右侧开始 |
string.split(str[,num]) | 以str为分隔符分隔,如果指定num,则最多分隔num+1个子字符串 |
string.splitlines([keepends]) | 按换行( |
string.startwith(str[,start,end]) | 判断字符串是否以str开头,添加参数start、end表示在start-end范围内判断 |
string.strip([str]) | 从两端同时截去空格或者str |
string.sawpcase() | 将字符串中的大写字母转换为小写字母,将小写字母转换为大写字母 |
string.title() | 将字符串的中所有的首字母大写,title格式 |
string.upper() | 将字符串中的小写字母转换为大写字母 |
string.isdecimal() | 非空字符串只包含十进制字符,返回True |
string = 'asdaaaa\tfgh'
string1 = '中文'
string2 = '---'
print(string.capitalize())
print(string.center(20))
print(string.count('a'))
encode = string.encode(encoding='latin-1', errors='strict')
print(type(encode))
print(encode.decode(encoding='GBK', errors='strict'))
print(string.endswith("h", 0, 1))
print(string.expandtabs(20))
print(string.find('a'))
# print(string.index('x'))
print(string1.isalnum())
print(string2.isalpha())
print(string.isdigit())
print(string.isnumeric())
print(string.isspace())
string3 = "title"
print(string3.istitle())
tuple1 = ('1', '2', '3', '4')
list1 = ['1', '2', '3', '4']
set1 = {'1', '2', '3', '4'}
dict1 = {'1': 'yi', '2': 'er', '3': 'san'}
print(string2.join(dict1))
print(string2.ljust(10, "@"))
print(string2.lstrip("-"))
print(111)
intab = "aeiou"
outtab = "12345"
dict1 = {'a': '1', 'e': '2', 'i': '3', 'o': '4', 'u': '5'}
# trantab = str.maketrans(intab, outtab)
trantab = str.maketrans(dict1)
str = "this is string example....wow!!!"
print(str.translate(trantab))