运算符和分支结构
Python支持的运算符:*数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算。
1,数学运算符
数学运算符有:+(加)、-(减)、(乘)、/(除)、%(取余、取模)、//(整除)、**(幂)。
① 其中的+、-、、/ 和数学中的 +、-、×、÷的功能一模一样。
例:
print(2 + 5)
print(2 - 5)
print(2 * 5)
print(2 / 5)
② %(取余、取模)
使用格式:x % y - 求x除以y的余数。
应用场景:判断一个数是否能够被另外一个数整除(余数是否是0);取整数低位数。
例:
print(15 % 3) =>余数为零
print(20 % 5) =>余数为零
num = 892193
print(num % 100) =>取一个数的后两位数即对100取余
③ //(整除)
使用格式:x // y - x除以y的结果向小取整。
应用场景:去除一个数低位数。
例:
num = 27383
print(num // 10) =>2738
print(num // 100) => 273
print(num // 1000) =>27
④ **(幂)
使用格式:x ** y - 求x的y次方。
例:
print(2 ** 3) => 8
print(25 ** 0.5) => 5.0
print(27 ** (1/3)) => 3.0
2,比较运算符
比较运算符有:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于);注意所有的比较运算符的运算结果都是布尔值。
例:
print(5 == 5) => True
print(5 != 5) => False
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
3, 逻辑运算符
逻辑运算符有:and(逻辑与运算)、or(逻辑或运算符)、not(逻辑非运算)
① and(逻辑与运算)
应用场景:如果要求多个条件同时满足,这个时候多个条件使用and连接。相当于生活中的“并且”。
例:写出判断指定的数是否能同时被3和7整除的条件。
num = 14
print(num, '是否能够同时被3和7整除:', num % 3 == 0 and num % 7 == 0)
② or(逻辑或运算)
应用场景:如果要求多个条件只要有一个条件满足就行,这个时候多个条件用or连接;相当于生活中的“或者”。
例:写出判断一个数是否能够被3或者7或者5整除的条件。
num = 11
print(num, '是否能够被3或者7或者5整除:', num % 3 == 0 or num % 5 == 0 or num % 7 == 0)
③ not(逻辑非运算)
应用场景:如果要对一个条件进行否定,就使用not。
例:
age = 19
print(age > 18)
print(not age > 18)
print(age <= 18)
4,逻辑运算符的扩展
① 短路操作
逻辑与运算的短路操作:如果第一个条件是False,那么第二个条件对应的语句不会再执行;
逻辑或运算的短路操作:如果第一个条件是True,那么第二个条件对应的语句不会再执行。
② 数据的布尔测试(掌握)
在Python中任何类型的数据都可以转换成布尔。转换规则:任何为零为空的值都会转换成False,其他都是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。
例:
result1 = 7 and 8
print(result1) => 8
print(1 or 2) => 1
5,赋值运算符
赋值运算符有:=、+=、-=、*=、/=、%=、//=、**=。
赋值运算符的作用:给变量赋值,不会产生结果(数据)。
① “ =” 右边的数据赋给左边的变量。(=的左边必须是变量)。
② “+= ” 将变量中的值取出来和右边的变量进行加法运算,然后将运算的结果重新赋值给变量。
6,运算符的优先级
① 运算符优先级从高到低:数学运算 > 比较运算 > 逻辑运算 > 赋值运算;
② 数学运算符优先级:** 高于 *、/、%、// 高于 +、- 。
7,流程控制
定义:
流程控制指的是控制程序的执行顺序。
分类:
① 顺序结构(默认):代码从上往下一条一条的按顺序执行;
② 选择/分支结构:根据条件选择执行某个操作 (if语句);
③ 循环结构:让代码重复执行。(for循环、while循环)。
8,if分支结构
用途:
如果满足某个条件就执行某个操作,条件不满足的时候对应的操作不执行。
语法:
if 条件语句:
(代码段前空一段)代码段
说明:
① if - 关键字,固定写法;
② 条件语句 - 任何有结果的表达式(不能是赋值语句);
③ 代码段 - 和if保持一个缩进的一条或者多条语句; 满足条件才会执行代码;
④ 先判断条件语句的布尔值是否为True,如果是就执行代码段,否则代码段不执行。
例:如果指定的数是偶数就打印'偶数',否则不打印
num = 90
if num % 2 == 0:
print('偶数')
9,if双分支结构
用途:
满足条件执行某个操作,条件不满足的时候执行另外一个操作。
语法:
if 条件语句:
(代码段前空一段)代码段1
else:
(代码段前空一段)代码段2
说明:
程序先判断条件语句的布尔值是否为True,如果是执行代码段1,否则执行代码段2。
例:根据输入的数字的性质,打印'奇数'或者'偶数'。
num = int(input('请输入一个整数:'))
if num % 2 == 0:
print('偶数')
else:
print('奇数')
例2;写程序判断一个三位数是否是回文数。
num = 101
left = num // 100
right = num % 10
if left == right:
print('回文数')
else:
print('不是回文数')