运算符与分支
运算符
-
数学运算符,包括:+、-、*、/、%(取余数、取模)、//(整除)、**(幂运算)
-
加减乘除:python中 +、-、*、/ 和数学中的加减乘除一样;例如: print(5+2)
print(5-2)
print(5*2)
print(5/2)
-
%(取余数、取模) 编码方式:方式:x % y ;例如: print(5 % 2)
print(16 % 5)
应用1:判断一个数是否能被另外一个数整除(奇偶性:对2进行取余) print(15 % 4)
print(79 % 2)
应用2:对一个数取 低位数 方法:对10的n次方进行取余,n位最低位数个数,例如: num = 6565
print(num % 10)
print(num % 1000)
print(num % 10000)
-
//(整除) 编码方式:x // y --> x除以y的商 向下取整,例如: print(10 // 3)
print(15 // 2)
print(-15 // 2)
应用:正整数取高位 方式:对10的n次方进行整除,例如: num = 25645
print(num // 10)
print(num // 1000)
练习:取3925的十位与百位数 num = 3925
print(num % 100 // 10)
print(num //100 % 10)
print(num % 1000 // 100)
-
幂运算 编码方式:x ** y:求x的y次方,例如: print(16**2)
print(16 ** 0.5)
print(27 ** (1/3))
-
比较运算符,包括:>、<、>=、<=、==(等于)、!=(不等于) **重要结论:**所有比较运算的运算结果都是布尔,例如: print(10 > 20)
print(10 <= 10)
print(10 != 10)
print(10 == 10)
注意:python中的运算符可以像数学一样通过连写来表示范围 age = 18
print(10 < age < 30)
-
逻辑运算符,包括:and(逻辑与运算符)、or(逻辑或运算)、not(逻辑非运算符)
-
and(逻辑与运算符) 应用场景:相当于生活中的并且,用于连接需要同时满足的多个条件 运算规则:两个条件都为True,结果为True;有一个条件为False,结果就位False 条件1 and 条件2: '''
True and True # True
True and False # False
False and False # False
False and True # False
'''
练习:写出一个数能同时被3或7整除的条件 num = 67
print(num % 3 == 0 and num % 7 == 0)
print(num % 21 == 0)
-
or - 逻辑或运算符 应用场景:相当于生活中的或者,用于连接需要多个条件中满足一个条件就行的情况 运算规则:两个条件中有一个为True,结果就为True;所有条件都为False,结果才为False 条件1 or 条件2: '''
True or True # True
True or False # True
False or False # False
False or True # True
'''
练习1:拿奖学金的条件:绩点高于4.0或评分不低于95 gpa = 3.8
score = 92
print('是否能拿奖学金:', gpa > 4.0 or score >= 95)
练习2:判断指定年是否为闰年 ? 闰年的条件:①、普通闰年能被4整除且不能被100整除的为闰年 ? ②、世纪闰年能被400整除的是闰年 year = 2021
print('是否是闰年:', (year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
-
not(逻辑非运算) 编码方式:not 条件 – 否定一个条件 应用场景:对指定条件取反 运算规则: True变False,False变True '''
not True # False
not False # True
例如:
年级不大于18:age <= 18、not age > 18
'''
? 多应用于:当正向描述一个条件比较复杂,但反向描述简单的情况 ? 练习:写出一个数不能同时被3和7整除的数 ? 正向描述:① 能被3整除,不能被7整除;② 能被7整除,不能被3整除;③ 既不能被7整除,也不能被3 整除 ? 反向描述: print(not num % 21 == 0)
-
逻辑运算符扩展 —> 运算对象不是布尔值 数据1 and 数据2 —> 如果数据1的布尔值为True,结果就是数据2;否则就是数据1 数据1 or 数据2 —> 如果数据1的布尔值为True,结果就是数据1否则就是数据2 例如: print(7 and 5)
print(0 and 5)
print(False and 5)
print(5 or 7)
print(0 or 7)
-
短路操作 条件1 and 条件2 :如果条件1已经是False,那么条件2不会执行;例如: '' and print('SCU')
1 and print('SCU')
条件1 or 条件2 :如果条件1已经是True,那么条件2不会执行;例如: '' or print('SCU')
1 or print('SCU')
-
数据的布尔值 ----> 数据转换成布尔的结果 python中所有类型的数据都有布尔值 转换规则:所有的0值和空值对应的布尔值是False,其他数据对应的布尔值都是True 常见的0值和空值:0、0.0、’ '、" "、{}、[]、()、None;例如: print(bool(0), bool(0.0), bool(''),bool(),bool([]))
print(bool(12), bool(-8), bool('四川'))
-
赋值运算符:=、+=、-=、*=、/=、%=、//=、**= 重要结论:所有的赋值运算的功能都是给变量赋值,所以不会产生一个结果(即赋值运算的表达式没有结果),所以赋值运算符的左边必须是变量;例如: a = 10
10 > 20
print(10 > 20)
1.= :定义变量或重新给给赋值的时候使用,例如: name = '雷洋'
num = 10 * 20
2.+=、-=、*=、/=、%=、//=、**= 要求:赋值符号前面的变量必须是已经定义过的值 变量 += 数据 --> 变量 = 变量 + 数据,例如: num = 60
num += 10
print(num)
num -= 20
print(num)
num *= 2
print(num)
num %= 6
print(num)
num //= 3
print(num)
3.运算符的优先级 ? 1.数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符 ? 2.数学运算符:** > *、/、%、// > +、- ? 3.有括号先算括号内 c = 10 < 5 * 3
print(c)
分支
-
流程控制
- 顺序结构:(默认执行方式) ===》代码从上至下依次执行,每条语句执行一次
- 分支结构:代码的执行看条件是否成立(if语句)
- 循环结构:让代码重复执行(for、while)
-
if分支结构
-
if单分支结构:满足条件时执行某个操作,条件不满足的时候,操作不执行
-
语法: if 条件语句 : ? 代码段 -
说明: if : 关键字,固定写法 条件语句 : 任何有结果的表达式,例如:数据、运算表达式(赋值除外)、函数调用 表达式等 : – 固定写法 代码段 : 和if保持一个缩进的一条或多条语句(至少一条);需要满足条件才执行的 代码 -
执行过程:先判断条件语句是否为True(如果条件语句不是bool,就转换成bool再判断),如果为True,就执行代码段,否则代码段不执行 例如: a = 2
if a > 1:
print(123)
print('leiyangcd')
练习1:如果是偶数则打印‘偶数’,如果是奇数,则打印’奇数‘ num = 23
if num % 2 == 0:
print('偶数')
if not num % 2:
print('偶数')
if num % 2 != 0:
print('奇数')
if num % 2:
print('奇数')
练习2:判断指定的数是否为水仙花数 水仙花数:个位数的三次方 + 十位数的三次方+ 百位数的三次方 = 这个数 num = 153
bai = num // 100
shi = num % 100 // 10
ge = num % 10
print(bai, shi, ge)
if num == (bai**3 + shi**3 + ge**3):
print('水仙花数')
-
if双分支结构:满足条件执行某个操作,不满足的时候执行另一个操作
-
语法: if 条件语句: ? 代码段1(满足条件时执行) else: ? 代码段2(条件不满足时执行) 代码段3(不管条件是否满足,都执行) 练习:根据年龄值打印成年或未成年 age = 15
if age >= 18:
print('已成年')
else:
print('未成年')
-
if多分支结构:根据不同的条件做不一样的事情 语法: if 条件语句1: ? 代码段1 elif 条件语句2: ? 代码段2 … elif 条件语句n: ? 代码段n else: ? 代码段 前提:多个条件中,如果其中一个条件满足,其他的所有条件绝对不会满足 练习1:将指定分数分成A(90以上)、B[8090]、C[6080)、D(60以下)四个等级 score = 91
if score > 90:
print('A')
elif score >= 80:
print('B')
elif score >= 60:
print('C')
else:
print('D')
?
练习题
选择题
-
print(100 - 25 * 3 % 4) 应该输出什么? (B) A. 1 B. 97 C. 25 D. 0 -
下列哪种说法是错误的(A)。 A. 除字典类型外,所有标准对象均可以?于布尔测试 B. 空字符串的布尔值是False C. 空列表对象的布尔值是False D. 值为0的任何数字对象的布尔值是False -
下列表达式的值为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的值为(3)。
- 已知 x = 3 ,那么执?语句 x += 6 之后,x的值为(9)。
- 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2)。
编程题
-
写出判断?个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。 num = int(input('请输入一个数:'))
if num % 10:
print(num, '不能被2和5同时整除')
else:
print(num, '能同时被2和5整除')
-
写出判断?个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应 的结果 num = int(input('请输入一个数:'))
if num % 10 == 0:
print('能同时被2和5整除')
elif num % 2 ==0 or num % 5 ==0:
print('能够被2或者5整除,但是不能同时被2或者5整除')
else:
print('既不能被2整除也不能被5整除')
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少?时,多少分钟,多少秒;以‘XX 时XX分XX秒’的?式表示出来。 num = 15678
hour = num // 3600
minute = (num % 3600) // 60
second = (num % 3600) % 60
print(hour, '时', minute, '分', second, '秒')
-
定义两个变量保存?个?的身?和体重,编程实现判断这个?的身材是否正常! 公式: 体重(kg) / (身?(m)的平?值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
height = float(input('请输入身高:'))
weight = float(input('请输入体重:'))
ratio = weight / height
if 18.5 <= ratio <= 24.9:
print('是否正常:', True)
else:
print('是否正常', False)
-
根据输入的成绩的范围打印及格 或者不及格 score = float(input('请输入成绩:'))
if score >= 60:
print('合格')
else:
print('不合格')
-
根据输入的年纪范围打印成年 或者未成年 ,如果年龄不在正常范围内(0~150)打印这不是人! 。 age = int(input('请输入年龄:'))
if age < 18:
print('未成年')
elif age < 150:
print('成年')
else:
print('这不是人!')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数 a = int(input(('请输入第一个数:')))
b = int(input(('请输入第二个数:')))
if (a-b) % 2:
print(a-b)
else:
print('a-b的结果不是奇数')
|