python的数据类型转换以及运算符

本节需要了解

  1. 保留字与标识符
  2. 理解Python中的数据类型
  3. 基本数据类型
  4. 数据类型之间的转换
  5. eval()函数
  6. 不同的进制数
  7. 运算符
  8. 运算符的优先级
  9. 课堂小任务

python的数据类型转换以及运算符_第1张图片

1. 保留字

true='真'
True='真'
  File "", line 2
    True='真'
    ^
SyntaxError: cannot assign to True

2. 查看保留字

import keyword  # 导入keyword库
print(keyword.kwlist)  # 查看保留字
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

3. 标识符的命名规则

my_name_1='爱听歌的阿漓' # my_name_1就是一个标识符(字母,数字,下划线)
print(my_name_1)
爱听歌的阿漓

python的数据类型转换以及运算符_第2张图片

4. 变量的命名和使用

# 创建一个整型变量并为其赋值为8
luck_number=8
# 字符串类型变量
my_name='爱听歌的阿漓'

print(my_name+"的幸运数字是:",luck_number,sep='')
爱听歌的阿漓的幸运数字是:8
# type()可以查看数据类型
luck_number=8
print('luck_number的数据类型是:',type(luck_number))
luck_number的数据类型是: 
num1=num2=1024 # 连续赋值
print(id(num1)) # 查看num1的地址
print(id(num2)) # 查看num2的地址
99802416
99802416

python的数据类型转换以及运算符_第3张图片

常量一般默认都是大写字母

5. 整数类型

num=987 # 默认十进制
num2=0b1010101 # 使用二进制表示整数
num3=0o765 # 使用八进制表示整数
num4=0x87ABF # 使用十六进制表示整数
print(num)
print(num2)
print(num3)
print(num4)
987
85
501
555711

6. 浮点数类型

height=187.6 # 身高
print(height)
print(type(height)) # 查询height的数据类型

x=10
y=10.0
print('x的数类型是:'+str(type(x)))
print('y的数类型是:'+str(type(y)))
187.6

x的数类型是:
y的数类型是:
# 浮点数不确定尾数问题
print(0.1+0.2)
0.30000000000000004

如果想要保留一位小数可以使用内置函数round()

print(round(0.1+0.2,1)) # 1是只保留一位小数
0.3

7. 复数类型

x=123+456j
print('实数部分:',x.real)
print('虚数部分:',x.imag)
实数部分: 123.0
虚数部分: 456.0

8. 字符串类型

# 单行字符串
city='北京'
address='西安市雁塔区'
print(city)
print(address)

print('-------------------')

# 多行字符串(三对单引号或者三对双引号)
info='''地址:西安市雁塔区
收件人:爱听歌的阿漓
手机号:1860000000
'''
print(info)
北京
西安市雁塔区
-------------------
地址:西安市雁塔区
收件人:爱听歌的阿漓
手机号:1860000000

9. 转义字符

print('北京')
print('欢迎您')
print('------------')
print('北京\n欢迎您') # 遇到\n即换行,可以连续换行
print('北\n京\n欢\n迎\n您')
print('-----------')
print('北京\t欢迎您') # 一个\t是八个空格
print('北京北京\t欢迎您') # 一个\t是八个空格
print('-----------')
print('老师说:\'好好学习,天天向上\'')
print('老师说:\"好好学习,天天向上\"')
print('-----------')
print(r'北\n京\n欢\n迎\n您') # 加上r后转义字符将会失效
北京
欢迎您
------------
北京
欢迎您
北
京
欢
迎
您
-----------
北京	欢迎您
北京北京	欢迎您
-----------
老师说:'好好学习,天天向上'
老师说:"好好学习,天天向上"
-----------
北\n京\n欢\n迎\n您

10. 字符串的索引和切片

python的数据类型转换以及运算符_第4张图片

s='HELLOWORLD'
print(s[0],s[-10]) # 序号0和序号-10表示的是同一个字符

print('北京欢迎您'[4])
print('北京欢迎您'[-1])

print('---------切片--------')
print(s[2:7]) # 正向递增序列
print(s[-8:-3]) # 反向递减序列
print('-----------------')
# 切片默认从0开始
print(s[:5])
print(s[5:])

H H
您
您
---------切片--------
LLOWO
LLOWO
-----------------
HELLO
WORLD

11. 字符串类型的操作

x='2022年'
y='北京东奥会'
print(x+y) # 拼接字符串x与y
print(10*x) # x中的内容输出10次
print(x*10) # x中的内容输出10次

print('北京' in y) # '北京'是否是"北京东奥会"的子字符串
print('上海' in y) # '上海'是否是"北京东奥会"的子字符串

2022年北京东奥会
2022年2022年2022年2022年2022年2022年2022年2022年2022年2022年
2022年2022年2022年2022年2022年2022年2022年2022年2022年2022年
True
False

