python3支持的数值类型_Python3中的数值类型

1:Python中的数值类型介绍

Python数值类型为不可变类型。

Python中提供了大量的数值类型:它提供了整数(包括正整数,负整数,和零)以及浮点数(带有小数部分的数字)作为其基本类型,我们还可以使用十六进制,八进制,二进制字面量来表示整数;还提供了复数类型;并且允许整数具有无限的精度(只要内存空间足够大);

Python完整的数值类型工具如下:

整数和浮点对象

复数对象

小数:固定精度对象

分数:有理数对象

集合:带有数值计算的集合体

布尔值:真和假

内置函数和模块:round、math、random等

无限制整数精度、表达式、八进制、二进制等

Python中的数值字面量和构造函数:

字面值

说明

345,-100,0,999999999999999

正整数,负整数,和零,整数(无大小限制)

3.14,3.,3.14e-10,3E100,3.0e+100

浮点数

0o1750,0x3e8,0b1111101000

八进制,十六进制,二进制的字面量

5+6j,5.0+6.0j,10j

复数字面量

set('ixusy88'),{1,2,3}

集合

Decimal('3.0'),Fraction(1,3)

小数,分数扩展类型

bool(a),True,False

布尔类型和字面量

2:Python提供的内置数值工具

内置数值工具:

运算符,函数

说明

表达式运算符

+,-,,/,//,>>,*,&等等

内置数学函数

pow,abs,round,int,hex,bin

工具模块

Random,math

2.1: 表达式运算符

a=100

b=3

print('a=',a)

print('b=',b)

print('*'*33)

# 算数运算

print('算数运算:')

print('a+b=',a+b)

print('a-b=',a-b)

print('a*b=',a*b)

print('a/b=',a/b) # 真除法,会保留后面的小数点 100/3 = 33.333333

