数字类型转换以及函数全介绍

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.三角函数
在这里插入图片描述
注:所有函数均在math模块调用下使用,且acos/asin(x)中的x在-1到1之间(数学),否则产生一个错误
5.数学常量

PI数学常量 PI(圆周率,一般以π来表示)
e数学常量 e,e即自然常数(自然常数)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值