案例
用户手工输入梯形的上底、下底以及高,编程打印出梯形的面积为多少。
所谓的算数运算符就是我们日常生活中的加减乘除等待。
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出结果为 2 |
- | 减 | 1 - 1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 9 // 4 输出结果为 2 |
% | 取余(取模) | 9 % 4 输出结果为 1 |
** | 幂指数 | 2 ** 4 输出结果为 16,即2的4次方,2 * 2 * 2 * 2 |
() | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
案例1
了解一下算术运算符
num1 = 10
num2 = 2
# 四则运算 + - * /
print(f'加:{num1 + num2}')
print(f'减:{num1 - num2}')
print(f'乘:{num1 * num2}')
print(f'除:{num1 / num2}')
案例2
和其他编程语言不太相同的几个算术运算符
num1 = 20
num2 = 6
num3 = 5
# 1、整除
print(f'整除:{num1 // num2}')
# 2、求余数
print(f'余数:{num1 % num2}')
# 3、幂指数
print(f'幂指数:{num2 ** 3}')
# 4、圆括号
print(f'优先级:{(num1 + num2) * num3}')
回到文章开始,如何求梯形的面积。
需求
用户输入、数据类型转换以及算术运算符
a = float(input('请输入上底:'))
b = float(input('请输入下底:'))
h = float(input('请输入高:'))
s = (a + b) * h / 2
print(f'梯形的面积:{s}')
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值 | 将=右侧的结果赋值给等号左侧的变量 |
案例1
把某个值赋值给某个变量
num = 10
案例2
多个变量同时进行赋值操作
n = 5
f = 10.88
s = 'hello world'
简写为:
n, f, s = 5, 10.88, 'hello world'
print(n)
print(f)
print(s)
案例3
多个变量赋予相同的值
a = 10
b = 10
简写为:
a = b = 10
复合赋值运算符就是算术运算符结合赋值运算符。
案例
复合赋值
i = 1
# 相加并赋值,先加1,然后把结果赋值给左边的变量
i += 1
print(f'更新后,i的值为:{i}')
num1 = 9
# 取模并赋值,先求余数,然后在把结果赋值给左边的变量
num1 %= 2
print(f'更新后,num1的值为:{num1}')
num2 = 2
# 幂指数并赋值,先求幂指数,然后把结果赋值给左边的变量
num2 **= 3
print(f'更新后,num2的值为:{num2}')
复合赋值运算符的计算顺序 = 先执行算术运算符,执行完毕后,把结果在赋值给左边的变量。
当我们使用比较运算符对两个变量进行比较时,其返回一个布尔类型的值。
案例
两个数大小的比较
num1 = 10
num2 = 20
print(num1 > num2) # False
print(num1 < num2) # True
print(num1 >= num2) # False
print(num1 <= num2) # True
print(num1 == num2) # False
print(num1 != num2) # True
练习题1
提示用户输入圆的半径,根据公式 S = π r 2 S = πr^2 S=πr2求圆的面积
r = float(input('请输入要计算圆的半径:'))
PI = 3.14
s = PI * r ** 2
print(f'圆的面积为:{s}')
练习题2
赋值运算 => 输入身高,体重,求 B M I = 体 重 ( k g ) / 身 高 ( m ) BMI = 体重(kg)/身高(m) BMI=体重(kg)/身高(m)的平方。
height = float(input('请输入您的身高(m):'))
weight = float(input('请输入您的体重(kg):'))
bmi = weight / height ** 2
print(f'您的BMI值为{bmi}')
not
就是取反,只有一个表达式not 表达式
,如果表达式为True
,则not
以后就返回False
。反之,则返回True
。
讲个非诚勿扰的小故事:
表达式1 and 表达式2
当表达式1为True且表达式2为True时,则整个表达式返回结果为True
当表达式1或表达式2中有一个表达式为假,则整个表达式返回结果为False
有房 and 有车 则 牵手成功
有房 and 没车 则 牵手失败
没房 and 有车 则 牵手失败
表达式1 or 表达式2
当表达式1为True或表达式2为True时,则整个表达式返回结果为True
当表达式1与表达式2都为False时,则整个表达式才会返回False
有房 or 有车 则 牵手成功
有房 or 没车 则 牵手成功
没房 or 有车 则 牵手成功
没房 or 没车 则 牵手失败
案例
a = 1
b = 2
c = 3
print((a > b) and (b > c)) # False
print((a > b) or (b > c)) # False
print((a < b) or (b > c)) # True
print(not (a > b)) # True
print(3 and 4 and 5) # 5
print(5 and 6 or 7) # 6
4 > 3 and print('hello world') # 输出hello world
在逻辑运算中,不一定逻辑运算符的两边都是纯表达式。也可以是数值类型的数据。
Python把0、空字符串和None看成False,其他数值和非空字符串都看成 True
a and b
时,如果 a
是 False
,则根据与运算法则,整个结果必定为 False
,因此返回 a
;如果 a
是 True
,则整个计算结果必定取决与 b
,因此返回 b
。print(3 and 4) # 4
print(0 and 1) # 0
a or b
时,如果 a
是 True
,则根据或运算法则,整个计算结果必定为 True
,因此返回 a
;如果 a
是 False
,则整个计算结果必定取决于 b
,因此返回 b
。 所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。print(6 or 7) # 6
print(6 and 7 or 8) # 7
什么是运算符的优先级?其实我们小学就已经接触过了,就是在一个表达式中,我们先算谁的问题。例如:先算乘除,后算加减,有括号的先算括号里面的。
开发建议
( )
来控制表达式的执行顺序