总结
运算符
1.数学运算符:+(加)、-(减)、*(乘)、/(除)、%(取余,取模)、//(整除)、**(幂运算)
-
+、-、*、/ - 和数学中的加减乘除的功能一摸一样
print(4 + 29) # 33 print(42 - 132) # -90 print(5 / 2) # 2.5 print(4 * 2) # 8 a = 1 / 7 print(a * 7) # 1.0
-
% - 求余数
print(5 % 2) # 1 print(9 % 3) # 0
-
应用一:判断一个数是否能被另一个数整除
if 5 % 3 == 0: print('true')
-
应用二:去一个数的低位数
num = 345 print(num % 10) # 5 print(num % 100) # 45
-
-
// - 整数(求商,商向小取整)
print(5 / 2) # 2.5 print(5 // 2) # 2 print(9.6 / 3) # 3.1999999999999997 print(9.6 * 10 / 3 / 10) # 3.2 print(9.6 // 3) # 3 print(-5 // 2) # -3
-
应用一:去掉低位数保留高位数
num = 234253 print(num // 10) # 23425 num = -num print(num // 10) # -23426
-
-
** - 幂运算(x ** y - 求x的y次方)
print(2 ** 3) # 8 print(4 ** (1/3)) # 1.5874010519681994 print(81 ** 0.5) # 9.0
2.比较运算符:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
-
所有的比较运算符的运算结果都是布尔
print(10 == 10) # True print(7 <= 8) # True print(10 > 100) # False
-
python中的比较运算符支持表示范围的连写方式(别的语言不支持)
x = 0.5 print(0 < x <= 1.6) # True
3.逻辑运算符:and(逻辑与运算)、or(逻辑或运算符)、not(逻辑非运算符)
-
and - 逻辑运算符
-
应用场景:要求多个条件同时满足的时候就将多个条件用and连接,相当于生活中的并且
-
运算规则:两个或多个全部都是True结果才是True,否则结果是False
# True and True -> True # True and False -> False # False and True -> False # False and False -> False
举例:判断一个数能同时被3和7整除的条件
num = input("输入一个数:") # 42 while True: try: num = int(num) break except ValueError: print('输入数据有误,请重新输入:', end='') num = input() print(num % 3 == 0 and num % 7 == 0) # True print(num % 21 == 0) # True
-
-
or - 逻辑或运算
-
应用场景:多个条件中只要有一个条件满足的时候就使用or将所有条件连接到一起
-
运算规则:两个都是False结果才是False,只要有一个是True,结果就是True
# True or True -> True # True or False -> True # False or True -> True # False or False -> False
举例:判断一个数能被3或7整除
num = input("输入一个数:") # 45 while True: try: num = int(num) break except ValueError: print('输入数据有误,请重新输入:', end='') num = input() print(num % 3 == 0 or num % 7 == 0) # True
-
-
not - 逻辑非运算
-
应用场景: 对某一个条件进行否定
-
运算规则:
# not True -> False # not False -> True
举例:
# 练习: 判读一个数是否是偶数 num = input("输入一个数:") # 343 while True: try: num = int(num) break except ValueError: print('输入数据有误,请重新输入:', end='') num = input() print('该数是否是偶数:', num % 2 == 0) # Flase # 练习: 判读一个数是否是能被3整除, 并且个位数是1 print('该数是否是能被3整除, 并且个位数是1:', num % 3 == 0 and num % 10 == 1) # False # 练习: 判读一个数的个位数加上十位数的和是否是偶数 print('该数的个位数加上十位数的和是否是偶数:', (num % 10 + num // 10 % 10) % 2 == 0) # False print('该数的个位数加上十位数的和是否是偶数:', (num % 10 + num % 100 // 10) % 2 == 0) # False
-
-
扩展
-
短路操作
- 逻辑与的短路操作:表达式1 and 表达式2 中如果表达式1的结果是False,那么表达式2对应的代码不执行
- 逻辑或的短路操作:表达式1 or 表达式2 中如果表达式1的结果是True,那么表达式2对应的代码不执行
-
运算对象不是bool值
-
表达式1 and 表达式2 - 如果表达式1的布尔值是True,整个与运算结果是表达式2;如果表达式1的布尔值是False,整个运算结果的表达式1
-
表达式1 or 表达式2 - 如果表达式1的布尔值是True,整个与运算结果是表达式1;如果表达式1的布尔值是False,整个运算结果的表达式2
print(False and 8) # False print(9 and 6) # 6 print(False or 9) # 9 print(9 or 6) # 9 print(not 7) # False
-
-
数据的布尔值
- python中所有的数据都有布尔值,所有零值和空值对应的布尔值是False,其它都为True
- 常见的空值和零值:0、0.0、0.00、‘’、""、None
-
4.赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
-
所有的赋值运算符运算的都是用来给变量赋值,没有计算结果(所有的赋值运算都没有结果)
a = 10 # print(a = 20) TypeError: 'a' is an invalid keyword argument for print()
-
所有赋值运算符的左边都必须是变量
-
变量 = 值 - 将数据保存到变量
-
+=、-=、*=、/=、//=、%=、**=(先将变量中保存的数据取出来,和右边的数进行加法运算,将计算结果重新赋值给变量)
# 注意:这儿的变量必须先赋值 # b += 9 # NameError: name 'b' is not defined b = 10 b += 3 # b = b + 3 print(b) # 13 b *= 2 # b = b * 2 print(b) # 26
-
-
运算符的优先级
-
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
-
数学运算符优先级: ** > *、/、%、// > +、-
-
有括号先算括号里面的
a = 10 + 2 * 4 + 9 / 3 print(a) # 21 a = (10 + 2) * 4 + 9 / 3 print(a) # 51
-
分支结构
1.流程控制
- 顺序结构(默认) - 代码从上往下一条一条的执行,每条代码只执行一次
- 分支结构 - 根据条件去执行或者不执行某些代码
- 循环结构 - 让代码重复执行
2. 分支结构 - if语句
-
if单分支结构 - 满足条件执行某个操作,条件不满足的时候对应操作不执行
""" 语法: if 条件语句: 代码段 说明: if - 关键字,固定写法 条件语句 - 任何有结果的表达式(除了赋值语句以外的表达式),比如:数据,运算表达式,函数调用表达式 : - 国定写法(注意输入法) 代码段 - 和if保持一个缩进的一条或者多条语句(满足条件才执行的代码) 执行过程: 先判断条件语句的结果是否为True,如果为True就执行代码的,否则代码段不执行 """ a = 1923 if a: print('执行代码段1') print('执行代码段2') print('执行代码段3')
-
if双分支结构 - 满足某个条件执行某个操作,不满足时执行另一个操作
""" 语法: if 条件语句: 代码段1(满足条件执行的代码) else: 代码段2(不满足条件执行的代码) """ 练习1: 给定一个数字,如果该数是奇数就打印'奇数'否则打印'偶数' num = input('请输入一个数:') # 33 while True: try: num = int(num) break except ValueError: print('输入数据有误,请重新输入:', end='') num = input() # 方法一: # 奇数 if num % 2 == 1: print('奇数') else: print('偶数') # 方法二: # 奇数 if num % 2: print('奇数') else: print('偶数')
-
if多分支结构 - 根据不同的条件执行不同的操作(条件之间满足:其中一个条件满足了,另外的条件绝对不会满足)
""" 语法: if 条件语句1: 代码块1(如果条件语句1满足,则执行) elif 条件语句2: 代码块2(如果条件语句2满足,则执行) elif 条件语句3: 代码块3(如果条件语句3满足,则执行) elif 条件语句4: 代码块4(如果条件语句4满足,则执行) ... else: 代码块n """ # 练习1: 根据年龄的范围打印人生阶段 # 0~3 - 儿童 # 4~17 - 少年 # 18~28 - 青年 # 29~39 - 壮年 # 40~59 - 中年 # 60及以上 - 老年 age = 18 if age <= 3: print('儿童') elif age <= 17: print('少年') elif age <= 28: print('青年') elif age <= 39: print('壮年') elif age <= 59: print('中年') else: print('老年')
作业
选择题 B|A|B|A|C、D|A|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|True|9|9、6、2
- 查看变量中数据的类型的函数名是(type)。
- 已知 x = 3 == 3 ,执⾏结束后,变量x的值为(True)。
- 已知 x = 3 ,那么执⾏语句 x += 6 之后,x的值为(9)。
- 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2)。
编程题
-
写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。
num = input('请输入一个数:') while True: try: num = int(num) break except ValueError: num = input('输入数据有误,请重新输入一个数:') if num % 10: print('该数不能同时被2和5整除') else: print('该数能同时被2和5整除')
-
写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应
的结果。
num = input('请输入一个数:') while True: try: num = int(num) break except ValueError: num = input('输入数据有误,请重新输入一个数:') if num % 10 and (not num % 2 or not num % 5): print('该数能够被2或者5整除')
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX
时XX分XX秒’的⽅式表示出来。
例如:100秒表示成 0时1分40秒
second = 15678 _hour = second // 3600 _minute = second // 60 % 60 _second = second % 60 print(_hour, '时', _minute, '分', _second, '秒', sep='')
-
定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!
公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
height = input('请输入身高(m):') while True: try: height = float(height) break except ValueError: height = input('输入身高数据有误,请重新输入身高(m):') weight = input('请输入体重(kg):') while True: try: weight = float(weight) break except ValueError: weight = input('输入体重数据有误,请重新输入体重(kg):') print('是否正常:', 18.5 <= weight / height**2 <= 24.9)
-
根据输入的成绩的范围打印
及格
或者不及格
grade = input('请输入成绩:') while True: try: grade = int(grade) break except ValueError: grade = input('输入成绩数据有误,请重新输入成绩:') if grade >= 60: print('及格') else: print('不及格')
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。age = input('请输入年龄:') while True: try: age = int(age) break except ValueError: age = input('输入年龄数据有误,请重新输入年龄:') # 方法一: if 0 <= age <= 150: if age >= 18: print('成年') else: print('未成年') else: print('这不是人!') # 方法二: if age < 0 or age > 150: print('这不是人!') elif age >= 18: print('成年') else: print('未成年')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
。a = input('请输入a的值:') while True: try: a = int(a) break except ValueError: a = input('输入a的值数据有误,请重新输入a的值:') b = input('请输入b的值:') while True: try: b = int(b) break except ValueError: b = input('输入b的值数据有误,请重新输入b的值:') if (a - b) % 2: print(a - b) else: print('a-b的结果不是奇数')