(一)整数类型
整数关型:表示的数值是没有小数部分的数值,包含正整数、负整数和0
print('-------整数型---------')
# 整数可以表示为二进制,十进制,八进制,十六进制
print('十进制:', 118) # 十进制(结果为118)
print('二进制:', 0b1110110) # 二进制以0b开头(结果为118)
print('八进制:', 0o166) # 八进制以0o开头(结果为118)
print('十六进制:', 0x76) # 十六进制以0x开头(结果为118)
(二)浮点数类型
*浮点数类型*:**表示带有小数点的数值,由整数部分和小数部分组成
注意事项:两个浮点类型的数在进行运算时,有一定的概率运算结果后增加一些“不确定的”尾数
Python中的复数与数学中的复数形式完全一致,由实部和虚部组成
在Python中实数部分使用**.real表示,虚数部分使用.imag**表示
print('-------浮点型---------')
height = 178.6
high = 10
print(height)
print(type(height))
print(high)
print(type(high))
X = 1.99E1413 # 带有E的科学计数法
print(X) # (结果为inf)
print(type(X)) # (结果为<class 'float'>)
print(0.1 + 0.2) # 不确定的尾数问题,结果为0.300000000000000Q4
print(round(0.1 + 0.2, 1)) # round函数,可以设置为保留一位小数,结果为0.3
n1 = 1.1
n2 = 2.2
print(n1 + n2)
# 因为浮点数值直接相加会存在不稳定,需要用到Decimal方法
from decimal import Decimal
a = Decimal('1.1')
b = Decimal('2.2')
print(a + b) # 结果为3.3
print(Decimal(n1) + Decimal(n2)) # 结果为3.3.300000000000000266453525910,因为n1和n2是浮点,所以结果还是浮点
print(Decimal('1.1') + Decimal('2.2')) # 结果为3.3,因为Decimal转化的是字符串
print(Decimal(a) + Decimal(b)) # 结果为3.3
print('-------复数类型的使用---------')
x=123+456j
print('实数部分:',x.real)# (结果为123.0)
print('虚数部分:',x.imag)# (结果为456.0)
(三)字符串类型
- 字符串类型连续的字符序列,可以表示计算机所能识别的一切字符
- 字符串的界定符:单引号、双引号、三引号
- 原字符:使转义字符失效的字符,r或R
- 字符串又被称为有序的字符序列,对字符串中某个字符的检索称为索引
print('---------------------字符串类型-----------------------')
# 单引号和双引号定义的字符串必须在同一行
# 三引号定义的字符串可以分布在连续的多行。可用三个单引号和三个双引号
str1 = '人生苦短,我用python'
str2 = "人生苦短,我用python"
str3 = """人生苦短,我用python"""
str4 = """人生苦短,
我用python"""
print(str1) # (结果为人生苦短,我用python)
print(str2) # (结果为人生苦短,我用python)
print(str3) # (结果为人生苦短,我用python)
print(str4) # (结果为人生苦短,
# 我用python)
print('-----------转义字符--------------')
# \n换行
# \t 一个制表位8个字符,剩下补充空格。用8去减余多少就要空多少个空格。
print('hello\nworld') # \n后面的内容开始换行
print('hello\tworld') # 这里5位,所以这里空了3个空格(hello world)
print('hello6\tworld') # 这里6个,所以这里空了2个空格 (hello6 world)
print('hello67\tworld') # 这里7个,所以这里空了1个空格(hello67 world)
print('hello678\tworld') # 这里8个,余0,因为到下一个制表位,空4个(hello678 world)
print('hello678world') # 这里8个,余0,因为到下一个制表位,world是5个字符,所以空3个空格(hello678 world)
print('1234\tworld') # 因为前面刚好4位,所以空4个空格(1234 world)
print('hello\rworld') # 覆盖world前面的内容(world)
print('hello\bworld') # 往左移动一位,覆盖那一位(hellworld)
print('-------------特殊性----------------')
print('http:\\ww.baidu.com') # \\会有一个\被转义(结果为http:\ww.baidu.com)
print('http:\\\\ww.baidu.com') # \\会有一个\被转义,所以只能四个\才能会显示\\(结果为http:\\ww.baidu.com)
print('老师说:\'大家好\'') # 因为'号会被认为是字符串号,需要\来转义,否则会报错(结果为老师说:'大家好')
# 原字符,不希望字符串中的转义字符起作用,就是用原字符,就是在字符串之前加上r或者R
# 注意:最后一个字符不能是反斜杆\,否则报错
print(r'hello\nworld') # (结果为hello\nworld)
(四)布尔类型
用来表示“真”值或“假”值的数据类型。
在Python中使用标识符True或False表示布尔类型的值
True表示整数1,False表示整数0
布尔值为False的情况如下:
- False 或者是None
- 数值中的0,包含0,0.0,虚数0
- 空序列,包含空字符串、空元组、空列表、空字典、空集合
- 自定义对象的实例,该对象的_bool_()方法返回False或_len_()方法返回0
print('---------------------布尔类型-----------------------')
f6 = True
f7 = False
print(float(f6)) # bool类型转float类型数据,可以正常转换,true为1.0(结果为1.0)
print(float(f7)) # bool类型转float类型数据,可以正常转换,false为0.0(结果为0.0)
print(int(f6)) # bool类型转float类型数据,可以正常转换,false为1(结果为1)
print(int(f7)) # bool类型转float类型数据,可以正常转换,false为0(结果为0)
print(bool(18)) # 非0的布尔值都为True(结果为True)
print(bool(0)) # (结果为False)
print(bool(0.0)) # (结果为False)
print(bool(False)) # (结果为False)
print(bool(None)) # (结果为False)
print(bool('')) # (结果为False)
print(bool([])) # 空列表(结果为False)
print(bool(list())) # 空列表(结果为False)
print(bool(())) # 空元组(结果为False)
print(bool(tuple())) # 空元组(结果为False)
print(bool({})) # 空字典(结果为False)
print(bool(dict())) # 空字典(结果为False)
(五)数据类型转换
分为隐式转换和显示转换
print('---------------------数据类型转换-----------------------')
x = 10
y = 3
z = x / y
print(z, type(z)) # 隐式转换,通过运算隐式的转了结果的类型(结果为3.3333333333333335 <class 'float'>)
# float类型转成int类型,只保留整数部分
print('float类型转成int类型:', int(3.14)) # (结果为3)
print('float类型转成int类型:', int(3.9)) # (结果为3)
print('float类型转成int类型:', int(-3.14)) # (结果为-3)
print('float类型转成int类型:', int(-3.9)) # (结果为-3)
# 将int转成float类型
print('将int转成float类型:', float(10)) # (结果为10.0)
# 将str转成int类型
print(int('100') + int('200')) # (结果为300)
# 将字符串转成int或float时报错的情况
# print(int('18a'))# 报错
# print(int('3.14'))# 报错,即使为浮点数值的字符串
# chr() ord()一对
print(ord('杨')) # 杨在unicode表中对应的整数值 (结果为26472)
print((chr(26472))) # 26472整数在unicode表中对应的字符是什么(结果为杨)
# 进制之间的转换操作,十进制与其它进制之间的转换
print('十进制转成十六进制:', hex(26472))#(结果为十进制转成十六进制: 0x6768)
print('十进制转成八进制:', oct(26472))#(结果为十进制转成八进制: 0o63550)
print('十进制转成二进制:', bin(26472))#(结果为十进制转成二进制: 0b110011101101000)