12. 布尔类型

x=True
print(x)
print(type(x))
print(True+10) # 1+10
print(False+10) # 0+10
print('--------------------')
# 测试对象的bool值
print(bool(18)) # True
print(bool(0),bool(0.0)) # False False
# 总结, 非0的数值型布尔值都为True
print(bool('北京欢迎您')) # True
print(bool('')) # False
print(bool(False)) # False
print(bool(None)) # False
True

11
10
--------------------
True
False False
True
False
False
False

13. 数据类型之间的转换

python的数据类型转换以及运算符_第5张图片

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'))
3.3333333333333335 
将float类转换成int类型 3
将float类转换成int类型 3
将float类转换成int类型 -3
将float类转换成int类型 -3
将int类型转换成float类型 10.0
300
将str类型转换为float类型 3.14
# 将str类型转换为int或float类型报错的情况
print(int('18a'))
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

 in 
      1 # 将str类型转换为int或float类型报错的情况
----> 2 print(int('18a'))


ValueError: invalid literal for int() with base 10: '18a'
# 将str类型转换为int或float类型报错的情况
print(int('3.14')) # 只能是整数才能帮忙转换
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

 in 
      1 # 将str类型转换为int或float类型报错的情况
----> 2 print(int('3.14'))


ValueError: invalid literal for int() with base 10: '3.14'
# 将str转换为float类型报错的情况
print(float('45a.987'))
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

 in 
      1 # 将str转换为float类型报错的情况
----> 2 print(float('45a.987'))


ValueError: could not convert string to float: '45a.987'
# chr()与ord()函数
print(ord('漓')) # 28435 Unicode表中对应的值
print(chr(28435)) # 将整数值转成对应的字
28435
漓
# 进制之间的转换操作 十进制与其他进制的转换操作
print('十进制转换为十六进制:'+hex(28435))
print('十进制转换为八进制:'+oct(28435))
print('十进制转换为二进制:'+bin(28435))
十进制转换为十六进制:0x6f13
十进制转换为八进制:0o67423
十进制转换为二进制:0b110111100010011

14. eval函数的使用

s='3.14+3'
print(s,type(s))
x=eval(s)
print(x,type(x))
3.14+3 
6.140000000000001 
# eval()函数经常喝input()函数一起使用,用来获取用户输入的数值型
age=eval(input('请输入您的年龄:'))
print(age,type(age))
height=eval(input('请输入您的身高:')) # 将字符串转换成了float类型,相当于float(height)
print(height,type(height))
请输入您的年龄:18
18 
请输入您的身高:178.3
178.3 
# 使用eval()报错的情况
# hello='北京欢迎您'
# print(hello)
print(eval('hello'))
# type(eval('hello'))
北京欢迎您
北京欢迎您
str

python的数据类型转换以及运算符_第6张图片

15. 算数运算符

python的数据类型转换以及运算符_第7张图片

