Python基础入门
一、数据类型
数值型
1、整数类型
num=987 # 默认十进制,表示整数
num2=0b1010101 #使用二进制表示整数
num3=0o765 #使用八进制表示整数
num4=0x87ABF # 使用十六进制表示整数
print(num)
print(num2)
print(num3)
print(num4)
2、浮点数类型
height=187.6 # 身高
print(height)
print(type(height)) # 查询height的数据类型x=10
y=10.0
print('x的数据类型是:',type(x))
print('y的数据类型是:',type(y))
print('------------------------')
# 浮点数不确定的尾数问题
print(0.1+0.2) # 0.30000000000000004print(round(0.1+0.2,1)) # 保留1位小数
3、复数
# 复数类型在科学计算中十分常见
x=123+456j
print('实数部分:',x.real)
print('虚数部分:',x.imag)
字符串
# 单行字符串
city='北京'
address="北京市海淀区海淀文教产业园"
print(city)
print(address)print('------------------')
#多行字符串
info='''地址:北京市海淀区海淀文教产业园
收件人:杨淑娟
手机号:18600000000'''
print(info)info2="""地址:北京市海淀区海淀文教产业园
收件人:杨淑娟
手机号:18600000000"""
print('------------------')
print(info2)
转义字符也是字符串类型,只不过是一种特殊的字符串,由反斜杠符(\)和它后面相邻的一个字符组合而成,用于表达一个新的含义,如“\n”表示换行操作。
print('北京')
print('欢迎你')print('------------------')
print('北京\n欢迎你') # 遇到\n即换行,可连接续换多行
print('北\n京\n欢\n迎\n你')
print('------------')
print('北京北京\t欢迎你')
print('hellooooo')
print('--------------------')
print('老师说:\'好好学习,天天向上\'')
print('老师说:\"好好学习,天天向上\"')print(r'北\n京\n欢\n迎\n你')
print(R'北\n京\n欢\n迎\n你')
字符串又被称为有序的字符序列,对字符串中某个字符的检索称为索引,对于一个长度为N的字符串,正向检索的序号有效范围为[0,N-1],反向递减的序号有效范围为[-1,-N]
s='HELLOWORLD'
print(s[0],s[-10]) # 序号0和序号码0表示的是同一个字符print('北京欢迎你'[4])
print('北京欢迎你'[-1])print('---------------------')
print(s[2:7]) # 正向递增序列
print(s[-8:-3]) # 反向递减序列
#N默认从0开始
print(s[:5])#M 默认,是切到字符串的结尾
print(s[5:])
x='2022年'
y='北京冬奥会'
print(x+y) # 拼接字符串x与y
print(10*x) # x字符串的内容输出10次
print(x*10)print('北京' in y) #‘北京’是否是 “北京冬奥会”的子字符串
print('上海' in y)
布尔类型
x=True
print(x)
print(type(x))
print(True+10) # 1+10
print(False+10) # 0+10print('-----------------------------')
# 测试对象的bool值
print(bool(18)) #True
print(bool(0),bool(0.0)) #False
# 总结, 非0的数值型布尔值都为True,
print(bool('北京欢迎你')) #True
print(bool('')) #空字符串的布尔值为False
print(bool(False))
print(bool(None))
二、数据类型之间的转换
print(True+10)的输出结果为11,True是布尔类型,10是整数类型,结果11是整数类型,所以在这里发生了一个隐式类型的转换,将布尔类型转换成了整数类型参与加法运算。通过数学运算也可以隐式的将整数类型转成浮点数类型,比如3+4.14结果为7.14。除了这种隐式的类型转换,还可以通过内置的函数进行显示的类型转换,比如说将字符串类型转换成整数类型等。
x=10
y=3
z=x/y # 在执行除法运算,将运算的结果赋值给z
print(z,type(z)) # 隐式转换, 通过运算隐式的转了结果的数据类型# float类型转换成int类型,只保留整数部分
print('float类型转换成int类型',int(3.14))
print('float类型转换成int类型',int(3.9))
print('float类型转换成int类型',int(-3.14))
print('float类型转换成int类型',int(-3.9))# 将int类型转换成float类型
print('将int类型转换成float类型',float(10))#将str类型转成int类型
print(int('100')+int('200'))#将str类型转成float类型
print('将str类型转成float类型',float('3.14'))#将str转成int或float类型报错的情况
#print(int('18a')) #ValueError: invalid literal for int() with base 10: '18a'
#print(int('3.14')) #ValueError: invalid literal for int() with base 10: '3.14'#将str转成float类型报错的情况
#print(float('45a.987')) #ValueError: could not convert string to float: '45a.987'#chr()与ord()函数
print(ord('杨')) #26472 ,将字符“杨”转成对应的整数 值
print(chr(26472)) #杨 将整数 值转成对应的字符# 进制之间的转换操作 十进制与其它进制之间的转换
print('十进制转成十六进制:'+hex(26472))
print('十进制转成八进制:'+oct(26472))
print('十进制转成二进制:'+bin(26472))
在将str类型转换成int或float类型的时候会有一些报错的情况,在待转化的字符串中含有非数字的情况转换结果将抛出异常,如示例3-12中print(int(‘18a’)),在字符串”18a”中有一个非数字的字符a,那么转换将无法进行,抛出一个ValueError的异常。print(float('45a.987'))同样转换失败,因为字符串”45a.987中含有一个非数字的字符a”。
在数字串”3.14”转换成int类型时同样抛出ValueError的异常,因为数字串”3.14”实际上是一个非整数的数字串,所以无法转换int类型。
eval函数
eval()函数是Python中的内置函数,用于去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符串。
语法格式:
变量=eval(字符串)
eval()函数经常和input()函数一起使用,用来获取用户输入的数值型。eval()函数的使用如示例3-13,运行效果如图3-15所示。
s='3.14+3'
print(s,type(s))
x=eval(s) # 执行了加法运算
print(x,type(x))#eval()函数经常和input()函数一起使用,用来获取用户输入的数值型
age=eval(input('请输入您好的年龄:')) #将字符串类型转成了int类型,相当于int(age)
print(age,type(age))height=eval(input('请输入您的身高:')) #将字符串类型转成了float类型,相当于 float(height)
print(height,type(height))
#hello='北京欢迎你'
#print(hello)
#使用eval报错的情况
print(eval('hello')) #NameError: name 'hello' is not defined. Did you mean: 'help'?