Day2—Python运算符和分支结构
Python支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算符。
一、数学运算符
+ 、-、*、/和数学中的+、-、×、÷的功能一模一样。
print(2 + 5) # 7
print(2 - 5) # -3
print(2 * 5) # 10
print(2 / 5) # 0.4
%取余、取模
x % y — 求x除以y的余数。
print(8 % 2) # 0
print(15 % 4) # 3
应用一:判断一个数书否能够被另外一个数整除。
print(15 % 3) # 0 可整除
print(20 % 5) # 0 可整除
print(12 % 2) # 0 可整除
应用二:取整数低位数。
num = 789159
print(num % 10) # 取个位数
print(num % 100) # 取后两位数
-
//整除x // y— x除以y的结果向下取整。
print(5 / 2) # 2.5
print(5 // 2) # 2
print(-5 // 2) # -3
应用:去掉低位数。
num = 27383
print(num // 10) # 2738
print(num // 100) # 273
print(num // 1000) # 27
print(23 // 10) # 2
print(647 // 100) # 6
print(8929 // 1000) # 8
练习:获取任意一个整数的十位数。
num = 345
# 方法一
print(num // 10 % 10) # 4
# 方法二
print(num % 100 //10) # 4
-
**幂x ** y— 求x的y次方。
print(2 ** 3) # 8
print(4 ** 2) # 16
print(25 ** 0.5) # 5.0
print(27 ** (1/3)) # 3.0
二、比较运算符
比较运算符:==等于、!=不等于、>大于、<小于、>=大于等于、<=小于等于。
注意:所有的比较运算符的运算结果都是布尔值
==等于、!=不等于
print(5 == 5) # True
print(5 != 5) # False
print(5 != 4) # True
print(10 % 2 == 0) # True
print(1 + 1 == 2) # True
>大于、<小于、>=大于等于、<=小于等于
print(10 > 5) # True
print(10 <= 10) # True
print(10 < 10) # False
# 可以通过连写的方式来表示取值范围
age = 12
print(18 <= age <= 30) # False
print(0 < age < 18) # True
三、逻辑运算符
逻辑运算符: and逻辑与运)、or逻辑或运算、not逻辑非运算。
-
and逻辑与运算-
应用场景
如果要求多个条件同时满足,这个时候多个条件使用and连接,相当于生活中的并且。
-
运算规则
True and True -> True True and False -> False False and True -> False False and False -> False
-
练习:写出判断置顶的数是否能同时被3和7整除的条件。
num = 21
# 方法一
print(num, '是否能够同时被3和7整除:', num % 3 == 0 and num % 7 == 0)
print(num, '是否能够同时被3和7整除:', (not(num % 4)) and (not(num % 7)))
# 方法二
print(num, '是否能够同时被3和7整除:', num % (3 * 7) == 0)
-
or逻辑或运算-
应用场景
如果要求多个条件只要有一个条件满足就行,这个时候多个条件用or练剑,相当于生活中的或者。 -
运算规则
True or True -> True True or False -> True False or True -> True False or False -> False -
练习一:写出判断一个书是否能够被3或者7或者5整除的条件。
num = 10
print(num, '是否能够被3或者7或者5整除:', num % 3 == 0 or num % 7 == 0 or num % 5 == 0)
练习二:写出判断指定的年份是否为闰年。
闰年:情况一:年份能被4整除但不能被100整除(普通闰年)。
情况二:年份能被400整除(世纪闰年)。
year = 2004
print(year, '是否为闰年:', (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
-
not逻辑非运算-
应用场景
如果要对一个条件进行否定,就是有
not。
-
age = 19
print(not age > 18)
# 写出不能同时被3和7整除的条件
# 1)能被3整除但是不能被7整除
# 2)能被7整除但是不能被3整除
# 3)既不能被3整除也不能被7整除
num = 12
print((num % 3 == 0 and num % 7 != 0) or (num % 7 == 0 and num % 3 != 0) or (num % 3 != 0 and num % 7 != 0))
# 可以用下面的来代替
print(not num % (3 * 7) == 0)
(了解)逻辑运算度的扩展
- 短路操作
- 逻辑与运算的短路操作:如果第一个条件是False,那么第二个条件对应的语句不会再执行。
- 逻辑或运算的短路操作:如果第一个条件是True,那么第二个条件对应的语句不会再执行。
True and print('条件2') # 条件2
False and print('条件2') # False
True or print('条件2') # True
False or print('条件2') # 条件2
-
数据的布尔测试(掌握)
在
Python中任何类型的数据都可以转换成布尔。转换规则:任何为零为空的值都会转换成
False,其他的都是True。
0 -> False 0.0 -> False 0.000 ->False '' -> False "" -> False None -> False [] -> False {} -> False () -> False
#类型转换:bool(数据) -> 获取指定数据对应的布尔值
print(bool(0))
print(bool(0.0))
print(bool(''), bool(""), bool(None))
print(bool(10), bool(-1))
print(bool(' '), bool("abc")) # 空格也是True
-
运算对象不是布尔值
在
python中任何类型的数据都可以作为逻辑运算符的运算对象。
数据1 and 数据2 - 如果数据1的布尔值是否为True,结果就是数据2;如果数据1的布尔值是False,结果就是数据1
数据1 or 数据2 - 如果数据1的布尔值是否为True,结果就是数据1;如果数据1的布尔值是False,结果就是数据2
not 数据1 - 如果数据1的布尔值是否为True,结果就是False;如果数据1的布尔值是False,结果就是True
print(7 and 8) # 8
print(0 and 10) # 0
print(-3 and 9) # 9
print(None and 'abc') # None
print(False and 100) # False
print(7 or 8) # 7
print(0 or 10) # 10
print(-3 or 9) # -3
print(None or 'abc') # abc
print(False or 100) # 100
print(not 100) # False
print(not 'abc') # False
print(not "") # True
四、赋值运算符
赋值运算符:=、+=、-=、*=、/=、%=、//=、 **=。
重要结论:赋值运算符的作用是给变量赋值,不会产生结果(数据)!!!
# print(a = 10) 报错
a = 10
print(a)
=
直接将=右边的数据赋给左边的变量。(=的左边必须是变量)
abc = 20 # 10 = 20 不合法
+=、-=、*=、/=、%=、//=、**=
变量 += 数据 — 将变量中的值取出来和指定进行加法运算,然后将运算的结果重新赋值给变量
注意:变量必须是已经赋值过的变量
num = 100
num += 10 # 与 num = num + 10 同义
print(num)
num -= 20
print(num) # 90
num *= 2
print(num) # 180
num %= 3
print(num) # 0
运算符优先级
1.运算符优先级从高到低:数学运算 > 比较运算 > 逻辑运算 > 赋值运算
2.数学运算符优先级:
**>*、/、%、//>+、-3.有括号先算括号里面的,括号只有小括号。
五、if分支结构
流程控制
流程控制值得是控制程序的执行顺序。
1.顺序结构(默认):代码从上往下一条一条的按顺序执行。
2.选择/分支结构:根据条件选择执行某个操作(if语法)。
3.循环结构:让代码重复执行。(for循环、while循环)。
if分支结构解决的问题:如果…就…
-
if单分支结构-
解决的问题:如果满足某个条件就执行某个操作,条件不满足的时候对应的操作就不执行。
-
语法:
if 条件语句: 代码段 说明: if — 关键字,固定写法 条件语句 — 任何有结果的表达式(赋值语句不行) 冒号 — 固定写法,注意是英文的冒号 代码段 — 和if保持一个缩进的一条或者多条语句,满足条件才会执行的代码 -
执行过程
先判断条件语句的布尔值是否为True,如果是就执行代码,否则代码段不执行。
-
age = 19
if age >= 18:
print('可以进入网吧')
print('可以吸烟')
练习1:如果指定的数是偶数就打印’偶数’,否则不打印
num = 9
if num % 2 == 0:
print(num, '是偶数')
练习2:如果输入的年份是闰年,就打印‘闰年’,否则不打印
year = int(input('请输入年份:')) # 注意:通过input函数输入的数据类型是字符串,如果要对结果进行数字操作需要先转换
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('闰年')
-
if双分支结构:if - else- 解决的问题:满足条件执行某个操作,条件不满足的收回执行另外一个操作。
- 语法:
if 条件语句: 代码段1 else: 代码段2-
执行过程
判断条件语句的布尔值是否为True,如果是执行代码段1,否则执行代码段2。
练习1:根据输入的数据的性质,打印’奇数‘或者’偶数‘。
num = int(input('请输入数字:'))
if num % 2 == 0:
print('偶数')
else:
print('奇数')
练习2:写程序判断一个三位数是否是回文数
num = int(input('请输入一个三维整数:'))
if num % 10 == num // 100:
print('回文数')
else:
print('不是回文数')


3048

被折叠的 条评论
为什么被折叠?



