30天学会 Python: Day 13-站在巨人的肩上


tags: python, iron_man
title: PyDay12

现代的人可以快速得产出一项产品或发明,是因为前人累积下大量的知识与技术,让我们可以不用所有东西都重头来开始

这点在程序设计也一样,除了因为近代程序语言内建大量的功能,让我们可以用更少的程序码达成相同的任务,还有大量已公开让人使用,针对各种特定领域的 模组套件,让开发者可以用更少的时间成本实现更复杂的任务

模组(Module)

当一个程序码档案中有很多功能,可以把功能写成划分成多个函式
如果同个档案中有很多函式,可以再依照功能的相关性把多个函式划分成多个档案,让每个档案包含多个功能相近函式,达到更高度的模组化

所以当一个程序码档案中定义的函式、类别、常数被其他的程序码档案呼叫或使用,这个程序码档案对其他程序码档案来说就是一个 模组

套件(Package)

当现在有一堆模组,可以再依照模组的相关性分成多个套件,所以套件是一个资料夹,内有多个模组和套件
Python 中的每个套件都会有一个叫做 __init__.py 的档案,用於标注某个资料夹是套件


除了自己写的模组和套件,还有大量内建以及第三方提供的模组和套件,让开发者能以更少的程序码完成更复杂的功能

Python 中内建的模组和套件可以在 这边 查询

引入模组/套件

要使用其他 模组/套件 中的功能,要先用 import 可以把套件和模组引入目前的程序码中

import <模组/套件 名称>

math

math 中定义数学相关的常数以及更加准确的数学函式

常数

<模组>.<常数> 使用模组中的常数

  • math.pi: 圆周率
  • math.e: 自然常数、欧拉数
  • math.tau: 两倍圆周率
import math

print(math.pi)
print(math.e)
print(math.tau)

函式

<模组>.<函式> 使用模组中的函式

math.ceil(x)

回传 x 的上限(大於等於 x 的最小整数)

import math

print(math.ceil(3.14))
print(math.ceil(2.9))

math.floor(x)

回传 x 的下限(小於等於 x 的最大整数)

import math

print(math.floor(3.14))
print(math.floor(2.9))

math.factorial(x)

回传 x 的阶乘

import math

print(math.factorial(5))

math.perm(n, k)

回传 n! / (n - k)!,代表从 n 项东西中选 k 项不重复且考虑顺序(P nk)

import math

print(math.perm(5, 3))

math.comb(n, k)

回传 n! / (k! * (n - k)!),代表从 n 项东西中选 k 项不重复且不考虑顺序(C nk)

import math

print(math.comb(5, 3))

math.gcd()

回传最大公因数

import math

print(math.gcd(2, 6))
print(math.gcd(3, 6, 9))

math.lcm()

回传最小公倍数

import math

print(math.lcm(2, 6))
print(math.lcm(3, 6, 9))

math.exp(x)

回传 e 的 x 次方

import math

print(math.exp(2))

math.log(x, base=math.e)

回传 xbase 为底的对数

import math

print(math.log(10, 10))
print(math.log(2, 10))
print(math.log(math.e))

math.log10(x)

回传 x 以10为底的对数,比起 math.log(x, 10) 有更高的准确度

import math

print(math.log(102, 10))
print(math.log10(102))

math.sqrt(x)

回传 x 的平方根

import math

print(math.sqrt(4))
print(math.sqrt(2))

math.degrees(x)

x 从径转换成度

import math

print(math.degrees(0))
print(math.degrees(math.pi))

math.radians(x)

x 从度转换成径

import math

print(math.radians(0))
print(math.radians(180))

math.sin(x)

回传 x 的正弦,x 的单位是径

import math

print(math.sin(0))
print(math.sin(math.pi/2))

math.asin(x)

sin() 的反函数,回传 x 的反正弦,x 的单位是径

import math

print(math.asin(0))
print(math.degrees(math.asin(1)))

math.cos(x)

回传 x 的余弦,x 的单位是径

import math

print(math.cos(0))
print(math.cos(math.pi))

math.acos(x)

cos() 的反函数,回传 x 的反余弦,x 的单位是径

import math

print(math.degrees(math.asin(-1)))
print(math.degrees(math.asin(1)))

math.tan(x)

回传 x 的正切,x 的单位是径

import math

print(math.tan(0))
print(math.tan(math.pi))

math.atan(x)

atan() 的反函数,回传 x 的反正切,x 的单位是径

import math

print(math.degrees(math.atan(-1)))
print(math.degrees(math.atan(1)))


<<:  30天学会C语言: Day 13-递回体验镇魂曲

>>:  [Day 15] -『 GO语言学习笔记』- 核心型别(II)

Day29 - 集成学习 (ensemble learning) part2

今天要继续介绍另外两个集成学习的方法 max-out unit 结合与内插(interpolatio...

企划实现(30)

止损 止损顾名思义就是停止损失,今天在做企划的同时,世界并不会停下来等你发展,所以如果在做企划的同时...

虎你发财啦!自己的新年图自己做 (React+Fabric.js) -下

前情提要 为了不浪费我白白画的春联,做了一个新年图制造机 还没有新年图的可以到下面玩玩看~(快收假了...

20.MYSQL XOR指令

XOR相较前面的指令,是比较难懂一点,他的意思是两侧条件有一边为1,就回传1,否则都回传0 ...

18 - Rest Client - HTTP 请求工具

在写网页时,前端的工程师需要了解如何与後端或是其他的第三方服务沟通,在看了文件後,除了直接实作外,另...