在 Python 中,你将编写的大多数行都是表达式。表达式由运算符和操作数组成。比如 2 + 3 就是一个表达式。

运算符

运算符是指告诉 Python 解释器做一些数学或逻辑运算的符号。下面给出了几个数学算子的基本例子:

  1. >>> 2 + 3
  2. 5
  3. >>> 23 - 3
  4. 20
  5. >>> 22.0 / 12
  6. 1.8333333333333333

要获得浮点结果,你需要使用浮点数作为操作数进行除法。使用 % 操作符执行模除操作

  1. >>> 14 % 3
  2. 2

整数运算示例

代码

  1. #!/usr/bin/env python3
  2. days = int(input("Enter days: "))
  3. months = days / 30
  4. days = days % 30
  5. print("Months = %d Days = %d" % (months, days))

输出

  1. $ ./integer.py
  2. Enter days: 265
  3. Months = 8 Days = 25

在第一行中,我输入天数,然后获取月和天,最后打印它们。 你可以用一种简单的方式做到这一点

  1. #!/usr/bin/env python3
  2. days = int(input("Enter days: "))
  3. print("Months = %d Days = %d" % (divmod(days, 30)))

divmod(num1, num2) 函数返回两个值,第一个是 num1 和 num2 的除法,其次是 num1 和 num2 的模数。

关系运算符

可以使用以下运算符作为关系运算符

关系运算符

运算符 意义
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于
!= 不等于

一些例子

  1. >>> 1 < 2
  2. True
  3. >>> 3 > 34
  4. False
  5. >>> 23 == 45
  6. False
  7. >>> 34 != 323
  8. True

floor 除法的结果

  1. >>> 4.0 // 3
  2. 1.0
  3. >>> 4.0 / 3
  4. 1.3333333333333333

逻辑运算符

要做逻辑 AND,OR 我们使用 and,or 关键字。如果 x 为 False,则 x and y 返回 False,否则它返回 y 的值。如果 x 为 True,则 x or y 返回 True,否则它返回 y 的值。

  1. >>> 1 and 4
  2. 4
  3. >>> 1 or 4
  4. 1
  5. >>> -1 or 4
  6. -1
  7. >>> 0 or 4
  8. 4

速记运算符

x op = expression 是速记运算符的语法。 它将被认为 x = x op expression,一些示例

  1. >>> a = 12
  2. >>> a += 13
  3. >>> a
  4. 25
  5. >>> a /= 3
  6. >>> a
  7. 8.333333333333334
  8. >>> a += (26 * 32)
  9. >>> a
  10. 840.3333333333334

例如 shorthand.py

  1. #!/usr/bin/env python3
  2. N = 100
  3. a = 2
  4. while a < N:
  5. print("%d" % a)
  6. a *= a

输出

  1. $ ./shorthand.py
  2. 2
  3. 4
  4. 16

表达式

一般来说,在写表达式时,我们在每个操作符之前和之后都加上空格,这样代码读起来就更清晰了,比如

  1. a = 234 * (45 - 56.0 / 34)

一个用于展示表达式的示例代码

  1. #!/usr/bin/env python3
  2. a = 9
  3. b = 12
  4. c = 3
  5. x = a - b / 3 + c * 2 - 1
  6. y = a - b / (3 + c) * (2 - 1)
  7. z = a - (b / (3 + c) * 2) - 1
  8. print("X = ", x)
  9. print("Y = ", y)
  10. print("Z = ", z)

输出

  1. $ ./evaluationexp.py
  2. X = 10
  3. Y = 7
  4. Z = 4

首先计算 x,步骤如下

  1. 9 - 12 / 3 + 3 * 2 -1
  2. 9 - 4 + 3 * 2 - 1
  3. 9 - 4 + 6 - 1
  4. 5 + 6 - 1
  5. 11 - 1
  6. 10

对于 y 和 z 我们有括号,所以表达式以不同的方式计算。 自己计算并检查它们。

类型转换

我们必须手动进行类型转换

  1. float(string) -> float value
  2. int(string) -> integer value
  3. str(integer) or str(float) -> string representation
  4. >>> a = 8.126768
  5. >>> str(a)
  6. '8.126768'

evaluateequ.py

这是一个计算 1/x+1/(x+1)+1/(x+2)+ … +1/n 直到 n 的程序,在我们的例子中 x = 1 和 n =10

  1. #!/usr/bin/env python3
  2. sum = 0.0
  3. for i in range(1, 11):
  4. sum += 1.0 / i
  5. print("%2d %6.4f" % (i , sum))

输出

  1. $ ./evaluateequ.py
  2. 1 1.0000
  3. 2 1.5000
  4. 3 1.8333
  5. 4 2.0833
  6. 5 2.2833
  7. 6 2.4500
  8. 7 2.5929
  9. 8 2.7179
  10. 9 2.8290
  11. 10 2.9290

在 sum += 1.0 / i 行中,实际发生的是 sum = sum + 1.0 / i。

quadraticequation.py

这是一个评估一元二次方程的程序

  1. #!/usr/bin/env python3
  2. import math
  3. a = int(input("Enter value of a: "))
  4. b = int(input("Enter value of b: "))
  5. c = int(input("Enter value of c: "))
  6. d = b * b - 4 * a * c
  7. if d < 0:
  8. print("ROOTS are imaginary")
  9. else:
  10. root1 = (-b + math.sqrt(d)) / (2.0 * a)
  11. root2 = (-b - math.sqrt(d)) / (2.0 * a)
  12. print("Root 1 = ", root1)
  13. print("Root 2 = ", root2)

salesmansalary.py

在这个例子中,我们将计算一个相机销售员的工资。他的基本工资是 1500,每卖出一部相机,他就能得到 200,并且获取每月销售额的 2% 作为佣金 。输入的数字将是相机的销售数量和相机的价格。

  1. #!/usr/bin/env python3
  2. basic_salary = 1500
  3. bonus_rate = 200
  4. commision_rate = 0.02
  5. numberofcamera = int(input("Enter the number of inputs sold: "))
  6. price = float(input("Enter the total prices: "))
  7. bonus = (bonus_rate * numberofcamera)
  8. commision = (commision_rate * numberofcamera * price)
  9. print("Bonus = %6.2f" % bonus)
  10. print("Commision = %6.2f" % commision)
  11. print("Gross salary = %6.2f" % (basic_salary + bonus + commision))

输出

  1. $ ./salesmansalary.py
  2. Enter the number of inputs sold: 5
  3. Enter the total prices: 20450
  4. Bonus = 1000.00
  5. Commision = 2045.00
  6. Gross salary = 4545.00