Python_函数调用_数学函数_组合
在编程的语境下,“函数”这个词的意思是对一系列语句的组合,这些语句共同完成一种运算。
定义函数的时候,你要给这个函数指定一个名字,另外还要写出进行运算的语句。定义完成后,就可以通过函数名来“调用”函数。
一,函数调用
一个函数调用的例子:
>>> type(42)
<class 'int'>
这个函数的名字就是tpye,括号里面的表达式叫做函数的参数,这个函数的结果是返回参数的类型。
一般来说,函数都要“传入”一个参数,“返回”一个结果。结果也被叫做返回值。Python提供了 一些转换数值类型的函数。
比如
(1)int这个函数就可以把值转换成整形,但不是什么都能转的, 遇到不能转换的就会报错了,如下所示:
>>> int('42')
42
>>> int('Hello')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'Hello'
int这个函数能把浮点数转成整形,但不是很完美,小数部分就都给砍掉了。
>>> int(3.1415927)
3
>>> int(-2.1314)
-2
(2)float能把整形和字符串转变成浮点数
>>> float(32)
32.0
>>> float('3.1415927')
3.1415927
(3)str可以把参数转变成字符串
>>> str(32)
'32'
>>> str(3.1415927)
'3.1415927'
二,数学函数
Python内置了一个数学模块,这一模块提供了绝大部分常用的数学函数。模块就是一系列相关函数的集合成的文件。
在使用模块中的函数之前,必须先要导入这个模块,使用导入语句import:
>>> import math
这个语句建立了一个模块对象,名字叫做math。把这个模块对象显示一下,得到与之相关的信息:
>>> math
<module 'math' from '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so'>
模块对象包含了一些已经定义好的函数和变量。指定模块名和函数名,要用点.(英文输入法)来连接模块名和函数名,比如下方的math.pi
例子:对弧度值计算正弦值。
通过变量名你应该能推测出正弦以及其他的三角函数 (比如余弦、正切等等)都要用弧度值作为参数。所以要把角度的值从度转换成弧度,方法 就是除以180然后再乘以圆周率π
>>> degrees = 45
>>> radians = degrees / 180.0 * math.pi
>>> math.sin(radians) #计算正弦值
0.7071067811865475
math.pi这个表达式从数学模块中得到π的一个大概精确到15位的近似值,存成一个浮点数。
也可以试着把2的平方根除以二,可以得到与上面一致的结果。
>>> math.sqrt(2) / 2.0
0.7071067811865476
画一个三角形,45度角两直角边是单位1,斜边必然是2的平方根了,对应的正弦余弦也都是这个值(0.7071067811865476)。
三,组合
一门编程语言最有用的功能莫过于能够用一个个小模块来拼接创作。例如函数的参数可以是任何一种表达式,包括代数运算符:
>>> x = math.sin(degrees / 360.0 * 2 * math.pi)
再或者函数的调用本身也可以作为参数,如下的math.log()
>>> x = math.exp(math.log(x+1))
值得注意的是,一个声明语句的左边必须是变量名,任何其他的表达式放到等号左边都会导致语法错误。
>>> hours = minutes * 60
>>> minutes * 60 = hours
File "<stdin>", line 1
SyntaxError: can't assign to operator
结束。