Python 基础学习01:数学运算

在 Python 中对数字进行运算是非常简单的,以下是演示在 Python 解释器中进行数字运算。

四则运算

从最简单的四则运算开始:

>>> 1+1
2
>>> 4-3
1
>>> 2*2
4

但是进行除法运算的时候,可能会有所不同:

>>> 4/2
2.0

预期返回的应该是 2,但实际返回的是 2.0 ,虽然在数学中 2=2.0,但是在编程中一个是整数一个是浮点数,除法默认返回的是浮点数。
如果想要返回整数,可以使用整除(\)运算:

>>> 4//2
2

当然跟数学一样,使用 ( )可以提高计算的优先级,例如:

>>> 2*(1+2)
6

求余(求模)

求余用的运算符是 %,例如:

>>> 10%3
1

上述结果等于 10 - 10//3 3

>>> 10 - 10//3 * 3
1

求余和整除也可用于浮点数和负数(对,负数,虽然不太好理解):

>>> 10//-3
-4
>>> 10%-3
-2

数学运算常用的函数或模块

使用 ** 来求乘方:

>>> 2**3
8

除此之外,Python 提供了一个内部函数 pow() 来处理。
函数可以理解为编写好的小程序,只需调用以及根据情况传递值(实参),就可以返回对应的结果。

>>> pow(2,3)
8

在解释器中查看函数或模块的用法可以通过 help('name') 来查看:

>>> help('pow')

Help on built-in function pow in module builtins:

pow(base, exp, mod=None)
    Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments
...

从上述帮助中可以看到该函数支持 3 个参数,其中第三个参数是对乘方后的值进行求余,默认是 None ,也就是不做求余。例如:

>>> pow(2,3,3)
2

abs 函数可以计算数值的绝对值:

>>> abs(-100)
100

除此之外,Python 还可以导入模块,模块可以扩展 Python 功能
导入模块使用的命令是 import ,以下例子是调用 math 模块中的 floor 函数,该函数的功能是向下取整:

>>> import math
>>> math.floor(12.12)
12
>>> math.floor(12.99)
12

如果想直接使用 floor 函数的话,可以单独具体的指定该函数进行导入,如:

>>> from math import floor
>>> floor(12.12)
12

建议只导入需要使用的模块以及函数。

如果想知道一个模块当中有哪些函数以及对应的功能,可以使用 help('module_name'),如:

>>> help('math')

是字符还是数值?

在 Python 当中,可能需要获取用户的输入的数字进行运算,获取输入使用的是内置函数 input(),它的用法是:

input(prompt='', /)
    Read a string from standard input.  The trailing newline is stripped.

    The prompt string, if given, is printed to standard output without a
    trailing newline before reading input.

    If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
    On *nix systems, readline is used if available.

它可以传递一个 prompt 参数,用于输入前的提示。
例如:

>>> num = input('输入一个数字:')
输入一个数字:10
>>> num
'10'
>>> num % 3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting

用户输入的“数字”赋予了 num 变量,当对 num 求余的时候,Python 发生了报错,TypeError 表示类型出错了,前面打印的 num 返回的是 '10' 可以看到用单引号括起来了,所以 num 其实是一个字符串,对于字符串肯定不能够求余了,需要转换类型,将字符串转换为数值类型,可以使用 int() 内置函数:

>>> int(num) % 3
1

不同进制

有时候会用到除十进制以外的进制。
二进制:

>>> 010
  File "<stdin>", line 1
    010
    ^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers

直接输入二进制会报错,错误提示也告诉了解决方法,添加一个 0b 前缀:

>>> 0b010
2

八进制:
八进制使用 0o 前缀:

>>> 0o010
8

十六进制:
十六进制使用 0x 前缀:

>>> 0x10
16

不同进制的转换

每种进制转换都对应了一个函数:

  • int:将目标进制转换为十进制
  • oct:将目标进制转换为八进制
  • hex:将目标进制转换为十六进制

例如:

>>> num = 256
>>> print(oct(num))
0o400
>>> print(hex(num))
0x100

>>> hex_num = 0x100
>>> print(int(hex_num))
256

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

滚动至顶部