运算符与分支
一.运算符
-
数学运算符
-
+、-、*、/ 和数学中的+、-、×、÷ 的功能一模一样
# 1. +、-、*、/ 和数学中的+、-、×、÷ 的功能一模一样 print(5 + 2) print(5 - 2) print(5 * 2) print(5 / 2)
-
% - 求余数、取模
# x % y - 求x除以y的余数 print(5 % 2) print(16 % 2) # 应用1:判断一个数是否能够被另外一个数整除(看余数是否为0) print(15 % 5) # 应用2:取低位数(对10或者10的幂次方取余) num = 2398 print(num % 10) # 8 print(num % 100) # 98
-
// - 整除
# x // y - x除以y的商向小取整 print(5 // 2) # 2; 2 2.5 3 print(1.8 // 2) # 0.0; 0 0.9 1 print(-5 // 2) # -3; -3 -2.5 -2 # 应用:正整数去低位 num = 23489 print(num // 10) # 2348 print(num // 100) # 练习2:获取指定正整数的十位数 num = 3945 print(num // 10 % 10) # 4 print(num % 100 // 10) # 4 # 练习3:获取指定正整数的百位数 num = 3945 print(num // 100 % 10) print(num % 1000 // 100)
-
** - 幂运算
# x ** y - 求x的y次方 print(2 ** 3) print(5 ** 3) print(16 ** 0.5) # 4.0 print(27 ** (1/3)) # 3.0p print(2.2 ** 2) # 2.2 * 2.2 = 4.84 print(2.0 ** 2)
-
-
比较运算符 :所有比较运算的结果都是布尔;可以像数学一样通过连写来表述范围
age = 3 print(18 <= age <= 28)
-
大于(>)
print(10 > 20) # False
-
小于(<)
print(10 < 20) # True
-
大于等于(>=)
print(10 >= 10) # True
-
小于等于(<=)
print(10 <= 10) # True
-
等于(==)
print(20 == 10) #False
-
不等于(!=)
print(20 != 10) # True
-
-
逻辑运算符
-
与运算(and):两个都是True结果就是True,只要有一个是False结果就是False
""" 条件1 and 条件2 True and True - True True and False - False False and True - False False and False - False """
-
或运算(or):只要有一个是True结果就是True,两个都为False结果才是False
""" 条件1 or 条件2 True or True - True True or False - True False or True - True False or False - False """
-
非运算(not):True变False, False变True
""" not 条件 not True - False not False - True """
-
-
逻辑运算扩展 - 运算对象不是布尔值
""" 数据1 and 数据2 - 如果数据1的布尔值是True,结果就是数据2,否则结果是数据1 数据1 or 数据2 - 如果数据1的布尔值是True,结果就是数据1,否则结果是数据2 """ print(8 and 7) # 7 print(10 and 7) # 7 print(0 and 7) # 0 print(False and 7) # False print(8 or 7) # 8 print(0 or 7) # 7
-
赋值运算符
-
赋值运算符:有的赋值运算的功能都是给变量赋值,不会产生一个结果。所有的赋值运算符的左边必须是变量
- 赋值运算符 :=、+=、-=、*=、/=、%=、//=、**=
-
运算符的优先级: 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符。有括号先算括号里面的
-
二.分支结构
-
流程控制
""" 1)顺序结构(默认) - 代码从上往下依次执行,每条语句执行一次 2)分支结构 - 代码的执行看条件是否成立(if语句) 3)循环结构 - 让代码重复(for、while) """ print('1') print('2') print('3')
-
if分支结构
-
if单分支结构
a.语法: if 条件语句: 代码段 b.说明 if - 关键字,固定写法 条件语句 - 任何有结果的表达式,例如:数据、运算表达式(赋值运算除外)、函数调用表达式等 : - 固定写法 代码段 - 就是和if保持一个缩进的一条或者多条语句(至少一条);就是需要满足条件才执行代码 c.执行过程 先判断条件语句是否为True(如果条件语句的结果不是布尔,就转换成布尔再看),如果为True就执行代码段,否则代码段不执行 """ a = -100 if a > 10: print('代码1') print('代码2') print('代码3') print('代码4')
-
if双分支结构
""" 语法: if 条件语句: 代码段1(满足条件才执行的代码) else: 代码段2(条件不满足的时候才执行的代码) 代码段3(不管条件满不满足都要执行的代码) """ # eg:根据年龄值打印成年或者未成年 age = 8 if age >= 18: print('成年') else: print('未成年')
-
if多分支结构
""" 语法: if 条件语句1: 代码段1 elif 条件语句2: 代码段2 elif 条件语句3: 代码段3 ... else: 代码段N 前提:多个条件中如果其中一个条件满足,其他的条件绝对不会满足 多个条件之间不存在约束关系: if 条件1: 代码段1 if 条件2: 代码段2 ... """ # eg:将指定百分制的分数分成A(90以上)、B[80, 90]、C[60,80)、D(60以下)四个等级 score = 98 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的值为(true)。
- 已知 x = 3 ,那么执⾏语句 x += 6 之后,x的值为(9)。
- 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2)。
编程题
-
写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。
num = 10 if num % 10 == 0: print('能同时被2和5整除',num)
-
写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应
的结果。
num = 10 if num % 10: print('能同时被2和5整除',num) else: print('不能同时被2和5整除',num)
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX
时XX分XX秒’的⽅式表示出来。
例如:100秒表示成 0时1分40秒
num = 15678 h = num // 3600 m = num % 3600 //60 s = num % 60 print(h,'时',m,'分',s,'秒')
-
定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!
公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
w = 65 h = 1.8 if 18.5 <= w / h**2 <= 24.9: print('正常') else: print('不正常')
-
根据输入的成绩的范围打印
及格
或者不及格
score =89 if score >= 60: print('及格') else: print('不及格')
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。year = input('请输入年龄:') if 0 < int(year) < 18: print('未成年') elif 18 <= int(year) < 150: print('成年') else: print('这不是人!')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
。
a = int(input("输入一个整数a"))
b = int(input("输入一个整数b"))
c = (a - b)
if c % 2 == 0:
print(c,'不是奇数')
else:
print(c)