3小时入门Python——第十三课整数算术

  |   0 评论   |   0 浏览   |   给我丶鼓励

在现实生活中,我们经常执行算术运算。他们可以帮助我们计算购买的金额,确定房间的面积,计算排队人数等。程序中使用相同的操作。

基本操作

Python 支持基本的算术运算:

  • 加成 +
  • 减法 -
  • 乘法 *
  • /
  • 整数除法 //

以下示例显示了它如何处理数字。

print(10 + 10)   # 20
print(100 - 10)  # 90
print(10 * 10)   # 100
print(77 / 10)   # 7.7
print(77 // 10)  # 7

除法 / 和整数除法之间有区别 //。第一个产生一个浮点数(例如 7.7),而第二个产生一个 7 忽略小数部分的整数值(例如)。

如果尝试除以零,Python 会引发错误。

ZeroDivisionError: division by zero

编写复杂的表达式

算术运算可以组合起来以编写更复杂的表达式:

print(2 + 2 * 2)  # 6

计算顺序与算术运算规则一致。乘法比加法和减法具有更高的优先级,因此 2 * 2 首先计算运算。

要指定执行顺序,可以使用**括号,**如下所示:

print((2 + 2) * 2)  # 8

像算术一样,括号可以嵌套在彼此之间。您也可以使用它们来说明。

减号运算符具有一元形式,可否定值或表达式:

print(-10)  # -10
print(-(100 + 200))  # -300

其他作业

除法余数。 Python 模运算符 % 用于获取除法的余数。当您要检查数字是否为偶数时,它可能会派上用场。应用于 2,它返回 1 奇数和 0 偶数。

print(7 % 2)  # 1, because 7 is an odd number
print(8 % 2)  # 0, because 8 is an even number

这里还有更多示例:

# Divide the number by itself
print(4 % 4)     # 0
# At least one number is a float
print(11 % 6.0)  # 5.0
# The first number is less than the divisor
print(55 % 77)   # 55
# With negative numbers, it preserves the divisor sign
print(-11 % 5)    # 4
print(11 % -5)    # -4

将除法的其余部分乘以 0 也会得到 ZeroDivisionError

乍看之下,Python 中 mod 函数的行为可能看起来是意外的。虽然 11 % 5 = 1-11 % -5 = -1 当左边两个数字都是相同的符号,11 % -5 = -4 并且 -11 % 5 = 4 如果我们有一个负数。问题是,在 Python 中,其余部分始终与除数具有相同的符号。

在第一种情况下,11 % -5 = -4 由于余数应为负,因此我们需要比较 15 和 11,而不是 10 和 11 :11 = (-5) * (-3) + (-4)。在第二种情况下,-11 % 5 = 4 其余部分应为正数:-11 = 5 * (-3) + 4

求幂。 这是一种将数字提高到幂的方法:

print(10 ** 2)  # 100

该操作比乘法具有更高的优先级。

操作优先

总结起来,下面列出了所有考虑的操作的优先级:

  1. 括弧
  2. 功率
  3. 一元减
  4. 乘法,除法和余数
  5. 加减

有时,操作具有相同的优先级:

print(10 / 5 / 2)  # 1.0
print(8 / 2 * 5)   # 20.0

上面的表达式对您来说可能似乎是模棱两可的,因为它们根据操作顺序具有其他解决方案:第一个示例中的一个 1.04.0 一个,而第二个示例中的一个 20.00.8 一个。在这种情况下,Python 遵循数学中从左到右的操作约定。知道这是一件好事,所以也请记住这一点!

PEP 时间!

关于二进制运算符的使用,有几件事需要提及,即影响两个操作数的运算符。如您所知,Python 中的可读性很重要。因此,首先,请记住在二进制运算符的两边都加上一个空格:

number=30+12      # No!
 
number = 30 + 12  # It's better this way

同样,有时人们二元运算符之后 使用 break 。但这会以两种方式损害可读性:

  • 操作员不在同一列中
  • 每个运算符已从其操作数移至上一行:
# No: operators sit far away from their operands
income = (gross_wages +
          taxable_interest +
          (dividends - qualified_dividends) -
          ira_deduction -
          student_loan_interest)

数学家及其发布者遵循相反的约定,以解决可读性问题。Donald Knuth 在他的“ 计算机和排版” 系列中对此进行了解释 :“尽管段落中的公式总是在二进制运算和关系之后中断,但是显示的公式总是在二进制运算之前中断”。遵循这一传统可使代码更具可读性:

# Yes: easy to match operators with operands
income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

在 Python 代码,它是允许前或二元运算后打破,只要约定是局部一致的。对于新代码, 根据 PEP 8,建议使用 Knuth 的样式


标题:3小时入门Python——第十三课整数算术
作者:给我丶鼓励
地址:https://blog.doiduoyi.com/articles/1592717556956.html

评论

发表评论