算术运算符
符号 | + | - | * | / | % | // | ** |
---|
含义 | 加 | 减 | 乘 | 除 | 求余数(取模) | 取整除 | 幂运算 |
常见算术运算符
- +(加)、-(减)、*(乘)、/(除)和数学中的对应运算功能一模一样;
其他算术运算符
-
% - 求余数、取模
print(5 % 2,16 % 2)
1,0
-
判断一个数是否被另外一个数整除(看余数是否为0) if 27 % 3 == 0:
print('27能被3整除')
27能被3整除
-
取低位数(对10或者10的幂次方取余) num = 2345
print(num % 10, num % 100, num % 1000)
5,45,345
-
// - 整除
print(5 // 2, 1.8 // 2, -5 // 2)
2,0.0,-3
-
* - 幂运算*
print(2 ** 3, 5 ** 3)
print(16 ** 0.5)
print(27 ** (1 / 3))
-
注意点 print(2.2 ** 2)
原因:(计算机存储原理问题) 计算机在存储浮点数的时候会存在精度问题;
比较运算符
符号 | > | < | >= | <= | == | != |
---|
含义 | 大于 | 小于 | 大于等于 | 小于等于 | 等于 | 不等于 |
-
重要结论:所有比较运算符的运算结果都是bool值 print(10 > 21)
print(25 < 45)
print(14 <= 14)
print(20 == 10)
print(20 != 10)
-
Python中的比较运算符可以像数学一样通过连写来表示范围 age = 3
print(18 <= age <= 28)
逻辑运算符
-
and - 逻辑与运算符
-
相当于生活中的并且,用于连接需要同时满足的多个条件; -
运算规则:只有and两边的两个条件都是True,结果就是True;只要有一个False结果就是False; -
四种情况: """
条件1 and 条件2
True and True - True
True and False - False
False and True - False
False and False - False
"""
-
课堂练习
- 写出一个数能同时被3和7整除的条件
num = 21
print('num是否同时被3与7整除:', num % 3 == 0 and num % 7 == 0)
print('num是否同时被3与7整除:', num % 21 == 0)
-
or - 逻辑或运算符 -
相当于生活中的或者,用于连接需要多个条件中满足任意一个条件的情况; -
运算规则:只要有一个条件是True,结果就是True;条件都是False结果才为False; -
四种情况: """
条件1 and 条件2
True and True - True
True and False - True
False and True - True
False and False - False
"""
-
课堂练习
- 拿奖学金条件:绩点高于4或者操行分不低于95;
gpa = 4.0
score = 95
print('能否拿奖学金:', gpa > 4 or score >= 95)
- 判断指定的年是否是闰年;
year = 2020
if year % 4 ==0 and year % 100 != 0:
print('普通闰年')
if year % 400 == 0:
print('世纪闰年')
print((year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
-
not - 逻辑非运算符
-
not 条件 - 否定条件,取反操作; -
对指定条件进行否定(取反),使用较少,一般用于正向条件很复杂,反向条件却很简单的时候; -
运算规则:把True变成False,False变成True; -
两种情况: not True - False
not False - True
-
课堂练习
- 年龄不大于18
age <= 18
not age > 18
- 写出一个不能同时被3和7整除的条件
"""
能被3整除,不能被7整除
不能被3整除,能被7整除
既不能被3整除,也不能被7整除
"""
print(not num % 21 == 0)
-
短路操作
True and print('逻辑与运算条件2被执行')
False and print('逻辑与运算条件2被执行')
True or print('逻辑或运算条件2被执行')
False or print('逻辑或运算条件2被执行')
-
逻辑运算符的扩展 - 运算对象不是布尔值
- 条件1 and 条件2 - 如果条件1为真(True),结果是数据2;条件1为假(False)则结果为条件1;
- 条件1 or 条件2 - 如果条件1为真(True),结果为数据1;条件1为假(False)则结果为条件2;
print(0 and 3)
print(0 or 0.0)
-
数据的布尔值 - 数据转成布尔值的结果
- Python中所有类型的数据都有布尔值;
- 所有的零值和空值对应的布尔值是False,其他数据的布尔值都是True;
- 常见的零值与空值:0、0.0、0.00、’’、""、[]、()、{}、None;
print(bool(0), bool(0.00), bool(''), bool([]), bool(None))
print(bool(1), bool(-1), bool(0.01), bool('x'), bool('False'))
False False False False False
True True True True True
赋值运算符
符号 | = | += | -= | *= | /= | %= | //= | **= |
---|
含义 | 简单赋值 | 加法赋值 | 减法赋值 | 乘法赋值 | 除法赋值 | 取模赋值 | 取整赋值 | 幂赋值 |
重要结论
- 所有的赋值运算的功能都是给变量赋值,不会产生一个结果(赋值运算的表达式没有结果);
- 所有的赋值运算的左边必须是变量且已经被定义过;
赋值方式
-
变量 = 数据 -> 直接赋值 -
变量 += 数据 -> 变量 = 变量 + 数据 name = 'abc'
num = 5 // 2
print(name,num)
b = 9
b += 2
print('b += 2', b)
b -= 3
print('b -= 3', b)
b **= 2
print('b **= 2', b)
b %= 2
print('b %= 2', b)
abc 2
b += 2 11
b -= 3 8
b **= 2 64
b %= 2 0
运算符优先级
- 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
- 数学运算符优先级 - ** > 、/、//、% > ± (有括号先算括号里面的)
分支结构
流程控制
- 顺序结构(默认) - 代码从上往下依次执行一次;
- 分支结构 - 代码的执行看条件是否成立(if语句);
- 循环结构 - 让代码重复执行(for、while);
if分支结构
if单分支结构
if双分支结构
if多分支结构
运算符和变量课后作业
选择题
-
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整除的条件语句, 并且打印对应的结果。 num = 150
if num % (2*5) == 0:
print(num, '能被2和5同时整除')
-
写出判断?个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应的结果。 num = 152
if num % 2 == 0 and num % 5 != 0:
print(num, '能被2整除,不能被5整除')
elif num % 2 != 0 and num % 5 == 0:
print(num, '能被5整除,不能被2整除')
-
假设今天的上课时间为15678秒,编程计算今天上课时间是多少?时,多少分钟,多少秒;以‘XX 时XX分XX秒’的?式表示出来。
例如:100秒表示成 0时1分40秒
Total_time = 15678
s = Total_time % 60
m = Total_time // 60 % 60
h = Total_time // (60 * 60)
print('{}时{}分{}秒'.format(h, m, s))
-
定义两个变量保存?个?的身?和体重,编程实现判断这个?的身材是否正常! 公式: 体重(kg) / (身?(m)的平?值 ) 在18.5 ~ 24.9之间属于正常。
输出格式: 是否正常:True/False
hight = float(input('请输入身高(单位:m):'))
weight = float(input('请输入体重(单位:kg):'))
if 18.5 <= weight / hight**2 <= 24.9:
print('是否正常:', True)
else:
print('是否正常:', False)
-
根据输入的成绩的范围打印及格 或者不及格 Total_score = int(input('请输入满分:'))
Score = int(input('请输入得分:'))
if Score >= Total_score*0.6:
print('及格')
else:
print('不及格')
-
根据输入的年纪范围打印成年 或者未成年 ,如果年龄不在正常范围内(0~150)打印这不是人! 。 age = int(input('请输入年龄'))
if age >= 150 or age <= 0:
print('这不是人!')
elif age < 18:
print('未成年')
elif age >= 18:
print('成年')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数 。 a = int(input('请输入整数a:'))
b = int(input('请输入整数b:'))
if (a - b) % 2 == 1:
print('a-b的结果为:', a - b)
else:
print('a-b的结果不是奇数')
|