Python 运算符和表达式
Python 运算符和表达式
运算符
运算符是一些符号,它告诉 Python 解释器去做一些数学或逻辑操作。一些基本的数学操作符如下所示:
1 | >>> 2 + 3 |
只要有任意一个操作数是浮点数,结果就会是浮点数。
进行除法运算时若是除不尽,结果将会是小数,这很自然,如果要进行整除,使用 // 运算符,它将返回商的整数部分。
% 是求余运算符:
1 | >>> 14 % 3 |
整数运算示例
代码如下:
1 | #!/usr/bin/env python3 |
运行程序:
在开始获得用户输入的天数,然后获得月份数和天数,最后把这些数打印出来。你可以使用更容易的办法。
1 | #!/usr/bin/env python3 |
divmod(num1, num2)
返回一个元组,这个元组包含两个值,第一个是 num1 和 num2 相整除得到的值,第二个是 num1 和 num2 求余得到的值。- 然后我们用
*
运算符拆封这个元组,得到这两个值。
关系运算符
你可以使用下面的运算符实现关系运算。
关系运算符
Operator | Meaning |
---|---|
< | Is less than |
<= | Is less than or equal to |
| Is greater than
= | Is greater than or equal to
== | Is equal to
!= | Is not equal to
举一些例子:
1 | >>> 1 < 2 |
逻辑运算符
对于逻辑 与,或,非,我们使用 and,or,not 这几个关键字。
逻辑运算符 and 和 or 也称作短路运算符:它们的参数从左向右解析,一旦结果可以确定就停止。例如,如果 A 和 C 为真而 B 为假,A and B and C 不会解析 C 。作用于一个普通的非逻辑值时,短路运算符的返回值通常是能够最先确定结果的那个操作数。
关系运算可以通过逻辑运算符 and 和 or 组合,比较的结果可以用 not 来取反意。逻辑运算符的优先级又低于关系运算符,在它们之中,not 具有最高的优先级,or 优先级最低,所以 A and not B or C 等于 (A and (notB)) or C。当然,括号也可以用于比较表达式。
下面是一些例子:
1 | >>> 5 and 4 |
简写运算符
x op= expression 为简写运算的语法形式。其等价于 x = x op expression ,举例如下:
1 | >>> a = 12 |
shorthand.py 示例:
1 | #!/usr/bin/env python3 |
运行之:
1 | $ ./shorthand.py |
表达式
通常我们书写表达式的时候,会在每一个运算符左右都放一个空格,这样使代码更可读,如:
1 | a = 234 * (45 - 56 / 34) |
一个用于展示表达式的例子,注意其中运算符的优先级。
1 | #!/usr/bin/env python3 |
运行之:
1 | $ ./evaluationexp.py |
第一个计算的是 x,步骤如下:
1 | 9 - 12 / 3 + 3 * 2 -1 |
类型转换
我们可以手动的执行类型转换。
类型转换函数 | 转换路径 |
---|---|
float(string) | 字符串 -> 浮点值 |
int(string) | 字符串 -> 整数值 |
str(integer) | 整数值 -> 字符串 |
str(float) | 浮点值 -> 字符串 |
1 | >>> a = 8.126768 |
程序示例
evaluateequ.py
这个程序计算数列 1/x+1/(x+1)+1/(x+2)+ … +1/n,我们设 x = 1,n = 10。
1 | #!/usr/bin/env python3 |
quadraticequation.py
这个程序用来求解二次方程式:
1 | #!/usr/bin/env python3 |
salesmansalary.py
这个程序计算以为数码相机销售人员的工资。他的基本工资是 1500,每售出一台相机他可以得到 200 并且获得 2% 的抽成。程序要求输入相机数量及单价。
1 | #!/usr/bin/env python3 |