print('加法:',1+1)
print('减法:',1-1)
print('乘法:',2*3)
print('除法:',10/2) # 发生了隐式转换
print('取余:',10%3)
print('整除:',10//3)
print('幂运算:',2**3) # 2*2*2
加法: 2
减法: 0
乘法: 6
除法: 5.0
取余: 1
整除: 3
幂运算: 8
# 0不能做除数
print(10/0)
---------------------------------------------------------------------------

ZeroDivisionError                         Traceback (most recent call last)

 in 
      1 # 0不能做除数
----> 2 print(10/0)


ZeroDivisionError: division by zero

16. 赋值运算符

python的数据类型转换以及运算符_第8张图片

x=20 # 直接赋值,直接将20赋值给左侧的变量x
y=10
x=x+y # 将x+y的和赋值给x,x的值为30
print(x)
x+=y
print(x) # x=40
x-=y # 相当于x=x-y
print(x) # x=30
x*=y # 相当于x=x*y
print(x) # x=300
x/=y # x=x/y
print(x) # x=30.0,type(x)为float
x%=2 # x=x%2
print(x) # x=0.0
z=3
y//=z # y=y//z
print(y) #y=3
y**=2 # y=y**2
print(y)

# Python支持链式赋值
a=b=c=100 # 相当于执行了a=100   b=100   c=100
print(a,b,c)

# Python还支持系列解包赋值
a,b=10,20 # 相当于执行了a=10   b=20
print('交换前\na的值:',a,'\nb的值:',b)


print('--------如何交换两个变量的值--------')
# 在其他语言中
temp=0
temp=a # 将a的值赋值给temp,temp的值是10
a=b # 将b的值赋值给a,a的值是20
b=temp #将temp的值赋值给b,b的值是10
print('交换后\na的值:',a,'\nb的值:',b)

# 在Python语言中
b,a=a,b # 将a的值赋值给了b,将b的值赋值给了a
print(a,b)
30
40
30
300
30.0
0.0
3
9
100 100 100
交换前
a的值: 10 
b的值: 20
--------如何交换两个变量的值--------
交换后
a的值: 20 
b的值: 10
10 20

17. 比较运算符

print('98大于90么?',98>90)
print('98小于90么?',98<90)
print('98等于90么?',98==90)
print('98等于98么?',98==98)
print('98不等于90么?',98!=90)
print('98不等于98么?',98!=98)
print('98大于等于98么?',98>=98)
print('98小于等于98么?',98<=98)
98大于90么? True
98小于90么? False
98等于90么? False
98等于98么? True
98不等于90么? True
98不等于98么? False
98大于等于98么? True
98小于等于98么? True

18.逻辑运算符

python的数据类型转换以及运算符_第9张图片

逻辑与

print(True and True)
print(True and False)
print(False and False)
print(False and True)
print('-------------')
print(8>7 and 6>5) # True and True
print(8>7 and 6<5) # True and False
print(8<7 and 6<5) # False and False
print(8>7 and 6>5) # False and True
print(8<7 and 10/0) # 当第一个表达式为False是不计算第二个表达式
True
False
False
False
-------------
True
False
False
True
False

逻辑或

print(True or True)
print(True or False)
print(False or False)
print(False or True)
print('---------------------')
print(8>7 or 10/0)# 当第一个表达式为True是不计算第二个表达式
True
True
False
True
---------------------
True

逻辑非

print(not True)
print(not False)
print(not 8>7)
False
True
False

19.位运算(了解即可)

python的数据类型转换以及运算符_第10张图片

print(12&8)
8

python的数据类型转换以及运算符_第11张图片

print(4|8)
12

python的数据类型转换以及运算符_第12张图片

print(31^22)
9

python的数据类型转换以及运算符_第13张图片

print(~123)
-124

python的数据类型转换以及运算符_第14张图片

print(2<<2)
print(2<<3)
8
16

python的数据类型转换以及运算符_第15张图片

print(8>>2)
print(-8>>2)
2
-2

20.运算符的优先级

python的数据类型转换以及运算符_第16张图片

可以通过添加小括号来提升运算的优先级

小练习

1.以下哪项不是Python语言中的保留字( C )
A.False
B.and
C.true
D.if

2.x=5,y=3,执行x,y=y,x之后,x和y的值分别是什么?( B )
A.5,3
B.3,5
C.3,3
D.5,5

3.以下变量名不合法的是( A )
A.for
B._my
C.a_int
D.c888

4.“世界那么大,我想去看看”[7:-3] ( D )
A.我想去
B.想去
C.我想
D.想

5.与0xf2值相等的是( B )
A.342
B.242
C.0b11010010
D.o362

6.以下不是Python内置数据类型的是( A )
A.char
B.int
C.float
D.list

7.以下是print(‘\nPython’)语句运行结果是( A )
A.在新的一行输出:Python
B.直接输出’\nPython’
C.直接输出’\nPython’
D.先输出n,然后新一行输出Python

8.以下选项中,关于Python字符串的描述错误的是( D )
A.字符串是用一对双引号""或者一对单引号’'括起来的零个或者多个字符串
B.字符串是字符的序列,也是序列类型的一种
C.字符串使用的是[]进行索引和切片
D.Python字符串的切片方式是[N:M],不包括M

9.关于赋值语句,以下选项中描述错误的是( B )
A.赋值语句采用符号"="表示
B.赋值与二元操作符可以组合,例如&=
C.a,b=b,a可以实现a和b值的互换
D.a,b,c=b,c,a是不合法的

实战一
题目:从键盘上获取一个4位整数,分别输入个位、十位、百位、千位上的数字
需求:可以使用eval()函数或者int()函数将从键盘获取的数字转成int类型,通过整除和取余操作分别获取数字
运行效果图
python的数据类型转换以及运算符_第17张图片

num=eval(input('请输入一个四位整数:'))
sd=num%10 # 个位数
tens=num//10%10
hundred=num//100%10
thousands=num//1000
print('个位数:',sd)
print('十位数:',tens)
print('百位数:',hundred)
print('千位数:',thousands)
请输入一个四位整数:1234
个位数: 4
十位数: 3
百位数: 2
千位数: 1

实战二
题目:根据父母的身高预测儿子的身高
需求:从键盘输入父母的身高,并使用eval()可将float()转换输入的数据类型.计算公式:儿子身高=(父亲升高+母亲身高)*0.54
运行效果图
python的数据类型转换以及运算符_第18张图片

father_height=eval(input('请输入父亲的身高:'))
mother_height=eval(input('请输入母亲的身高:'))
son_height=(father_height+mother_height)*0.54
print('预测儿子的身高为:',round(son_height,2))
请输入父亲的身高:187.4
请输入母亲的身高:165.8
预测儿子的身高为: 190.73

你可能感兴趣的:(Python基础小记,python,开发语言)