Day2-运算符以及if分支结构
Python中常用运算符:
- 数学运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
1.数学运算符
-
-
-
- /
- %
- //
- **
- +、-、*、/ —— 和数学中的算法一样
print(3 + 1)
print(3 - 1)
print(3 * 1)
print(3 / 1)
- % - 求余数
x % y - 求x除以y的余数
print(7 % 3)
应用一:判断一个数是否能被另外一个数整除(奇偶性)
应用二:取一个数的低位数
num = 237
print(num % 10)
print(num % 100)
// - 整除
print(5 / 2) #2.5
print(5 // 2) #2
print(9.9 / 3) #3.3
print(9.9 // 3) #3
print(-7 // 3 ) #-3
应用一:去掉低位数保留高位数
num = 8547
print(num // 10) #854
4.** - 幂运算
x ** y - 求x的y次方
print(9 ** 2)
print(81 ** 2)
print(8 ** (1/3))
2. 比较运算符
-
==
-
!=
-
‘>’
-
<
-
‘>’=
-
<=
注:所有比较运算结果都是bool
print(10 == 10)
print(10 > 18)
pyhon中的比较运算符支持表示范围的连写(其他语言不支持)
x = 0.1
print(0 <= x <=1)
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 = int(input()) if num % 3 == 0 and num % 7 == 0: print('能够整除') else: print('不能整除')
print('是否能同时被3和7整除:',num % 3==0 and num % 7 ==0)
-
or - 逻辑或运算
- 应用场景:多个条件中只要有一个条件满足时 用or将多个条件连接在一起,相当于生活中的或者
- 运算规则:两个都是False结果才是False
练习:判断一个数是否能被3或者7整除
num = input('请输入一个数:') while True: try: num = int(num) break except ValueError: print('数据错误,请重新输入数据:') num = input() if num % 3 == 0 or num % 7 == 0: print('能够整除') else: print('不能整除')
-
not - 逻辑非运算
- 应用场景:对某一个条件进行否定
- 运算规则:
not True -> Fales
not False -> True
练习:判断一个数是否不能同时被3和7整除的条件
num = int(input())
print( not (num % 3 ==0 and num % 7 ==0))
练习:判断一个数是否是偶数
python
num=int(input())
print(num % 2 ==0)
练习:判断一个数是否能被3整除,并且个数是1
python
num = int(input())
print(num % 3 ==0 and num % 10)
练习:判断一个数的个位数加上十位数的和是否是偶数
python
num = int(input())
a = num % 10
b = num % 100 //10
print((a + b ) % 2 == 0)```
4. 逻辑运算符的补充
- 短路操作
- 逻辑与的短路操作: 表达式1 and 表达式2 中如果表达式1的结果是False,那么表达式2中代码不执行
- 逻辑或的短路操作: 表达式1 or 表达式2 中如果表达式1的结果是True ,那么表达式2中代码不执行
def func1(): print('执行函数体')
True and func1()
False and func1() False or func1()
True or func1()- 运算对象不是bool
- 与运算:
- 表达式1 and 表达式2 - 如果表达式1的结果是True则运算结果为表达式2; 如果表达式1的结果是False则运算结果为表达式1
- 与运算:表达式1 or 表达式2 - 如果表达式1的结果是False则运算结果为表达式2;如 果表达式1的结果是True则运算结果为表达式1
print(7 and 8) #8 print(7 or 8) #7
-
4. 赋值运算符
-
=
-
+=
-
-=
-
*=
-
/=
-
%=
-
//=
-
**=
重要结论
a = 10
+=、-=、*=、/=、%=、//=、**=
变量 += 数据 - 先将变量中保存的数据取出来,和右边数据进行加法运算,将计算结果重新赋值给变量
注意: 此处变量必须先赋值b = 10 b += 2 # b = b + 2 = 10 + 2 = 12 print(b)
a = 10 + 20 * 3 > 5 and 7 - 8 > 9
if分支结构
- 循环结构 - 让代码重复执行
-
分支结构 - if语句
-
if单分支结构 - 满足条件执行某个操作,条件不满足的时候对应操作不执行
- 语法:
if 条件语句:
代码段 - 说明:
if - 关键字,固定写法
条件语句 - 任何有结果的表达式(除了赋值语句以外的表达式)
: - 固定写法(注意输入法)
代码段 - 和if保持一个缩进的一条或者多条语句(满足条件才执行的代码) - 执行过程:
先判断条件语句结果是否为True,如果为True则执行代码段,否则代码段不执行
- 语法:
练习1:如果成年打印"可以进网吧"
age = 19 if age >= 18: print("可以进网吧")
练习2:给一个年份,如果年份是闰年就打印"闰年"
year = 2020 if (year % 4 == 0 and year % 100 !=0) or year % 100 ==0: print('闰年')
-
语法:
if 条件语句:
代码段1
else;
代码段2
练习:输入一个数,奇数输出奇数,偶数输出偶数
# 方法一: num = int(input()) if num %2 ==1: print('是奇数') else: print('是偶数') # 方法二: if num % 2: print('奇数') else: print('偶数')
-
if多分支结构 - 根据不同的条件执行不同的操作(条件之间满足:其中满足一个条件,另外的条件绝不会满足)
-
语法:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
…
else:
代码段N
练习:根据年龄的范围打印阶段
# 练习:根据年龄的范围打印阶段 # 0~3 儿童 # 4~17 少年 # 18~28 青年 # 29~39 壮年 # 40~59 中年 # 60及以上 老年 age = 67 if 0<=age<=3: print('儿童') elif age<=17: print('少年') elif age<=28: print('青年') elif age<=39: print('壮年') elif age<=59: print('中年') else: print('老年')
-
-
作业
选择题
- c
- a
- b
- a
- c.d
- a
- d
填空题
- type()
- True
- 9
- 9、6、2
编程题
- 写出判断一个数是否能同时被2和5整除的条件语句,并且打印对应的结果.
num = int(input())
if num % 10 == 0:
print("该数能同时被2和5整除")
else:
print("该数不能同时被2和5整除")
- 写出判断一个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件,并且打印对应结果
num = int(input())
if (num % 2 == 0 or num % 5 ==0) and not(num % 2 ==0 and num % 5 ==0):
print("该数可以")
else:
print('该数不可以')
- 假设今天的上课时间为15678秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以’XX时XX分XX秒’的方式表示出来
例如:100秒表示成0时1分40秒
sec = 15678
hours = sec // 3600
mintues = sec % 3600 // 60
seconds = sec % 60
print(hours,'时',mintues,'分',seconds,'秒')
-
定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!
公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
height = int(input()) weight = int(input()) res = weight/height**2 if 18.5 <= res <= 24.9: print("你的身材正常,请继续保持") else: print('你的身材不太正常,请多加管理')
-
根据输入的成绩的范围打印
及格
或者不及格
grade = int(input()) if grade <=59: 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())
b = int(input())
if (a-b) % 2:
print('a-b是奇数')
else:
print('a-b的结果不是奇数')