【笔记】运算符
变量
1、重新赋值
a = 10 # 创建变量a,并赋值为10
print(a)
a = 100 # 重新给a赋值为100
print(a)
a = 'abc' # 重新赋值一个其他类型的数据
print(a)
2、同时定义多个变量
2.1 变量名1 = 变量名2 = 变更名3 = …… = 数据
x = y = z = 10
print(x, y, z)
# 10 10 10
2.2 同时定义多个变量赋不同的值:
变量名1,变量名2,变更名3,…… = 数据,数据,数据
注意:= 后面的数据的个数必须和前面变量的个数保存一致
3、变量保存数据的底层逻辑
定义变量的时候会自动在内存中申请空间保存数据
原理: 定义变量的的会自动申请内存,内存的大小有数据的大小决定;
重新给变量赋值,会重新根据新的数据申请新的内存
补充:内存单位
位(bit)
1 字节(byte)= 8位
1kb = 1024字节
1Mb = 1024Mb
1Gb = 1024Mb
1Tb = 1024GB
运算符
数字运算符
数学运算符:+ 、- 、 、/ 、//(整除)、%(取余,取模)、* * ( 幂运算)
1、+ -、* 、/
Python中的+、-、*、/和数学中的+、-、×、÷的功能一样
2、//(整除)
x // y :求x除以y的商,商向小取整(找和小数相邻的两个整数中较小的一个)
print(5 // 2) # 2
print(-5 // 2) # -3
# 应用1:希望能整除的情况下商的整型
print(4 / 2) # 2.0
print(int(4 / 2)) # 2
print(4 // 2) # 2
# 应用2:去掉一个整数的地位数,保留高位数
num = 12345
print(num // 10) # 1234
print(num // 100) # 123
3、% 取余、取模
应用:去掉高位数,保留地位数
num = 12345
print(num % 10) # 5
print(num % 100) # 45
4、** —— 幂运算
x ** y ——求x的y次方
print(2 ** 3)
# 8
print(5 ** 4)
# 625
print(int(16 ** 0.5))
# 4
print(2 ** -32)
# 2.3283064365386963e-10
比较运算符:
比较运算符: >、<、==(等于)、!=(不等于)、>=、<=
注意1:所有的比较运算符的运算结果都是布尔值
print(10 > 30) # False
print(10 < 30) # True
print(10 == 30) # False
print(10 == 10) # True
print(10 != 10) # False
print(10 >= 10) # True
逻辑运算符
逻辑运算符: and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
单一条件: 如果下雨;如果温度高于35度
复合条件: 并且(要求多个条件同时成立)、或者(要求多个条件中只要有一个条件成立就行)
1、and -逻辑运算符
应用场景︰如果需要多个条件同时满足,就用and连接。相当于生活中的"并且"运算规则:条件1 and条件2
如果两个条件都成立结果是True,只要有一个不成立结果就是False
True and True —— True
False and True —— False
True and False —— False
False and False —— False
#练习:写条件判断num是否是大于10的偶数
num = 21
# 分析单一条件还是复合条件
# 所有的条件:大于10(num > 10);是偶数(num % 2 == 0)
# 分析连接方式:num > 10 and num % 2 == 0
print('num是否大于10的偶数:', num > 10 and num % 2 == 0)
# 条件判断是否能被3和7整除
num = 20
# 类型:复合
# 能被3整除(num % 3 == 0);能被7整除(num % 7 == 0)
print('num是否能被3和7整除:', num % 3 == 0 and num % 7 == 0)
2、or - 逻辑或
应用场景:如果要求多个条件中有一个条件成立就行,就用or连接;相当于 生活中的或者
运算规则:条件1 or 条件2 - 如果两个条件都不成立结果就是False,只要 有一个条件成立结果就是True
True or True - True
False or True - True
True or False - True
False or False - False
# 练习:判断year是否是闰年
"""
闰年分为世纪闰年和普通闰年两种:
世纪闰年:能被400整除的年 (year % 400 == 0)
普通闰年:能被4整除但是不能被100整除 ( year % 4 == 0 and year % 100 != 0)
能被4整除: year % 4 == 0
不能被100整除: year % 100 != 0
"""
year = 2000
print('year是否是闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
3,not - 逻辑非
应用场景:对指定的条件进行否定(如果一个条件正向写情况很多很复杂,反向却非常简单,就可以将条件反向写再加not)
运算规则:not 条件
not True - False
not False - True
# 练习:判断num是否不能同时被3和7整除
num = 21
print('num是否不能同时被3和7整除:', not num % 21 == 0)
print('num是否不能同时被3和7整除:', num % 21 != 0)
赋值运算符
赋值运算符:=,+=,-=,*=,/=,%=,//=,**=
注意:所有赋值运算符都是用来给变量赋值的,所以赋值运算表达式没有
1.=
变量 = 数据 :将数据保存到变量中,变量既可以是已经定义的变量,也可以是没有定义过的变量
2.复合赋值运算符
变量 += 数据
先将变量取出来,然后和后面的数据进行加法运算,然后将计算结果再赋值给变量.
(变量必须是已经定义过的变量,并且里面保存的数据,可以和后面的数据进行加法运算)
a -= 5 # a = a - 5 a = 30 - 5 = 25
a *= 2 # a *= 2 25 * 2 a = 50
a %= 3 # 求余 a = a % 3 a = 50 % 3 = 2
print(a)
# 2
age = 19
print(age >= 18 and age <= 28) # True
# 所有的赋值数据都是没有结果的,无法提供数据
# print(a = 10) 报错!
# print(age += 20) 报错!
运算符优先级
age = 19
print(age >= 18 and age <= 28) # True
# 所有的赋值数据都是没有结果的,无法提供数据
# print(a = 10) 报错!
# print(age += 20) 报错!
分支结构
程序执行过程(顺序结构):
默认情况下,程序从上往下按顺序一条一条的执行,每一条语句都会执行并且只会执行一次。
print(10)
print(20)
print(30)
分支结构(if) - 让程序根据条件执行代码
1.if单分支结构
2.if双分支结构
3.if多分支结构
if单分支结构 : 如果xxx就xxx
(满足条件执行某个操作,条件不满足的时候这个操作就不执行)
语法:
if 条件语句:
代码段
说明:
1 if - 关键字;固定写法
2 条件语句 - 可以是任何有结果的表达式(比如:具体的数据、运算表达式、已经定义过的变量等,只有赋值语句不行);
一般将结果是布尔的表达式作为条件
3 : 固定写法(注意输入法问题)
4 代码段: 结构上,就是和if保持一个缩进的一条或者多条语句(至少一条!!!!!);
逻辑上,就是满足条件才会执行代码。
执行过程:先判断条件语句是否成立(如果条件语句的结果不是布尔,就转换成布尔看是否是True),如果成立就执行代码段;条件不成立,代码段就不执行。
if双分支结构 - 如果xxx就xxx否则就xxx
(条件成立执行某个操作,不成立就执行另外一个操作)
"""
语法:
if 条件语句:
代码段1(满足条件执行的代码)
else:
代码段2(不满足条件执行的代码)
"""
# 练习:根据age的值打印成年或者未成年
age = 29
if age < 18:
print('未成年')
else:
print('成年')
# 练习:根据year的值打印'闰年'或者'平年'
year = 2004
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('闰年')
else:
print('平年')
【作业】
day3 数据类型和运算符作业
选择题
-
print(100 - 25 * 3 % 4)
应该输出什么? ()A. 1
B. 97
C. 25
D. 0
答案:B
理由 :25×3=75
75÷4=18…3
100-3=97
-
下列哪种说法是错误的()。
A. 除字典类型外,所有标准对象均可以用于布尔测试
B. 空字符串的布尔值是False
C. 空列表对象的布尔值是False
D. 值为0的任何数字对象的布尔值是False
答案:A
-
Python不支持的数据类型有()。
A. char
B. int
C. float
D. list
答案:A
-
(多选)n = 6784,以下能够获取到7 的方法有()。
A. n / 1000 % 100
B. n % 1000 / 100
C. n // 100 % 10
D. n // 10 % 100 // 10
答案:C、D
理由:选项A. 6784÷1000=6.784;6.784÷100=0…6.784
选项 B. 6784÷1000=6…784;784÷100=7.84
选项 C. 6784÷100=67.84,向小取整67;67÷10=6…7
选项 D. 6784÷10=678.4,向小取整678;678÷100=6…78;
78÷10=7.8,向小取整7 -
运行以下程序,当从键盘上输入12,运行结果是()。
x = (input()) print(type(x))
A. `<class 'str'>`<br>
B. `<class 'int'>`<br>
C. `出错`<br>
D. `class 'dict'`<br>
答案:A
理由:输入任何数据的类型都是字符串str
6. 下列表达式的运算结果是( ) 。
```python
a = 100
b = False
print(a * b > -1)
A. False
B. 1
C. 0
D.True
答案:D
理由:转化规则:False转化成0,True转化成1。
所以这个程序是在判断100×0大于-1,0大于-1,结果为True
填空题
-
在Python中表示空类型的是(None)。
-
查看变量中数据的类型的函数名是(type())。
-
已知
x = 3 == 3
,执行结束后,变量x的值为(True)。理由:要先进行比较运算“3 == 3”,结果为True,再把True赋值给X
-
已知
x = 3
,那么执行语句x += 6
之后,x的值为(9)。 -
表达式
3 ** 2
的值为(9),表达式3 * 2
的值为(6),表达式4 ** 0.5
的值为(2.0)。
编程题
-
写出判断一个数是否能同时被3和7整除的条件语句, 并且打印对应的结果。
例如:输入 21 打印 True, 输入 9 打印 False。 num = int(input('请输入一个数:')) print(num % 3 == 0 and num % 7 == 0) # 请输入一个数:21 # True # 请输入一个数:9 # False
-
写出判断一个数是否能够被3或者7整除,但是不能同时被3或者7整除的条件语句, 并且打印对应的结果。
例如:输入 14 打印 True, 输入 4 打印 False, 输入 21 打印 False。 num = int(input('请输入一个数:')) print((num % 3 == 0 or num % 7 == 0) and (not(num % 3 == 0 and num % 7 == 0))) # 请输入一个数:14 # True # 请输入一个数:4 # False # 请输入一个数:21 # False
-
输入年,写代码判断输入的年是否是闰年,并且打印对应的结果 。(是闰年的条件: 能被4整除但是不能被100整除或者能够被400整除的年)
例如:输入 2020 打印 True, 输入 2011 打印 False year = int(input('请输入年份:')) print((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)) # 请输入年份:2020 # True # 请输入年份:2011 # False
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示出来。
例如: 时间 67 秒 —> 0 时 1 分 7 秒 time = int(input('请输入时间:')) hour = time // 3600 minute = time % 3600 // 60 second = time % 3600 % 60 print(hour,'时',minute,'分',second,'秒',sep = '') # 请输入时间:15678 # 4时21分18秒
-
定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!
公式:
体重(kg)/身高(m)的平方值
在18.5 ~ 24.9之间属于正常。例如: 输入体重: 55, 输入身高:1.55, 输出: 正常或者不正常 height = float(input('请输入身高:')) weight = int(input('请输入体重:')) index = weight / (height ** 2) print( 18.5 <= index <= 24.9) # 请输入身高:180 # 请输入体重:100 # False
简答题
- 写出你对今⽇日授课内容中有疑问的地⽅方(或者觉得有困难的知识点)。
无