程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Python的内置的对象模型(数据类型):1.总结和数字类型

发布于2020-02-24 22:22     阅读(487)     评论(0)     点赞(30)     收藏(5)



一、总结

  • 数字类型:intfloatcomplex
  • 布尔类型:bool
  • 序列类型:
    • 字符串类型:str
    • 列表类型:list
    • 元组类型:tuple
  • 字节串类型:bytes
  • 字典类型:dict
  • 集合类型:setfrozenset
  • 空类型:NoneType
  • 异常:ExceptionValueErrorTypeError
  • 文件
  • 其他可迭代对象
  • 编程单元
    在这里插入图片描述
    在这里插入图片描述

二、数字

1.整数int

(1)特点

  • 可正可负,没有取值范围限制,想算多大就算多大

(2)进制

表现形式:

  • 十进制:100
  • 二进制:以0b0B开头,0b101
  • 八进制:以0o0O开头,0o123
  • 十六进制:以0x0X开头,0x9a

把数字转化成字符串:

  • bin(obj):转换为二进制串
  • oct(obj):转换为八进制串
  • hex(obj):转换为十六进制串
a = 123
b = bin(a)
o = oct(a)
h = hex(a)
print(b)
print(type(b))
print(o)
print(type(o))
print(h)
print(type(h))
'''
0b1111011
<class 'str'>
0o173
<class 'str'>
0x7b
<class 'str'>
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

把字符串转化成数字:

  • int(str, n):将字符串str表示的n进制数转化成十进制的int
  • 自动过滤空白字符
print(int('0b1111011', 2))
print(int('1111011', 2))

print(int('0o173', 8))
print(int('173', 8))

print(int('0x7b',16))
print(int('7b',16))

print(int('\n\t   123   '))
print(int('\n\t   7b   ',16))
'''
都是123
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.浮点数float

  • (1)取值范围和小数精度基本无限制,可以忽略不计:数量级为-10的308次方到10的308次方,精度为10的-16次方
  • (2)不确定尾数:0.1+0.2=0.30000000000000004,一般发生在10的-16次方左右
    因为二进制表示小数,可以无限接近,但不完全相同
  • (3)科学记数法:<a>e<b>或者<a>E<b>表示a×10b a\times{10^b}
    4.3e-3表示4.3×103 4.3\times{10^{-3}},即0.0043
  • (4)函数round(x,d):对x四舍五入,d是小数截取位数
# 判断0.1 + 0.2 == 0.3
print(0.1 + 0.2)
'''
0.30000000000000004
'''
print((0.1 + 0.2)==0.3)
'''
False
'''
print(round(0.1 + 0.2, 1)==0.3)
'''
True
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3.复数complex

>>> a = 3+4j
>>> b = 5+6j
>>> c = a+b
>>> c
(8+10j)
>>> c.real					#查看复数实部
8.0
>>> c.imag					#查看复数虚部
10.0
>>> a.conjugate()			#返回共轭复数
(3-4j)
>>> a*2						#复数与整数乘法
(6+8j)
>>> a*b						#复数与复数乘法
(-9+38j)
>>> a/b						#复数除法
(0.6393442622950819+0.03278688524590165j)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

4.扩展关系

整数- >浮点数->复数。例如:123+4.0=127.0

5.数字分隔符

数字中间位置使用单个下划线作为分隔来提高数字的可读性。(满足这两个条件就随意划分)

>>> 1_000_000		# 整数int
1000000
>>> 1_2_3_4			# 整数int
1234
>>> 1_2.3_45		# 浮点数float
12.345
>>> 1_2 + 3_4j		# 复数complex
(12+34j)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

6.数值运算函数

函数:
(1)abs(x)

  • 整数int和浮点数float:绝对值
  • 复数complex:取模
print(abs(-12))
print(abs(-12.3))
print(abs(3+4j))
'''
12
12.3
5.0
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

(2)divmod(x,y):商余(以元组tuple(x//y, x%y)的形式同时输出商和余数)

print(divmod(10,3))
'''
(3,1)
'''
  • 1
  • 2
  • 3
  • 4

(3)pow(x,y[,z]):幂。z参数代表用幂结果取余

  • 无z:xy x^y,浮点数整数都行
  • 有z:xy%z x^y\%z,只能是整数
print(pow(2, 4))
print(pow(2.5, 2.0))
print(pow(2, 4, 3))
# print(pow(2.5, 2.0, 2))	# TypeError
'''
16
6.25
1
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(4)round(x[,d]):整数(没必要)和小数的四舍五入。d是保留小数位数,默认为0。

print(round(3.6))
print(round(-10.123, 2))
# print(round(5+4j))		# TypeError
'''
4
-10.12
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(5)max(...):最大值(只用于整数和小数)

print(max(1, 2.0, 5))
# print(max(3+4j, 5+6j))	# TyperError
'''
5
'''
  • 1
  • 2
  • 3
  • 4
  • 5

(6)min(...):最小值
(7)int(x):变整数

  • 浮点数float:截断小数部分,不是四舍五入
  • 字符串str:只有表示整数的才行
print(int(123.56))		# 将浮点数截断成整数
'''
123
'''

print(int("123"))		# 将表示整数的字符串化为整数
'''
123
'''

# print(int("123.56"))	# ValueError
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

(8)float(x):变小数

  • 整数int:单单加一位小数部分.0
  • 字符串str:表示小数整数都行
print(float(12))		# 整数变小数
'''
12.0
'''

print(float("1.23"))	# 将(表示小数)字符串str变为小数
'''
1.23
'''

print(float("1"))		# 将(表示整数)字符串str变为小数
'''
1.0
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

(9)complex(x):变复数

print(complex(4))
print(complex(4.9))
'''
(4+0j)
(4.9+0j)
'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

7.运算符

在这里插入图片描述

# 真除法/和整除//
>>> 3 / 5
0.6
>>> 3 // 5
0
>>> 3.0 / 5
0.6
>>> 3.0 // 5
0.0
>>> 13 // 10
1
>>> -13 // 10
-2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
# Python不支持++和--运算符,存在但实际上是另外的含义(正负号)
>>> i = 3
>>> ++i			#正正得正
3
>>> +(+3)		#与++i等价
3
>>> --i			#负负得正
3
>>> -(-i)		#与--i等价
3
>>> i++			#Python不支持++运算符,语法错误
SyntaxError: invalid syntax
>>> i--			#Python不支持--运算符,语法错误
SyntaxError: invalid syntax
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

PS:python没有++--的运算符,那就写a+=1

发布了433 篇原创文章 · 获赞 150 · 访问量 9万+


所属网站分类: 技术文章 > 博客

作者:232hdsjdh

链接:https://www.pythonheidong.com/blog/article/232438/a744bd2927be4e3e98bc/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)