01数学运算符
python中常用的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符
数学运算符:±*/ %(取余,取模) //(整除) **(幂运算)
-
- ±*/ - 和数学中的加减乘除一样 (特别是除法运算与C、Java不同)
-
- % 取余 - 求余数
-
x%y - x除以y的余数
print(5 % 2) # 1
-
应用一:判断一个数是否能够被另一个数整除
-
应用二:取一个数的低位数
num = 232 print(num % 10) # 2 print(num % 100) # 32
-
- //整除 -求商 商取整(向小取整)
print(5 / 2) # 2.5 print(5 // 2) # 2 print(5.0 // 2) # 2.0 print(-5 // 2) # -3 (向小取整)
-
应用: 去掉低位数,保留高位数
num = 23448 print(num // 10) # 去掉个位数 2344 print(num // 100) # 234
-
- ** 幂运算
-
x**y 求x的y次方
print(2 ** 3) # 8 print(81 ** 0.5) # 9.0 # 开方操作 print(8 ** (1/3)) # 2.0
02比较运算
比较运算符:==(等于) !=(不等于) > < >= <=
所有的比较运算符的运算结果都是布尔值 True False
-
注:python中的比较运算符支持表示范围的连写方式 C:x>=0 && x<=1
x = 0.7 print(0 <= x <= 1) # True
03逻辑运算符
逻辑运算符 and与 or或 not非
-
- and 从逻辑与
-
1)应用场景:要求多个条件同时满足,用and连接,等价于并且
-
2)运算规则:两个都是True,结果为真
-
3)练习:判断一个数同时能被3和7整除
num = int(input('请输入数字:')) if (num % 3 == 0) and (num % 7 == 0): print('该数字能同时被3和7整除') else: print('该数字不能同时被3和7整除')
-
- or 逻辑或
-
1)应用场景:多个条件中只要有一个条件满足的时候就使用or连接,等价于或者
-
2)运算规则:两个都是False结果才是False
-
3)练习 判断一个数能不被3或者7整除
num = int(input('请输入数字:')) if num % 3 == 0 or num % 7 == 0: print('该数字能被3或者7整除') else: print('该数字不能被3或者7整除')
-
- not - 非
-
1)应用场景:对某一个条件进行否定
-
2)运行规则:not True -> False not False ->True
age = 27 print(not age > 18) print(age <= 18)
练习
-
练习1:判断一个数是否不能同时被3和7整除
num = int(input('请输入数字:')) if not((num % 3 == 0) and (num % 7 == 0)): print('该数字不能同时被3和7整除') else: print('该数字能同时被3和7整除')
-
练习2:判断一个数是否是偶数
num = int(input('请输入数字:')) print('是否是偶数',num % 2 == 0)
-
练习3:判断一个数是否是偶数
num = int(input('请输入数字:')) print('能被3整除,并且个位数是1',num % 3 == 0 and num % 10 == 1)
-
练习4:判断一个数的个位数加上十位数是否是偶数
num = int(input('请输入数字:')) print('个位数加上十位数是否是偶数',(num % 10 + num // 10 % 10) % 2 == 0)
04 逻辑运算符扩展
-
- 短路操作
逻辑与的短路操作:表达式1 and 表达式2 若表达式1False,不执行表达式2
逻辑或的短路操作:表达式1 or 表达式2 若表达式1 True,不执行表达式2
def func1(): print('执行函数体') func1() # 执行函数体 True and func1() # 执行函数体 False and func1() # 短路 False or func1() # 执行函数体 True or func1() # 短路
-
- 运算对象不是布尔值
-
- 与运算:表达式1 and 表达式2
- 表达式1的布尔值是True,整个与运算的结果是表达式2
- 表达式1的布尔值是False,整个与运算的结果是表达式1
-
- 或运算:表达式1 or 表达式2
- 表达式1的布尔值是False,整个与运算的结果是表达式2
- 表达式1的布尔值是True,整个与运算的结果是表达式1
-
- not 表达式 – 非运算
print(7 and 8) # 8 print(7 or 8) # 7 print(0 and 9) # 0 print(not None) # True
-
- 补充:数据的布尔值(重要)
python中所有的数据都有布尔值,所有的零值、空值对应的布尔值是False,其他都是False
零值和空值: 0 0.0 0.00 ‘’ “” (引号里有空格也为True) None
05赋值运算符
-
- 重要结论:
1)所有的赋值运算符都是用来给变量赋值,没有计算结果(所有的赋值运算都没有结果)
2)所有赋值运算符的左边必须是变量
-
- =
-
变量 = 数据 - 将数据保存在变量中
a = 10 # print(a = 10) # 出错,应打印数据 print(a)
-
- += -= /= *= %= //= **=
-
变量 += 数据 - 先将变量中保存的数据取出来,和右边的数进行加法运算,将计算结果重新赋值给变量
-
即:变量 = 变量 + 数据
b = 10 b += 3 # 13 b *= 2 # 26 b %= 2 # 0
- 重要结论:
-
运算符优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
** > * / % // > + -
有括号先算括号里面的
a = 10 + 20 * 3 > 5 and 7 - 8 > 9 # False
06if分支结构
-
1.流程控制
-
1)顺序结构(默认) - 代码从上往下一条一条执行,每条代码执行一次
print('代码1') print('代码2') print('代码3') """ 代码1 代码2 代码3 """
-
2)分支结构 - 根据条件去执行或者不执行某些代码
-
3)循环结构 - 让代码重复执行
-
-
2.分支结构 - if 语句
-
1)if 单分支结构 - 满足条件执行某个操作,条件不满足的时候对应的操作不执行
-
语法:
if 条件语句:
代码段 -
说明:
if - 关键字,固定写法
条件语句 - 任何有结果的表达式都可以:数据或已经赋值过的变量,运算表达式,函数调用表达式 (只有赋值语句没有结果)
: - 固定写法,英文冒号
代码段 - 与if保持一个缩进的一条或者多条语句(满足条件才执行的代码) -
执行过程:
先判断条件语句的结果是否为True,如果为True,就执行代码段,否则不执行a = 10 if a: # pass # 先占位 print('代码段1') print('代码段2') print('分支执行结束') print('代码段3') # 练习1:如果成年,打印可以进网吧 age = 19 if age >= 18: print('可以进网吧') # 练习2:给定年份判断闰年 year = 2020 if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0): print('闰年')
-
-
2)if双分支结构 - 满足条件执行某个操作,条件不满足的时候执行另外的操作
-
语法:
if 条件语句:
代码段1 (满足条件则执行)
else:
代码段2 (不满足条件执行)# 练习 如果指定的数是奇数就打印奇数,否则打印偶数 num = 10 if num % 2 != 0: print('奇数') else: print('偶数') # 方法二 if num % 2: print('奇数') else: print('偶数')
-
3)if多分支结构 - 根据不同的条件执行不同的操作(条件之间满足:其中一个满足,另外的条件绝对不满足)
-
语法:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
…
else:
代码段N# 练习:根据年龄值得范围打印人生阶段 age = 67 if 0 <= age <= 3: print('儿童') elif 4 <= age <= 17: print('少年') elif 18 <= age <= 28: print('青年') elif 29 <= age <= 39: print('壮年') elif 40 <= age <= 59: print('中年') else: print('老年') # 方法2 age = 67 if age <= 3: print('儿童') elif age <= 17: print('少年') elif age <= 28: print('青年') elif age <= 39: print('壮年') elif age <= 59: print('中年') else: print('老年') height = 180 weight = 160 if height > 175: print('跳远') if weight > 170: print('摔跤')
-
-
作业
选择题
-
print(100 - 25 * 3 % 4)
应该输出什么? (B)A. 1
B. 97
C. 25
D. 0
-
下列哪种说法是错误的(A)。
A. 除字典类型外,所有标准对象均可以⽤于布尔测试
B. 空字符串的布尔值是False
C. 空列表对象的布尔值是False
D. 值为0的任何数字对象的布尔值是False
(A :所有均可用于布尔测试) -
下列表达式的值为True的是(B)。
A. 3>2>2
B. 1 and 2 != 1
C. not(11 and 0 != 2)
D. 10 < 20 and 10 < 5
-
Python不⽀持的数据类型有(A)。
A. char
B. int
C. float
D. list
-
(多选)n = 6784,以下能够获取到7 的⽅法有(C D)。
A. n / 1000 % 100
B. n % 1000 / 100
C. n // 100 % 10
D. n // 10 % 100 // 10
-
运⾏以下程序,当从键盘上输⼊12,运⾏结果是(A)。
x = (input()) print(type(x))
A. <class 'str'>
B. <class 'int'>
C. 出错
D. <class 'dict'>
-
下列表达式的运算结果是(D ) 。
a = 100 b = False print(a * b > -1)
A. False
B. 1
C. 0
D. True
填空题
- 查看变量中数据的类型的函数名是(type())。
- 已知 x = 3 == 3 ,执⾏结束后,变量x的值为(True)。
- 已知 x = 3 ,那么执⾏语句 x += 6 之后,x的值为(9)。
- 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2.0)。
编程题
-
写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。
num = 10 if num % 2 == 0 and num %5 == 0: print(num, '能同时被2和5整除') else: print(num, '不能同时被2和5整除') # 方法二 if num % 10: print(num, '不能同时被2和5整除') else: print(num, '能同时被2和5整除')
-
写出判断⼀个数是否能够被2或者5整除,但是不能同时被2和5整除的条件语句, 并且打印对应
的结果。
num = 10 if not(num % 2 == 0 and num %5 == 0): print('该数不能同时被2和5整除') else: print('该数能被2或者5整除') # 方法一 if (num %2 ==0 and num%5!=0)or(num%2!=0 and num%5==0): print('该数能被2或者5整除,但是不能同时被2和5整除') #方式二 if(num%2==0 or num%5==0) and num %10!=0: print('该数能被2或者5整除,但是不能同时被2和5整除')
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX
时XX分XX秒’的⽅式表示出来。
例如:100秒表示成 0时1分40秒
time = 15678 hour = time // 3600 time -= hour * 3600 min = time // 60 time -= min * 60 sec = time #方法二 time=15678 h=time//3600 m=time%3600 //60 s=time%60 print(hour,'时',min,'分',sec,'秒,sep='')
-
定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!
公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
height = 80 weight = 1.6 print(18.5 <= (weight/(height**2)) <= 24.9)
-
根据输入的成绩的范围打印
及格
或者不及格
score = int(input('请输入成绩:')) if score >= 60: print('及格') else: print('不及格')
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。
age = int(input('请输入年龄:'))
if 0 <= age <= 150:
if age <18:
print('未成年')
else:
print('成年')
else:
print('这不是人')
- 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
。
a = int(input('请输入整数a:'))
b = int(input('请输入整数b:'))
c = a -b
if c % 2:
print(c)
else:
print('a-b的结果不是奇数')