print('a//b=',a//b) # 向下取整除法 100//3 = 33 5//-2 = -3

print(r'a%b=',a%b) # 求余数 100%3 = 1

print('a**b=',a**b) # 幂运算

print('*'*33)

print('位运算:')

print(bin(a),a.bit_length()) # 打印a的二进制数据

print(bin(b),b.bit_length()) # 打印b的二进制数据

'''

a 0b1100100

b 0b0000011

| 0b1100111 (a|b) 对应位有一个为1,结果就为1,否则为0

^ 0b1100111 (a^b) 对应位相同为0,否则为1 (速记:同0)

& 0b0000000 (a&b) 对应位有一个为0,结果就为0,否则为1

b 0b0000011

~b 0b1111100

'''

print('a|b=',a|b)

print('a^b=',a^b)

print('a&b=',a&b)

print('*'*33)

2.2: 内置数学函数

'''

小技巧:

1:如果不知道某个函数怎么使用,那么可以使用help函数打印出函数的详细信息

如:print(help(pow))

2:查看字符串的所有方法

print([item for item in dir(str) if not item.startswith('__') ])

3:查看所有的内置函数,然后再使用help函数查看。

print([item for item in dir(__builtins__) if not item.startswith('__') and item[0].islower() ])

'''

a = 5

b = 3

print('*'*50)

print('pow(5,2)=',pow(5,2),'5**2=',5**2) # pow 幂指数, 2个参数的时候,同**

print('abs(-100)=',abs(-100))

#print(help(round)) # 自己看说明;大概就是保留多少位小数;

print(round(10.619,2)) # 没有第二个参数的时候,默认是0,表示返回一个整数;第二个参数有值的时候,表示多少位小数

print('*'*50)

print('int:')

# int 把一个数字或者字符串转换为一个整数

#

# print(help(int)) # 自己看说明,

print(int()) # 没有参数返回0

print(int(10)) # 一个数字参数返回对应的整数

print(int('100')) # 输出100; 一个字符串参数,表示字符串中数字为10进制数字,返回对应的十进制整数

print(int('100',2)) # 输出4,表示二进制 0b100;两个参数:第一个字符串,第2个为前面字符串中字符的进制数,返回对应的十进制整数

print(int('100',3)) # 输出9,表示3进制 '100' ();

print(int('100',8)) # 输出64,表示8进制 0o100;

print(int('100',16)) # 输出256,表示16进制 0x100;

# int(x [,base ])

x = '100'

print(int(x, 2)) # 输出 4 ,表示x中,引号中的值为2进制数,把其转换为10进制数(2进制数100 转换为10进制数4)

print(int(x, 10)) # 输出 100,

print(int(x, 16)) # 输出256,16进制数100转换为10进制数 256

print('*'*50)

print('hex:')

# hex 把一个数字转换为16进制数,这个数字可以是2进制,8进制,10进制,16进制形式的数。

# print(help(hex))

print(hex(0b100))

print(hex(256))

print(hex(0o100))

print(hex(0x100))

print('*'*50)

print('bin:')

# bin 把一个数字转换为2进制数,这个数字可以是2进制,8进制,10进制,16进制形式的数。

# print(help(bin))

print(bin(0b100))

print(bin(256))

print(bin(0o100))

print(bin(0x100))

# print(dir(__builtins__))

x = '100'

# float(x)

print(float(x)) # 100.0

a = 200

print(str(a), type(str(a))) #200

print(repr(a), type(repr(a))) #200

s = 'hello'

print(s,str(s)) # hello hello

print(s,repr(s)) # hello 'hello'

s = '10 + 30'

print(s,str(s)) # 10 + 30 10 + 30

print(s,repr(s)) # 10 + 30 '10 + 30'

print(eval(str(s)),eval(repr(s))) #40 10 + 30

print(eval('10 - 20')) # -10

print(eval("'10 - 20'")) # 10 - 20

x = 97

print(x,chr(x)) # 97 a

x = 'a'

print(x,ord(x)) #a 97

x = 0x4e2d

print(x,chr(x)) # 20013 中

x = "中"

print(x,ord(x),hex(ord(x))) # 中 20013 0x4e2d

print(x,ord(x),x.encode('gbk')) # 中 20013 b'\xd6\xd0'

2.3: 向下取整除法与截断除法

import math

#print(help(math.floor))

#math.floor(x) 返回 <=x的整数

print(math.floor(3.5)) # 输出3

print(math.floor(-3.5)) # 输出-4

#print(help(math.trunc))

print(math.trunc(3.5)) # 3

print(math.trunc(-3.5)) # -3

print(7/2,7//2) # 3.5 3

print(7/-2,7//-2) # -3.5 -4 ; // 取小于结果的第一个整数

2.4: 随机函数

import random

# 查看所有方法

#print([item for item in dir(random) if not item.startswith('_') ])

#print(help(random.choice))

#在指定的系列内随机选取一个元素

#random.choice( seq ) seq -- 可以是一个列表,元组或字符串。

print(random.choice([1,4,8,3,8]))

print(random.choice((8,2,5,7)))

print(random.choice('itest'))

#print(help(random.randrange))

# random.randrange ([start,] stop [,step])

print(random.randrange(0,20,2)) # 在 0 ,2,4,6,。。。中随机取一个元素

print(random.randrange(1,20,2)) # 在 1 3 5 7 。。。。。

print(random.randrange(100)) # 0 到 99中随机选取一个

#print(help(random.randint))

print(random.randint(10,20))

print(random.random()) # 随机生成下一个实数,它在[0,1)范围内。

#random.seed(100) # 设置随机种子

#print(help(random.shuffle))

lst = [2,4,5,7,0,4,1]

random.shuffle(lst) # 对列表进行随机排序,即随机改变列表的顺序

print(lst)

random.shuffle(lst)

print(lst)

# 随机产生一个浮点数

print('random.uniform(5, 10):',random.uniform(5, 10))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值