为什么要使用函数?
Python
中函数的应用非常广泛,前面的课程中我们已经接触过多个函数,比如input()
、print()
、range()
、len()
函数等等,这些都是 Python
的内置函数,可以直接使用。
除了可以直接使用的内置函数外,Python
还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写、多次调用的目的。
举个例子,我们获取币安交易所某个币对的最新成交价,通过它我们可以直接获得币安交易所返回的某个币对的最新成交价数据。我们在开发策略的过程中,需要根据最新成交价来进行开仓、止损、平仓、加仓、减仓等操作,如果每次获取最新成交价都写这样一段重复的代码,费时费力、容易出错,非常冗余,非常stupid,也并不符合python
语言优雅的特征。正确的做法是,将实现特定功能(获取币安现货指定交易对的最新成交价)的代码定义成一个函数,每次当程序需要实现该功能(获取指定币对的最新成交价)时,只要执行(调用)该函数即可。
所以 Python
提供了一个功能,即允许我们将常用的代码以固定的格式封装(包装)成一个独立的模块,只要知道这个模块的名字就可以重复使用它,这个模块就叫做函数(Function
)。
函数的定义
定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具。定义函数需要用 def 关键字实现,具体的语法格式如下:
def 函数名():
实现特定功能的一行或多行代码
return 返回值 # 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
函数名的定义规则:
-
函数名称应该能够表达函数封装代码的功能,方便后续的调用
-
可由字母,下划线和数字组成
-
不能以数字开头
-
不能与关键字重名
import requests # 导入requests模块
def get_latest_price():
response = requests.get("https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT").json()
latest_price = float(response['price'])
return latest_price
函数的调用
调用函数也就是执行函数。如果把创建的函数理解为一个具有某种用途的工具,那么调用函数就相当于使用该工具。
data = get_latest_price()
if data >= 13000:
print("价格已经达到13000,请决定是否平仓!")
为函数提供说明文档
函数的说明文档,本质就是一段字符串,只不过作为说明文档,字符串的放置位置是有讲究的,函数的说明文档通常位于函数内部、所有代码的最前面。
def get_latest_price():
"""
获取币安交易所指定币对的最新成交价格
:return: 最新成交价,浮点数类型
"""
response = requests.get("https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT").json()
latest_price = float(response['price'])
return latest_price
函数的参数
函数,把具有独立功能的代码块组织成为一个小模块,在需要的时候调用。
函数的参数,增加函数的通用性,针对相同的数据处理逻辑,能够适应更多的数据。
def get_latest_price(symbol):
"""
获取币安交易所指定币对的最新成交价格
:return:最新成交价,浮点数类型
"""
response = requests.get("https://api.binance.com/api/v3/ticker/price?symbol=%s" % symbol).json()
latest_price = float(response['price'])
return latest_price
网友评论