python 0x0101_python数据结构之数字和字符串

python数据类型:

Number(数字)

String(字符串)

List(列表)

Dictonary(字典)

Tuple(元组)

sets(集合)

其中数字、字符串、元组是不可变的,列表、字典是可变的。

对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收)。

数字

int:整数

1.正负数

2.十六进制(表示方式为0x或者0X开头。例如:0xff)

3.八进制(表示方式为0o或者0O开头。例如:0o632457)

4.二进制 (表示方式为0b或者0B开头。例如:0b101100)

fraction:分数

float:浮点数

complex:复数

bool:布尔型(特殊的数值类型,只有True和False两个值)

进制转换

整数转其他进制

使用bin(i),oct(i),hex(i)函数可以将十进制数分别转换为二进制,八进制,十六进制

>>> s=10

>>> bin(s)

'0b1010'

>>> oct(s)

'0o12'

>>> hex(s)

'0xa'

使用int(str,base)可以将非十进制的数转换成整数

,其中str是文本形式的数字,base可以为2,8,16数字,分别代表二进制,八进制,十六进制,最高到36位,最低为2

>>> int('0b10010',2)

18

>>> int('0o52415',8)

21773

>>> int('0x134ab',16)

79019

>>> int('s',32)

28

>>> int('yz',36)

1259

当然也可以进行16进制转二进制八进制,八进制可以转其他进制

>>> hex(0b1001)

'0x9'

>>> hex(0o1234)

'0x29c'

>>> oct(0b101)

'0o5'

>>> oct(0xff)

'0o377'

>>> bin(0xff)

'0b11111111'

>>> bin(0o7777)

'0b111111111111'

各类运算符

算数运算符:+,-,*,/,%.//,**

比较运算符:==,!=,>,=

赋值运算符:=,+=,-=,*=,/=,%=,//=.**=

位运算符:&,|,^,~,<>

逻辑运算符:and,or,not

成员运算符:in,not in

身份运算符:is,is not

>>> a=12

>>> f=~a

>>> f

-13

>>> bin(f)

'-0b1101'

>>> bin(a)

'0b1100'

>>> bin(a<<1)

'0b11000'

>>> bin(a>>1)

'0b110'

>>> list=[1,2,3,4,5]

>>> a=3

>>> print (a in list)

True

>>> print (a not in list)

False

>>> a=['1,2,3,4,5']

>>> b=a

>>> print (b is a )

True

>>> print (b is not a )

False

>>> b=a[:]

>>> print (b is a) #这是因为字符串是不可变的

False

>>> print (id(a))

42473480

>>> print (id(b))

42485000

运算符优先级

** (优先级最高的是幂运算)

~,+,- (加和减都是一元运算符)

*,/,%,//

+,-

<>

&

^,|

<=,>=,

==,!=

=,+=,-=,*=,/=,%=,//=,**=

数学函数的应用

power:幂函数,功能与运算符**一样

>>> pow(2,3)

8

sqrt:取当前数的平方根

>>> import math

>>> math.sqrt(4)

2.0

max:最大值

>>>max(2,3,4,5,1,9,6)

9

min:最小值

>>> min(2,3,4,5,1,9,6)

1

abs与fabs:取绝对值,fabs取出的是浮点数

>>> abs(-1)

1

>>> math.fabs(-1)

1.0

round:四舍五入(当小数为5的时候会向靠近偶数的一端进)

>>> round(3.5)

4

>>> round(2.5)

2

>>> round(2.54)

3

>>> round(2.45)

2

ceil:向上取整

>>> math.ceil(1.7)

2

>>> math.ceil(1.3)

2

floor:向下取整

>>> math.floor(1.7)

1

>>> math.floor(1.3)

1

cmp:python2中的比较函数,当前面数值大返回-1,一样大返回0,后面数值大返回1

>>> cmp(1,2)

-1

>>> cmp(1,1)

0

>>> cmp(2,1)

1

随机数函数

- 取0-1之间的随机小数:

>>> import random

>>> random.random()

0.18001643527271916

- 取自定义数里的随机数:(可以取多个元素)

>>> random.choice([1,2,3,4,5])

2

>>> random.choice([1,2,3,4,5])

3

>>> random.sample([1,2,3,4,5,6,7,8,9],2)

[3, 7]

>>> random.sample([1,2,3,4,5,6,7,8,9],3)

[4, 9, 3]

- 随机打乱顺序:

>>> a=[1,2,3,4,5,8]

>>> random.shuffle(a)

>>> a

[1, 8, 2, 3, 4, 5]

- 获取N位随机数:(二进制)

>>> random.getrandbits(6)

55

>>> random.getrandbits(6)

48

>>> random.getrandbits(7)

104

modf:把浮点数的整数位和小数位单独取出来

>>> math.modf(1.4)

(0.3999999999999999, 1.0)

>>> math.modf(1.5)

(0.5, 1.0)

>>> math.modf(2.8)

(0.7999999999999998, 2.0)

>>> math.modf(3.1)

(0.10000000000000009, 3.0)

log:指数函数。默认e为底数,结果为浮点数。也可以自定义底数

>>> math.log(4,2)

2.0

>>> math.log2(4)

2.0

>>> math.log10(100)

2.0

>>> math.log(100,10)

2.0

格式化输出:格式化输出保留有效数字,格式化输出的是字符串

>>> s=format(2.345,'0.2f')

>>> s

>>> type (s)

>>> round(2.5)

2

>>> format(2.5,'0.0f')

'2'

Decimal模块:在使用浮点数的时候,因为计算机是使用二进制表示,所以会出现精度问题,可以使用Deciamal模块来解决精度问题

>>> a=4.2

>>> b=2.1

>>> a+b

6.300000000000001

>>> from decimal import Decimal

>>> a=Decimal('2.1')

>>> b=Decimal('4.2')

>>> a+b

Decimal('6.3')

格式化输出——format:使用format进行进制转换

>>> a=20

>>> bin(a)

'0b10100'

>>> oct(a)

'

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值