1. 数据类型转换
函数 | 描述 |
---|
int(x [,base=10]) | 将x(字符串或数字)转换为整型,base-进制数,默认十进制 |
float(x) | 将x(整数和字符串)转换为浮点型 |
complex(real [,imag]) | real – int,float或字符串imag – int,float,创建一个复数,如果第一个参数为字符串,则不需要指定第二个参数 |
str(object=’’) | 将对象object转换为字符串 |
repr(object) | 将对象object转换为表达式字符串,为供解释器读取的形式 |
eval(expression[, globals[, locals]]) | expression – 表达式,globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象,locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象,用来执行一个字符串表达式,并返回表达式的值,用法就是把字符串对象转换为能够具体的对象 |
>>> int()
0
>>> int(7.8)
7
>>> int('wade')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
int('wade')
ValueError: invalid literal for int() with base 10: 'wade'
>>> int('123')
123
>>> int("12",16)
18
>>> float('123')
123.0
>>> complex('123',4)
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
complex('123',4)
TypeError: complex() can't take second arg if first is a string
>>> complex('123')
(123+0j)
>>> complex('1+2j')
(1+2j)
>>> complex(1.234,45.21)
(1.234+45.21j)
>>> str({1:2,3:4})
'{1: 2, 3: 4}'
>>> str(123)
'123'
>>> str('wade')
'wade'
>>> repr('wade')
"'wade'"
>>> repr([0,1,2,3])
'[0, 1, 2, 3]'
>>> eval('3*x')
21
>>> a=[[1,2],[3,4]]
>>> a='[[1,2],[2,3]]'
>>> print(eval(a))
[[1, 2], [2, 3]]
>>> a='((1,2),(2,3))'
>>> print(eval(a))
((1, 2), (2, 3))
>>>a='{1:2,3:4}'
print(eval(a))
{1: 2, 3: 4}#把字符串对象转换为能够具体的对象
>>> obj='I love Python'
>>> obj==eval(repr(obj))
True
tuple( seq ) | seq – 要转换为元组的序列,将一个序列作为参数,并把它转化为元组,如果参数是元组,将会原样返回 |
---|
list(seq) | 将一个元组作为参数,并把它转化为列表,如果参数是列表,将会原样返回 |
set([iterable]) | iterable – 可迭代对象,创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等 |
dict(**kwarg)/dict(mapping, **kwarg)/dict(iterable, **kwarg) | **kwargs – 关键字,mapping – 元素的容器,iterable – 可迭代对象创建一个字典。d 必须是一个序列 (key,value)元组 |
frozenset([iterable]) | 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素转换为不可变集合,如果不提供任何参数,默认会生成空集合 |
注:Python包含 6 中内建的序列,包括列表、元组、字符串、Unicode字符串、buffer对象和xrange对象
>>> tuple((2,'wade',True,None,[1,2,3]))
(2, 'wade', True, None, [1, 2, 3])
>>> tuple([2, 'wade', True, None, [1, 2, 3]])
(2, 'wade', True, None, [1, 2, 3])
>>> tuple('xiaoliangpeng')
('x', 'i', 'a', 'o', 'l', 'i', 'a', 'n', 'g', 'p', 'e', 'n', 'g')
>>> list([2, 'wade', True, None, [1, 2, 3]])
[2, 'wade', True, None, [1, 2, 3]]
>>> list((2, 'wade', True, None, [1, 2, 3]))
[2, 'wade', True, None, [1, 2, 3]]
>>> list('xiaoliangpeng')
['x', 'i', 'a', 'o', 'l', 'i', 'a', 'n', 'g', 'p', 'e', 'n', 'g']
>>> x=set('runoob')
>>> y=set('google')
>>> x,y
({'b', 'o', 'n', 'u', 'r'}, {'l', 'g', 'o', 'e'})#仍然是个集合
>>> x&y
{'o'}#运算结果都是集合
>>> x|y
{'n', 'b', 'l', 'g', 'u', 'r', 'o', 'e'}
>>> x-y
{'n', 'u', 'b', 'r'}
>>> z=set('wade',[1,2,3])#最多一个元素
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
z=set('wade',[1,2,3])
TypeError: set expected at most 1 arguments, got 2
>>> z=set({1:'wade',2:'anthony'})#可迭代序列字典
>>> print(z)
{1, 2}
>>> a=dict()#传入空字典
>>> print(a)
{}
>>> b=dict({1:'wade',2:'anthony'})#传入字典
>>> print(b)
{1: 'wade', 2: 'anthony'}
>>> a=[1,2,3,4,5]#可迭代序列但没有字典可捕捉的键-值
>>> print(dict(a))
Traceback (most recent call last):
File "<pyshell#45>", line 1, in <module>
print(dict(a))
TypeError: cannot convert dictionary update sequence element #0 to a sequence
>>> a=dict(xiao='123',liang=123,peng=True)#传入关键字
>>> print(a)
{'xiao': '123', 'liang': 123, 'peng': True}
>>> a=dict([('wade',1,2,True),(2,3,5,'anthony')])#元组长度最多为2
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
a=dict([('wade',1,2,True),(2,3,5,'anthony')])
ValueError: dictionary update sequence element #0 has length 4; 2 is required
>>> a=dict([(1,2),(3,4)])#将一个或多个元组转换成字典
>>> print(a)
{1: 2, 3: 4}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))# 映射函数方式来构造字典
{'one': 1, 'two': 2, 'three': 3}
>>> frozenset(range(10))# 生成一个新的不可变集合
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
>>> frozenset('runoob')# 创建不可变集合
frozenset({'b', 'o', 'n', 'u', 'r'})
>>> frozenset()#生成一个空集合
frozenset()
chr(x) | x可以是10进制也可以是16进制的形式的数字,用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符,返回值是当前整数对应的 ASCII 字符 |
---|
unichr(x) | unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符 |
ord(x) | 将一个字符转换为它的整数值,chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常 |
hex(x) | 将一个十进制整数x转换为一个十六进制字符串,以字符串形式表示 |
oct(x) | 一个整数转换成8进制字符串 |
>>> chr(48)
'0'
>>> chr(97)
'a'
>>> chr(0)
'\x00'
>>> ord('a')
97
>>> ord('2')
50
>>> ord('67'
Traceback (most recent call last):
File "<pyshell#71>", line 1, in <module>
ord('67')
TypeError: ord() expected a character, but string of length 2 found
>>> ord('s')
115
>>> hex(1000)
'0x3e8'
>>> hex(255)
'0xff'
>>> oct(1555)
'0o3023'
>>> oct(16)
'0o20'
2.数学函数
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。
Python math 模块提供了许多对浮点数的数学运算函数。
Python cmath 模块包含了一些用于复数运算的函数。
cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
---|
ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 ,ceil()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法 |
exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) | 返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
math.log(x[, base]) | x – 数值表达式,base – 可选,底数,默认为 e如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[, z]) | 返回 xy(x的y次方) 的值,如果z存在,则再对结果进行取模,其结果等效于pow(x,y) %z |
round(x [,n]) | 回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数 |
sqrt(x) | 返回数字x的平方根 |
>>> abs(-123655.455)
123655.455
>>> import math
>>> math.ceil(-5.3)
-5
>>> math.exp(2)
7.38905609893065
>>> math.exp(100.12)
3.0308436140742566e+43
>>> math.fabs(math.pi)
3.141592653589793
>>> math.floor(math.pi)
3
>>> math.log(100,10)
2.0
>>> math.log(10,2)
3.3219280948873626
>>> math.log10(1000)
3.0
>>> a='1,2,3,4'
>>> max(a)
'4'
>>> a=[(1,2,4),(1,4,5),(6,7)]
>>> max(a)#映射下去元素不够的话不取最大值,取前面元素够为止
(6, 7)
>>> min(a)
(1, 2, 4)
>>> a=[(1,2,4),(1,4),(6,7)]
>>> min(a)#映射下去元素不够也要取最小值,即使单个也取值,最终取值长度为最大
(1, 2, 4)
>>> max(a)
(6, 7)
>>> a=[('xiaol','asd'),('sdf','dfgh')]#按ascii码进行排序
>>> max(a)
('xiaol', 'asd')
>>> a={1:2,2:'aassd'}##比较字典里面的最大值,会输出最大的键值
>>> max(a)
2
>>> a=100.72
>>> math.modf(a)
(0.7199999999999989, 100.0)
>>> type(math.modf(a))
<class 'tuple'>
>>> pow(10,2,30)
10
>>> math.pow(10,2,30)
Traceback (most recent call last):
File "<pyshell#107>", line 1, in <module>
math.pow(10,2,30)
TypeError: pow expected 2 arguments, got 3
>>> math.pow(10,2)
#pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float,且只能有2个参数了
100.0
>>> round(80.265433,4)
80.2654
>>> round(-23.25656,2)
-23.26
>>> math.sqrt(36)
6.0
注:以上数学函数不需要调用math模块可直接使用的有abs()/max()/min()/pow()/round()
3.随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
import random random.choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数 ,choice() 方法返回一个列表,元组或字符串的随机项 |
---|
import random random.randrange([start,] stop [,step]) | start – 指定范围内的开始值,stop – 指定范围内的结束值,不包含在范围内,step – 指定递增基数,包含在范围内,返回指定递增基数集合中的一个随机数,基数缺省值为1 |
import randomrandom.random() | 返回随机生成的一个实数,它在[0,1)范围内 |
import randomrandom.seed ([x]) | x – 改变随机数生成器的种子seed,可以在调用其他随机模块函数之前调用此函数 |
import randomrandom.shuffle (lst ) | lst – 可以是一个列表,将序列的所有元素随机排序,该函数没有返回值 |
import random random.uniform(x, y) | x – 随机数的最小值,包含该值,y – 随机数的最大值,不包含该值;返回一个浮点数 N,取值范围为如果 x<y 则 x <= N <= y,如果 y<x 则y <= N <= x。uniform() 方法将随机生成下一个实数,它在 [x, y] 范围内 |
>>> import random #随机数函数全部基于random模块
>>> random.choice('wadeanthony')
't'
>>> type(random.choice('wadeanthony'))
<class 'str'>
>>> random.randrange(100,1000,2)
776
>>> random.random()
0.9034301339274696
>>> random.seed(11)
>>> random.random()
0.4523795535098186
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.seed(11)
>>> random.random()
0.4523795535098186
>>> list1=[1,'123','wade',True,[1,2,3]]
>>> random.shuffle(list1)
>>> print(list1)
['wade', 1, '123', True, [1, 2, 3]]
>>> print(list1)
['wade', 1, '123', True, [1, 2, 3]]
>>> random.shuffle(list1)
>>> print(list1)
[[1, 2, 3], 'wade', '123', True, 1]
>>> random.uniform(5,10)
5.470617281146092
>>> random.uniform(-5,-10)
-6.517006313122628
4.三角函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019052715423646.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9fbGlhbmdwZW5n,size_16,color_FFFFFF,t_70)
注:所有函数均在math模块调用下使用,且acos/asin(x)中的x在-1到1之间(数学),否则产生一个错误
5.数学常量
PI | 数学常量 PI(圆周率,一般以π来表示) |
---|
e | 数学常量 e,e即自然常数(自然常数) |