python运算符和分支
1、数学运算符
数学运算符有:+(加)、-(减)、*(乘)、/(除)、%(取模/取余数)、//(整除)、**(幂运算)
1、“+、-、*、/”和数学中的符号功能一样
print(1 + 2)
print(1 - 2)
print(1 * 2)
print(1 / 2)
2、% (求余数)
x%y (求x除以y的余数)
应用1:判断一个数能否被另一个数整除(看余数是否为0)
应用2:取低位数
num = 2345
print(num % 10) # 5
print(num % 100) # 45
3、// (整除)
x//y (x除以y的商向小取整)
应用:正整数去低位
num = 234567
print(num // 10) # 23456
print(num // 100) # 2345
练习:获取正整数的十位数
num = 3945
print(num % 100 // 10) #4
print(num // 10 % 10) #4
print(num % 1000 // 100) #9
print(num // 100 % 10) #9
4、** (幂运算)
x**y (求x的y次方)
print(2 ** 3) # 8
print(2.0 ** 3) # 8.0
print(16 ** 0.5) # 4.0
print(27 ** (1 / 3)) # 3.0
2、比较运算符
比较运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)
结论:所有比较运算的运算结果都是布尔
print(1 > 2) # False
print(1 < 2) # True
print(1 <= 1) # True
print(1 == 2) # False
注意:python中的比较运算符可以像数据一样通过连写来表示范围
age = 3
print(18 <= age <= 28) # False
3、逻辑运算符
逻辑运算符:and(逻辑与运算符)、or(逻辑或运算)、not(逻辑非)
1、and
相当于并且,用于连接需要同时满足的多个条件
运算规则:条件1 and 条件2
两个条件结果都是True,最终结果是True,只要有一个False,最终结果就是False
练习;写出一个数能同时被3和7整除的条件
num = 21
a = num % 3 == 0
b = num % 7 == 0
print(a and b)
print(num % 21 == 0)
2、or
相当于或者,用于连接需要多个条件中满足一个条件情况
运算规则:条件1 or 条件2
只要有一个条件是True结果是就是True,两个条件都是False结果才是False
练习:奖学金条件,绩点高于4或评分不低于95
gpa = 4.0
score = 95
print('是否可以拿奖学金:', gpa > 4.0 or score >= 95)
'''
是否可以拿奖学金: True
'''
练习:判断指定的年是否是闰年
year = 2000
a = year % 4 == 0
b = year % 100 != 0
print('普通闰年', a and b)
print("世纪闰年", year % 400 == 0)
print("闰年", (a and b) or (year % 400 == 0))
'''
普通闰年 False
世纪闰年 True
闰年 True
'''
3、not
not 条件 (否定条件)
对指定条件进行否定(取反),用于正向条件很多很复杂,而反向条件很简单,条件就反向写然后加not
运算规则:True变False,False变True
练习:写出一个不能同时被3和7整除的条件
num = 11
print(not num % 21 == 0)
4、短路操作
条件1 and 条件2 如果条件1已经是False,那么条件2不执行
条件1 or 条件2 如果条件1是True,那么条件2不执行
False and print("执行")
5、逻辑运算符的扩展 运算对象不是布尔值
数据1 and 数据2 如果数据1的布尔值是True,结果是数据2,否则为数据1
数据1 or 数据2 如果数据1的布尔值是True,结果是数据1,否则为数据2
print(2 and 1) #1
print(0 or 2) #2
print(0 and 7) #0
print(3 or 7) #3
6、数据的布尔值 数据转化为布尔的结果
python中所有类型的数据都有布尔值
所有的零值和空置对应的布尔值是False,其余数据的布尔值都是True
常见的零值和空置:0、0.0、0.00、’’、“”、[]、()、{}、None
print(bool(0.00)) # False
print(bool(-12)) # True
4、赋值运算符
赋值运算符:=、+=、-=、*=、/=、//=、%=、**=
结论:所有的赋值运算的功能都是给变量赋值,不会产生结果(赋值运算表达式没有结果)
print(a=1) # 报错
注意:所有赋值运算符的左边必须是变量
1、=
定义变量或重新给变量赋值的时候使用
name = 22
num = 10 * 10
2、复合运算:+=、-=、*=、/=、//=、%=、**=
要求:赋值符号前面的变量必须是已经定义过的变量
变量+=数据 即 变量=变量+数据
b = 10
b += 2
print(b) # 12
b -= 3
print(b) # 9
b **= 2
print(b) # 81
b %= 2
print(b) # 1
5、运算符的优先级
数学运算符>比较运算符>逻辑运算符>赋值运算符
数学运算符优先级:**>*、/、//、%>+、-
有括号先算括号里面
6、分支结构
1、流程控制
- 顺序结构(默认):代码从上往下依次执行,每条语句执行一次
2)分支结构:代码的执行看条件是否成立(if语句)
3)循环结构: 让代码重复执行(for、while)
2、if分支结构
1) if单分支结构
满足条件执行某个操作,这个条件不满足时操作就不执行
语法:
if 条件语句:
代码段
说明:
if (关键字,固定写法)
条件语句 (任何有结果的表达式,例如,数据、运算表达式(赋值运算除外)、函数调用表达式)
: ( 固定写法)
代码段 (就是和if保持一个缩进的一条或者多条语句(至少一条);就是需要满足条件才执行的代码)
执行过程:
先判断条件语句是否为True(如果条件语句的结果不是布尔,就转化成布尔再看),如果为True就执行代码段,否则代码段不执行
练习:如果指定的数是偶数就打印“偶数”
num = 4
if num % 2 == 0:
print('偶数')
if not num % 2: # num % 2==0 0是True,直接就是布尔值
print('偶数')
练习:如果指定的数是奇数就打印“奇数”
num = 4
if num % 2 != 0:
print('奇数')
if num % 2:
print('奇数')
练习:判断指定的数据是否是水仙花数
num = 153
a = num % 10
b = num % 100 // 10
c = num // 100
if a ** 3 + b ** 3 + c ** 3 == num:
print(num, '是水仙花数')
'''
153 是水仙花数
'''
2)if双分支结构
满足条件执行某个操作,这个条件不满足执行另外一个操作
if 条件语句:
代码段1(满足条件才执行)
else:
代码段2(条件不满足执行)
代码段3(不管满不满足都执行)
练习:根据年龄打印成年或未成年
age = 122
if age >= 18:
print('成年')
else:
print('未成年')
'''
成年
'''
3)if多分支结构
根据不同的条件做不一样的事情
语法:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
…
else:
代码段N
前提:多个条件中一个条件满足,其他条件绝对不会满足
若不满足前提,多个条件间不约束
if 条件1:
代码段1
if 条件2:
代码段2
…
练习:将指定分数分成A【90以上】、B【80,90】、C【60,80】、D【60以下】四个等级
score = 68
if score >= 90:
print('A')
elif 80 <= score:
print('B')
elif 60 <= score:
print('C')
else:
print('D')
'''
C
'''
练习:
选择题
-
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的值为(True)。
- 已知 x = 3 ,那么执⾏语句 x += 6 之后,x的值为(9)。
- 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2.0)。
编程题
-
写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。
x = int(input('输入一个数:')) a=x % 2 == 0 b=x % 5 == 0 if a and b: print('能同时被2和5整除') ''' 输入一个数:10 能同时被2和5整除 '''
-
写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应的结果。
x = int(input('输入一个数:')) a = x % 2 == 0 b = x % 5 == 0 if (a or b) and (x % 10 != 0): print('能够被2或者5整除,但是不能同时被2或者5整除') ''' 输入一个数:2 能够被2或者5整除,但是不能同时被2或者5整除 '''
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX时XX分XX秒’的⽅式表示出来。
例如:100秒表示成 0时1分40秒
time = 15678 h=time//60**2 m=(time%60**2)//60 s=(time%60**2)%60 print(h,'时',m,'分',s,'秒') ''' 4 时 21 分 18 秒 '''
-
定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!
公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
weight = float(input('输入体重(kg):')) height = float(input('输入身高(m):')) print('是否正常', 18.5 < weight / height ** 2 < 24.9) ''' 输入体重(kg):51 输入身高(m):1.65 是否正常 True 输入体重(kg):50 输入身高(m):1.65 是否正常 False '''
-
根据输入的成绩的范围打印
及格
或者不及格
score =int(input('输入成绩:')) if score >= 60: print('及格') else: print('不及格') ''' 输入成绩:60 及格 输入成绩:10 不及格 '''
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围(0~150)内打印这不是人!
。age = int(input('输入年龄:')) if 150>age >= 18: print('成年') elif 18>age>0: print('未成年') else: print('这不是人!') ''' 输入年龄:21 成年 输入年龄:11 未成年 输入年龄:199 这不是人! '''
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
。a=int(input('输入整数1:')) b=int(input('输入整数2:')) c=a-b if c%2!=0: print(c) else: print('a-b的结果不是奇数') ''' 输入整数1:9 输入整数2:7 a-b的结果不是奇数 输入整数1:9 输入整数2:6 3 '''