总结
1.运算符
python中常用的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符
1) 数学运算符
a. +(加) -(减) *(乘)/(除)
加减乘除和数学中的一样
print (2 + 1)
print (2 - 1)
print (2 * 7)
print (2 / 3)
b. %(取余/模)
应用一:判断一个属是否能被另外一个数整除
print( 6 % 2)
应用二:取一个数的低位
print ( num % 10 )
c. //(整除)
print ( 5 // 2 )
print (9.7 // 3)
d.**(幂运算)
print ( 2 ** 3 )
print ( 81 ** 0.5 )
2) 比较运算符
==、!=、>=、<=、>、<
a.所有比较运算符的运算结果都是布尔值
b. python和别的语言的区别
python中的比较运算符指出表示范围的连写方式
x = 0.4
print(0<=x<=1)
3) 逻辑运算符
and、or、not
a. and(逻辑与)
应用场景
要求多个条件同时满足,将多个条件用and连接
运算符规则
两个都是True结果才是True,否则结果是False
T and T == T
T and F == F
F and F == F
F and T == F
练习
写出一个数同时能被3和7整除的条件
print('判断是否能同时被3和7整除')
num = int(input('请输入一个数'))
res = (num % 3 == 0) and (num % 7 == 0)
print(res)
print('判断是否能同时被3和7整除')
num = int(input('请输入一个数'))
res = num % 21 == 0
print(res)
b. or(逻辑或)
应用场景
要求多个条件中只要有以一个满足,将多个条件用or连接
运算符规则
只要有一个为True结果就是True,否则结果为False
T or T == T
T or F == T
F or T == T
F or F == F
练习
写出一个数能被3或7整除的条件
print('判断是否能被3或7整除')
num = int(input('请输入一个数:'))
res = (num % 3 == 0) or (num % 7 == 0)
print(res)
c. not(逻辑非)
Ⅰ. 应用场景
对一个条件进行否定
Ⅱ. 运算符规则
not T == F
not F == T
Ⅲ. 练习
①. 写出一个数不能被3和7整除的条件
num = int(input('请输入一个数:'))
print('判断不能同时被3和7整除')
res = not ((num % 3 == 0) and (num % 7 == 0))
if not res:
print('不满足条件')
else:
print('满足条件')
②. 判断一个数是否是偶数
num = int(input('请输入一个数:'))
if num % 2 == 0 :
print('是偶数')
else:
print('奇数')
③. 判断一个数是否能被3整除,且个位数是1
num = int(input('请输入一个数:'))
if num % 3 == 0 and num % 10 == 1:
print('能被3整除且个位数是1')
else:
print('不能')
④. 判断一个数的个位数加上十位数的和是否是偶数
num = int(input('请输入一个数:'))
while num != 0:
if ((num % 10) + (num // 10 % 10) % 2 == 0:
print('个位数加上十位数的和是偶数')
else:
print('个位数加上十位数的和不是偶数')
d.扩展
Ⅰ.短路操作
逻辑与的短路操作:
①. 表达式1 and 表达式2
表达式1结果False,则表达式2不执行
②. 表达式1 or 表达式2
表达式1为True,则2不执行
def func1():
print('func1')
print(False and func1())
print(True or func1())
Ⅱ. 运算对象不是布尔值
①. 表达式1 and 表达式2
如果表达式1的布尔值是True,则整个与运算的结果是表达式2。而如果表达式1是True,则结果是表达式2
②. 表达式1 or 表达式2
如果表达式1的布尔值是False,则整个与运算的结果是表达式2。而如果表达式1是True,则结果是表达式1
③. 补充
数据的布尔值
python中的所有数据都有布尔值,所有零值和空值对应的布尔值是False,其他都是True
print(7 and 8) #8
print(0 and 8) #0
print(0 or 8) #8
print(7 or 8) #7
print(not None) #True
4)赋值运算符
=、+=、-=、*=、/=、%=、//=、**=
a. 重要结论:
Ⅰ. 所有的赋值运算都是用来给变量赋值的,没有计算结果
Ⅱ.所有赋值运算符的左边都是变量
5) 总结
a. 优先级比较
Ⅰ. 数学运算符>比较运算符>逻辑运算符>赋值运算符
Ⅱ. ** > * 、/、%、// > +、-
Ⅲ. 括号优先
2. 分支结构
1) 流程控制
a. 顺序结构
代码从上往下一条一条执行,每条只执行一次
b. 分支结构
根据条件的不同,执行或者不执行不同的语句
c.循环结构
重复执行
2) 分支结构
python只有if,没有switch
a. if单分支结构 - 满足条件执行某个操作,条件不满足的时候对应的操作不执行
if 条件语句:
代码段
Ⅰ. 写法
if:关键字,固定写法
-
条件语句:任何有结果的表达式,除了赋值语句以外的表达式,比如:数据、运算表达式、函数表达式等
- :固定写法,半角
代码段:和if 保持一个缩进的一条或多条语句,满足条件才执行的代码
执行过程:先判断条件语句的结果是否为True
Ⅱ:练习
①.如果成年打印‘可以进网吧’
age = int(input('please input your age'))
if age >= 18 :
print('可以进网吧')
②.闰年
year = int(input('please input year:'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('闰年')
b. if双分支结构
满足条件执行一个操作,不满足的时候执行另一个操作
Ⅰ. 写法
if 条件语句:
代码段1
else:
代码段2
Ⅱ. 练习
如果指定的数是奇数,打印奇数,否则打印偶数
num = int(input('请输入数字'))
if num % 2:
print('奇数')
else:
print('偶数')
c. if多分支结构
根据不同的条件执行不同的操作
条件之间其中一个满足了,另外的条件绝对不满足
Ⅰ. 写法
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
else:
代码段N
Ⅱ. 练习
根据年龄的范围打印人生阶段
0-3 儿童,4-17少年,18-28青年,29-39壮年,40-59中年
①方法一:
age = int(input('请输入年龄:'))
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('中年')
elif 60 <= age:
print('老年')
else:
print('error')
②方法二:
age = int(input('请输入年龄:'))
if 0 <= age <= 3:
print('儿童')
elif age <= 17:
print('少年')
elif age <= 28:
print('青年')
elif age <= 39:
print('壮年')
elif age <= 59:
print('中年')
elif 60 <= age:
print('老年')
else:
print('error')
作业
选择题
-
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 的⽅法有(CD)。
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)。
编程题
-
写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。
num = int(input()) if num % 10 == 0: print(num, '能同时被2和5整除', sep='') else: print(num, '不能同时被2和5整除', sep='')
-
写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应
的结果。
num = int(input()) if num % 10 != 0 and (num % 2 == 0 or num % 5 == 0): print(num, '能被2或5整除,且不能同时被整除', sep='') else: print(num, '不满足条件', sep='')
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX
时XX分XX秒’的⽅式表示出来。
例如:100秒表示成 0时1分40秒
sec = 15678 hour = sec // 3600 sec = sec % 3600 minute = sec // 60 sec = sec % 60 print(hour, '时', minute, '分', sec, '秒')
-
定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!
公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
height = float(input('请输入身高(m)')) weight = float(input('请输入体重(kg)')) BMI = weight / height ** 2 print(BMI) if 18.5 <= BMI <= 24.9: print('True') else: print('False')
-
根据输入的成绩的范围打印
及格
或者不及格
score = float(input()) if score >= 60: print('及格') else: print('不及格')
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。age = int(input('请输入年龄')) if age < 0 or age > 150: print('这不是人') elif age < 18: print('未成年') else: print('成年人')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
。a = int(input('请输入a:')) b = int(input('请输入b:')) if (a - b) % 2: print(a - b) else: print(a, '-', b, '的结果不是奇数', sep='') print('及格') else: print('不及格')
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。age = int(input('请输入年龄')) if age < 0 or age > 150: print('这不是人') elif age < 18: print('未成年') else: print('成年人')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
。a = int(input('请输入a:')) b = int(input('请输入b:')) if (a - b) % 2: print(a - b) else: print(a, '-', b, '的结果不是奇数', sep='')