在 Python 中,你将编写的大多数行都是表达式。表达式由运算符和操作数组成。比如 2 + 3 就是一个表达式。
运算符
运算符是指告诉 Python 解释器做一些数学或逻辑运算的符号。下面给出了几个数学算子的基本例子:
>>> 2 + 3
5
>>> 23 - 3
20
>>> 22.0 / 12
1.8333333333333333
要获得浮点结果,你需要使用浮点数作为操作数进行除法。使用 % 操作符执行模除操作
>>> 14 % 3
2
整数运算示例
代码
#!/usr/bin/env python3
days = int(input("Enter days: "))
months = days / 30
days = days % 30
print("Months = %d Days = %d" % (months, days))
输出
$ ./integer.py
Enter days: 265
Months = 8 Days = 25
在第一行中,我输入天数,然后获取月和天,最后打印它们。 你可以用一种简单的方式做到这一点
#!/usr/bin/env python3
days = int(input("Enter days: "))
print("Months = %d Days = %d" % (divmod(days, 30)))
divmod(num1, num2) 函数返回两个值,第一个是 num1 和 num2 的除法,其次是 num1 和 num2 的模数。
关系运算符
可以使用以下运算符作为关系运算符
关系运算符
运算符 | 意义 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于 |
!= | 不等于 |
一些例子
>>> 1 < 2
True
>>> 3 > 34
False
>>> 23 == 45
False
>>> 34 != 323
True
floor 除法的结果
>>> 4.0 // 3
1.0
>>> 4.0 / 3
1.3333333333333333
逻辑运算符
要做逻辑 AND,OR 我们使用 and,or 关键字。如果 x 为 False,则 x and y 返回 False,否则它返回 y 的值。如果 x 为 True,则 x or y 返回 True,否则它返回 y 的值。
>>> 1 and 4
4
>>> 1 or 4
1
>>> -1 or 4
-1
>>> 0 or 4
4
速记运算符
x op = expression 是速记运算符的语法。 它将被认为 x = x op expression,一些示例
>>> a = 12
>>> a += 13
>>> a
25
>>> a /= 3
>>> a
8.333333333333334
>>> a += (26 * 32)
>>> a
840.3333333333334
例如 shorthand.py
#!/usr/bin/env python3
N = 100
a = 2
while a < N:
print("%d" % a)
a *= a
输出
$ ./shorthand.py
2
4
16
表达式
一般来说,在写表达式时,我们在每个操作符之前和之后都加上空格,这样代码读起来就更清晰了,比如
a = 234 * (45 - 56.0 / 34)
一个用于展示表达式的示例代码
#!/usr/bin/env python3
a = 9
b = 12
c = 3
x = a - b / 3 + c * 2 - 1
y = a - b / (3 + c) * (2 - 1)
z = a - (b / (3 + c) * 2) - 1
print("X = ", x)
print("Y = ", y)
print("Z = ", z)
输出
$ ./evaluationexp.py
X = 10
Y = 7
Z = 4
首先计算 x,步骤如下
9 - 12 / 3 + 3 * 2 -1
9 - 4 + 3 * 2 - 1
9 - 4 + 6 - 1
5 + 6 - 1
11 - 1
10
对于 y 和 z 我们有括号,所以表达式以不同的方式计算。 自己计算并检查它们。
类型转换
我们必须手动进行类型转换
float(string) -> float value
int(string) -> integer value
str(integer) or str(float) -> string representation
>>> a = 8.126768
>>> str(a)
'8.126768'
evaluateequ.py
这是一个计算 1/x+1/(x+1)+1/(x+2)+ … +1/n 直到 n 的程序,在我们的例子中 x = 1 和 n =10
#!/usr/bin/env python3
sum = 0.0
for i in range(1, 11):
sum += 1.0 / i
print("%2d %6.4f" % (i , sum))
输出
$ ./evaluateequ.py
1 1.0000
2 1.5000
3 1.8333
4 2.0833
5 2.2833
6 2.4500
7 2.5929
8 2.7179
9 2.8290
10 2.9290
在 sum += 1.0 / i 行中,实际发生的是 sum = sum + 1.0 / i。
quadraticequation.py
这是一个评估一元二次方程的程序
#!/usr/bin/env python3
import math
a = int(input("Enter value of a: "))
b = int(input("Enter value of b: "))
c = int(input("Enter value of c: "))
d = b * b - 4 * a * c
if d < 0:
print("ROOTS are imaginary")
else:
root1 = (-b + math.sqrt(d)) / (2.0 * a)
root2 = (-b - math.sqrt(d)) / (2.0 * a)
print("Root 1 = ", root1)
print("Root 2 = ", root2)
salesmansalary.py
在这个例子中,我们将计算一个相机销售员的工资。他的基本工资是 1500,每卖出一部相机,他就能得到 200,并且获取每月销售额的 2% 作为佣金 。输入的数字将是相机的销售数量和相机的价格。
#!/usr/bin/env python3
basic_salary = 1500
bonus_rate = 200
commision_rate = 0.02
numberofcamera = int(input("Enter the number of inputs sold: "))
price = float(input("Enter the total prices: "))
bonus = (bonus_rate * numberofcamera)
commision = (commision_rate * numberofcamera * price)
print("Bonus = %6.2f" % bonus)
print("Commision = %6.2f" % commision)
print("Gross salary = %6.2f" % (basic_salary + bonus + commision))
输出
$ ./salesmansalary.py
Enter the number of inputs sold: 5
Enter the total prices: 20450
Bonus = 1000.00
Commision = 2045.00
Gross salary = 4545.00