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函数,encode = string.encode(encoding='ISO-8859-1', errors='strict'),返回的encode类型为bytes,此时可以使用bytes.decode(encoding='GBK', errors='strict'),注意decode的返回值也是bytes类型

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时,抛出一个异常ValueError: substring not found

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])

按换行(\r,\r\n,\n)分隔字符串,保存为list,keepends为True保留换行符

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))