python

python3 数字和运算符 - python3 number and operator

这篇博客的存在,只为了 python3 数字和运算符,主要包括:int、float、complex 以及类型转换和常见的运算符,比如 加减乘除以及整除,另外是数学函数、随机数函数、三角函数。下面,我们步入主题。

python3 数字和运算符

1、基本数字类型

python3 里有 int、float、complex 三种数字类型,没有 long,complex 是复数,说实话,这是我见过的第一个支持复数的编程语言。另外,你可以通过 int(x)、float(x)、complex(x) 将x 转为 int、float、complex 类型,complex(x, y) 将 x、y 转为复数类型,实数部分为x 虚数部分为y,当使用 complex(x, y) 时,x、y 必须为数字类型。下面是一个例子:

print(int("3"))
print(float("3.5"))
print(complex("3.5"))
print(complex(3.5, 2))

以上例子的输出分别为:3、3.5、(3.5 + 0j)、(3.5 + 2j)

2、常见运算符

python3 里除了常见的加减乘除还多了整除,即 // 但是整除的输出不一定是整数,请看例子:

print(12.0 // 7)
print(12.0 / 7)
print(12 / 7)
print(12.0 // 3)
print(12 // 3)

python3 里,12 / 7 和12.0 / 7 结果是一样的,没有精度损失,正因为如此,才有了 // ,而整除你可以理解为只保留整数部分,比如 12 / 7 应该是 1.7xxx 如果是整除则为1.0 即没有进1,也没有保留小数,而是保留了整数部分。整除和除以的逻辑和我们之前所见的有点不一样,但总体很好理解。

3、随机数函数

我相信,在随机数函数、数学函数、三角函数里,用的最普遍的可能是随机数函数,接着是数学函数,三角函数很少用。python3 里随机数函数有:random.choice(seq) 从序列的元素里随机挑选一个,其中seq 可以是 列表、元组、字符串,例外还有:random.randrange ([start,] stop [,step]) 、random.random()、random.shuffle(seq)、random.uniform(x, y) 最后,你还可以了解下 random.seed(xxx) ,randrange 用于生成 start 到 stop 的一个随机数,其中递增的数字是 step,并且不包含stop,比如 random.randrange(1, 100, 2) 则是生成 1 - 100的随机数,每次递增2包含1且不包含100,即是1-100的奇数,shuffle(seq) 用于将一个序列的元素随即排序,抽奖用的到啊,uniform(x, y) 用于生成 x - y的随机浮点数,看下面的例子。

import random

array = ['10', '11', '12', '13']

print(random.choice(array))
random.shuffle(array)
print(array)
print(random.randrange(1, 100, 2))
print(random.uniform(1, 10))

random.shuffle(seq)  仅仅是把序列随机排序,元序列发生了变化,但没有返回值哦。至于 seed 用于改变随机数生成器的种子,一般闲着蛋疼可能会去玩它。

4、数学函数

数学函数就不再举例,请看列表,以便查阅:

  1. abs(x)  求绝对值,有个黄色笑话,男生看黄片,打一数学名词。哈哈哈。
  2. math.ceil(x)  返回进 1 后的整数,比如  ceil(4.1) 返回 5,但是请注意,ceil(4.0)  返回4  玩个儿科游戏,1 = 5,2 = 10,3 = 15,4 = 20 那么 5 = ?
  3. math.exp(x)  返回 e 的 x 次幂,那么 e = ? e = math.exp(1)   即  2.718281828459045
  4. math.fabs(x) 求绝对值,和 abs 的区别在于 abs 是内置的,另外,abs 还可以求复数的绝对值,而 fabs 是 math 中定义的,只对 int、float有效,所以,请你忘了这货吧,没啥用。
  5. math.floor(x) 和 ceil(x) 相反,floor(4.9) 以及 floor(4.0) 都返回 4
  6. math.log(x, y) 返回 y的对数z,即 y 的 z 次方是 x
  7. math.log10(x) 返回以 10 为底数的 x 的对数,等同于  log(x, 10)
  8. max(1, 2, xxx)、min(1, 2, xxx)  分别返回最大和最小值,参数可以是序列
  9. math.modf(x) 以元组的方式返回 x 的整数与小数部分,若 x 为正 则元组里的元素均为正,反之均为负
  10. math.pow(10, 2)  返回 10 的 2 次方。
  11. round(12.567, 1)  返回 12.567 的四舍五入保留 1位小数的值。
  12. math.sqrt(100)  返回 100 的平方根,即 10

5、三角函数

  1. math.acos(x) x 取值  -1 - 1 反余弦函数,求弧度。
  2. math.asin(x)  x -1 到 1 反正弦函数,求弧度。
  3. math.atan(x)  反正切函数,求弧度。
  4. math.atan2(y, x)  返回给定的 X 及 Y 坐标值的反正切值。
  5. math.cos(x)  返回 x 弧度的余弦值
  6. math.sin(x)  返回 x 弧度的正弦值
  7. math.tan(x)  返回 x 弧度的正切值
  8. math.degrees(x)  将 x 弧度转化为角度
  9. math.radians(x)  将 x 角度转化为弧度
  10. math.hypot(x, y)  返回欧几里德范数 sqrt(x*x + y*y) 的值。比如直角三角形的两条短边分别为 x、y求它的长边,那么,这个函数就用上了。
full-stack-trip

Share
Published by
full-stack-trip
Tags: python入门

Recent Posts

Android 自定义 View 入门

说来惭愧,工作数年,连基本的自…

4 年 ago

retrofit 同时支持 xml 和 json

retrofit 解析 jso…

4 年 ago

mysql - 存储过程 从入门到放弃

最近有个报表的需求,于是乎用了…

4 年 ago

奶嘴战略 - 你不得不知道的扎心真相(一)

一句:英雄枯骨无人问,戏子家事…

4 年 ago

acme.sh 的简单使用

acme.sh 是纯 shel…

4 年 ago

wrk -更现代化的http压测工具

wrk 是一款更现代化的 ht…

4 年 ago