python系列教程63

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

除了一般的数学运算(加法、减法等),Python也支持C语言中的大多数数学表达式。这包括那些把整数当作二进制位串对待的操作。例如,可以实现位移及布尔操作:

>>> x = 1  # 0001

>>> x << 2 # Shift left 2 bits: 0100

4

>>> x | 2  # Bitwise OR: 0011

3

>>> x & 1  # Bitwise AND: 0001

1

在第一个表达式中,十进制1的二进制是0001,左移了两位后,成为了二进制0100,它表示十进制的4。最后的两个操作一个是二进制或(0001|0010 = 0011),一个是二进制与(0001&0001 = 0001)。
Python还支持用于数字处理的内置函数和内置模块。例如,内置函数pow和abs,分别计算幂和绝对值。这里是一些例子。

>>> import math

>>> math.pi,math.e                    # Common constants

(3.1415926535897931,2.7182818284590451)

>>> math.sin(2 * math.pi / 180)        # Sine,tangent,cosine

0.034899496702500969

>>> math.sqrt(144),math.sqrt(2)       # Square root

(12.0,1.4142135623730951)

>>> pow(2,4),2 ** 4                  # Exponentiation (power)

(16,16)



>>> abs(-42.0),sum((1,2,3,4))      # Absolute value,summation

(42.0,10)



>>> min(3,1,2,4),max(3,1,2,4)   # Minimum,maximum

(1,4)

在python中,有各种各样的方法可以删除一个浮点数的小数位。我们前面介绍了截断和floor方法,我们也可以用round:

>>> math.floor(2.567),math.floor(-2.567)         # Floor (next-lower integer)

(2,-3)

>>> math.trunc(2.567),math.trunc(-2.567)         # Truncate (drop decimal digits)

(2,-2)

>>> int(2.567),int(-2.567)                       # Truncate (integer conversion)

(2,-2)

>>> round(2.567),round(2.467),round(2.567,2)   # Round (Python 3.0 version)

(3,2,2.5699999999999998)

>>> '%.1f' % 2.567,'{0:.2f}'.format(2.567)       # Round for display 

('2.6','2.57')

最后两行是有差异的,round舍入一个浮点数但是仍然在内存中产生一个浮点数,而字符串格式化产生一个字符串并且不会得到一个修改后的数字:

>>> (1 / 3),round(1 / 3,2),('%.2f' % (1 / 3))

(0.33333333333333331,0.33000000000000002,'0.33')

在Python中有3种方法可以计算平方根:使用一个模块函数、一个表达式或者一个内置函数:

>>> import math

>>> math.sqrt(144)         # Module

12.0

>>> 144 ** .5              # Expression

12.0

>>> pow(144,.5)           # Built-in

12.0

>>> math.sqrt(1234567890)  # Larger numbers
35136.418286444619

>>> 1234567890 ** .5

35136.418286444619

>>> pow(1234567890,.5)

35136.418286444619

注意math这样的模块必须先导入,但是abs这样的内置函数不需要导入就可以直接使用。换句话说,模块是外部的组件,而内置函数位于一个隐性的命名空间内。现在当你听到“模块”时,要想到“导入”。

使用标准库中的random模块时也必须导入。这个模块提供了工具,可以选出一个在0和1之间的任意浮点数、选择在两个数字之间的任意整数、在一个序列中任意挑选一项等:

>>> import random

>>> random.random()

0.44694718823781876

>>> random.random()

0.28970426439292829



>>> random.randint(1,10)

5

>>> random.randint(1,10)

4



>>> random.choice(['Life of Brian','Holy Grail','Meaning of Life'])

'Life of Brian'

>>> random.choice(['Life of Brian','Holy Grail','Meaning of Life'])

'Holy Grail'

Random模块很实用,在游戏中的发牌、在演示GUI中随机挑选图片、进行统计仿真等都需要使用Random模块。

我的微信公众号是“人工智能知识分享”

在这里插入图片描述

你可能感兴趣的:(编程技术)