一、数据类型
数据类型分为数值型、布尔型、字符串型等
1.1数值类型
数值类型可以分为整数类型、浮点数类型、复数类型
1.1.1整数类型
(1)概念:整数类型指数值是没有小数部分的,包含正整数、负整数和0
(2)进制种类:十进制--->234、56;
二进制--->由0b或0B开头--->由字符0或1组成,0b10101,0B10101;
八进制--->0o或0O开头--->由字符0到7组成,0o763,0O765;
十六进制--->0x或0X开头--->由字符0大片9,a到f或A到F组成,0x987A,0X987A
整数类型是python当中的不可变数据类型
示例:
#整数的四种表现形式
num=123#默认十进制表示整数
num2=0b101011#使用二进制表示整数
num3=0o23457#使用八进制表示整数
num4=0X3459Af9#使用十六进制表示整数
print(num)
print(num2)
print(num3)
print(num4)
结果:
1.1.2浮点型
(1)概念:浮点数类型表示带有小数点的数值,由整数部分和小数部分组成
(2)注意:两个浮点类型的数在进行运算时,有一定的概率运算结果后增加一些“不确定的”尾数
浮点类型是python当中的不可变数据类型
示例:
height=183.6
print(height)
print('height的数据类型时:',type(height))#type()查看变量的数据类型
x=10
y=10.0
print('x的数据类型时:',type(x))#int表整数
print('y的数据类型时:',type(y))#float表小数
x=1.99E14156
print('科学计数法:',x,'x的数据类型时:',type(x))
#不确定的尾数问题
print(0.1+0.2)
#使用round对结果保留一位小数
print(round(0.1+0.2,1))
结果:
1.1.3复数型
python中的复数与数学中的复数形式一致,由实部和虚部组成;
python中的实数部分用.real表示,虚数部分用.imag表示
x=123+345j
print('实数部分是:',x.real)
print('虚数部分是:',x.imag)
结果:
1.2字符串类型
(1)概念:字符串类型是连续的字符序列,可以表示计算机所能识别的一切字符
(2)字符串的界定符:单引号、双引号、三引号
city='西安'
address="陕西省西安市"
print(city)
print(address)
#多行字符串
info='''
地址:陕西省西安市
电话:xxxxxxxxxxx
收件人:小梁
'''
info2='''
地址:陕西省西安市
电话:xxxxxxxxxxx
收件人:小梁
'''
print(info)
print('------------')
print(info2)
输出结果:
(3)转义字符:
转义字符 | 描述说明 |
\n | 换行符 |
\t | 水平制表位,用于横向跳到下一个制表位 |
\'' | 双引号 |
\' | 单引号 |
\\ | 一个反斜杠 |
原字符:使转义字符失效的字符,r或R
print('陕西')
print('很棒')
print('-----------')
print('陕西\n很棒')#遇到\n即换行,可以连续换多行
print('陕\n西\n很\n棒')
print('--------------')
print('hello\toooo')
#从结果可以看到,\t空了三个位置,因为一个制表位是8个字符,hello占了三个字符,还剩下3个位置
print('hellooooo')
print('student\tttt')
print('studentttt')
print('--------------')
print('我说:\'小狗可爱\'')
print('我说:\"小狗可爱\"')
print('-------------')
#原字符:使转义字符失效的字符,r或R
print(r'陕\n西\n很\n棒')
print(R'陕\n西\n很\n棒')
输出结果:
字符串类型也是不可变数据类型
1.2.1索引和切片
- 字符串又被称为有序的字符序列,对字符串中某个字符的检索成为索引;
- 对字符串中某个子串或区间的检索成为切片
切片的语法结构:字符串或字符串变量[N:M]
#索引
a='HELLOWORLD'
print(a[0],a[-10],a[4],a[9],a[-1])#序号0和序号-10表示的是同一个字符
print('陕西很美'[3])
print('陕西很美'[-1])
print('-----------------')
#切片
print(a[2:7])#从2开始到7结束,不包含7,正向递增
print(a[-8:-3])#反向递减
print(a[:4])#默认N从0开始
print(a[5:])#默认M是切到字符串的末尾
输出结果:
1.2.2常用的字符操作
- x+y--->将字符串x和y连接起来
- x*n或n*x--->复制n次字符串x
- x in s--->如果x是s的字串,结果为True,否则结果为False
x='莲花楼'
y='好看'
print(x+y)#连接两个字符串
print(x*5)#对x这个字符串的内容复制10次
print(3*y)
print('莲花' in x)
print('荷花' in x)
输出结果:
1.3布尔类型
(1)概念:用来 表示“真”或者“假”的数据类型
在python中使用标识符True或False表示布尔类型的值
True表示整数1;False表示整数0
x=True
print(x)
print(type(x))#bool表示布尔型
print(x+1)#True表示1
print(False+1)#False表示0
输出结果:
(2)布尔值为False的情况:
- False或者是None
- 数值中的0,包含0,0.0,虚数0
- 空虚列,包含空字符串、空元组、空列表、空字典、空集合
- 自定义对象的实例,该对象的__bool__()方法返回False或__len__()方法返回0
print('-----------')
print(bool(21))#测试整数21的布尔值
print(bool(0),bool(0.0))
#从结果知道,非零整数的布尔值位True
print('------------')
print(bool('莲花楼好看'))#True
print(bool(''))#False
#即所有非空字符串的布尔值都是True
print('------------')
print(bool(False))
print(bool(None))
输出结果:
二、数据类型之间的转换
(1)隐式转换
比如,直接输出一个print(0.1+0.2)
(2)显示转换
函数 | 描述说明 |
Int(x) | 将x转换成整数类型 |
float(x) | 将x转换成浮点整数型 |
str(x) | 将x转成字符串 |
chr(x) | 将整数x转换成一个字符 |
ord(x) | 将一个字符x转换成其对应的整数值 |
hex(x) | 将一个整数x转换成一个十六进制字符串 |
oct(x) | 将一个整数x转换成一个八进制字符串 |
bin(x) | 将一个整数x转换成一个二进制字符串 |
x=10
y=3
z=x/y#在执行运算结果的时候,将运算结果赋值给z
print(z,type(z))#隐式转换,通过运算隐式的转了结果的类型,两个整数他的结果是浮点型
print('-------1------')
#将float类型转成int类型,只保留整数部分
print(int(2.12))
print(int(-2.12))
print(int(2.9))
print(int(-2.9))
print('-------2-----------')
#将int类型转成float类型
print(float(12))
print('------3--------')
#将str转成int类型
print(int('100')+int('200'))#字符串100转成整数型为整数100,字符串200转成整数型为整数200,运算后为300
print('-------4--------')
#将字符串转成int或float时报错的情况
#print(int('12q'))#报错,字符串12q不是一个整数类型`
#print(int('1.23'))#报错,字符串1.23不是一个整数类型
#print(float('12q.23'))#报错,q没有办法转
#chr() ord()
print(ord('梁'))#梁在unicode表中对应的数值是26753
print(chr(26753))#26753整数在unicode表中对于的字符是梁
print('---------5---------')
#进制之间的转换操作,十进制与其他进制之间的转换
print('十进制转成十六进制:',hex(23456))
print('十进制转成八进制:',oct(23456))
print('十进制转成二进制:',bin(23456))
print(type(hex(23456)))#所以转换之后的结果都是字符串类型
输出结果:
三、eval函数
(1)概念:
是python中的内置函数,用于去掉字符串最外侧的引号,并按照python语句方式执行去掉引号后的字符串
- eval()函数经常和input()函数一起使用(它也是类型转换函数)
(2)eval的语法格式
变量=eval(字符串)
s='1.23+3'#s是字符串
print(s,type(s))
a=eval(s)#使用eval函数去掉s这个字符串中左右的引号,执行了加法运算
print(a,type(a))
#eval函数经常和input函数一起使用,用来获取用户输入的数值
age=eval(input('输入年龄:'))#将字符串类型转成int类型,相当于int(age)
print(age,type(age))
height=eval(input('输入身高:'))
print(height,type(height))
print('-------------')
hello='龙年大吉'
print(hello)#hello是变量名
print(eval('hello'))#eval去掉引号,变成hello,而hello是这段代码中的变量,变量的值是龙年大吉
输出结果: