Python开发-函数和调用

Python当中的函数是什么呢?函数是一段组织好的、可重复使用的、用来实现特定功能的代码。通过合理地使用函数,我们可以大大提高程序的可读性、可扩展性和可维护性。

1、函数的定义
在Python中,使用def关键字来定义一个函数,其基本语法结构如下:

def 函数名(参数列表):
函数体
[return [返回值]]

说明:

(1)函数名:函数的名称,命名规则与变量相同。

(2)参数列表:函数的参数,可以有0个或多个,多个参数之间用逗号分隔。参数可分为必选参数、默认参数、可变参数等不同类型。

(3)函数体:函数的具体实现代码。

(4)return语句:用于结束函数的执行,并可将函数的执行结果返回给调用者。return语句可选,若无则返回None。

下面是一个简单的函数定义示例:

def greet(name):
    """
    打印问候语。

    参数:
    name (str) - 要问候的人的名字。
    """
    print(f"Hello, {name}!")

在这个例子中,greet 是函数名,name 是函数的参数。函数体包含一个 print 语句,用于打印问候语。

2、函数的调用
定义好函数后,可以在程序的任何地方调用它。调用函数时,将实参按位置或名称传递给函数,函数执行完毕后将结果返回给调用者。

下面是调用上面定义的 greet 函数的示例:

greet("Alice")  # 输出: Hello, Alice!

在这个例子中,我们调用了 greet 函数,并传递了字符串 "Alice" 作为参数。函数执行后,会打印出 "Hello, Alice!"。

下面是一个更复杂的函数定义和调用示例:

def calculate_area(length, width):
    """
    计算矩形的面积。

    参数:
    length (float) - 矩形的长度。
    width (float) - 矩形的宽度。

    返回:
    float - 矩形的面积。
    """
    area = length * width
    return area

rectangle_area = calculate_area(5.0, 3.0)
print(f"矩形的面积是: {rectangle_area} 平方单位")  # 输出: 矩形的面积是: 15.0 平方单位

在这个例子中,calculate_area 函数接受两个参数 length 和 width,计算并返回矩形的面积。我们调用这个函数,并将返回值赋给变量 rectangle_area,最后打印出结果。

3、函数参数详解

(1)必选参数
必选参数是函数调用时必须提供的参数,调用时数量和位置都要和定义时一致。例如:

def greet(name):
    print(f"Hello, {name}!")
greet("Alice")

输出:

Hello, Alice!

(2)默认参数
默认参数可以让函数在调用时省略某些参数,若未提供则使用默认值。例如:

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")
greet("Bob")
greet("Charlie", "Hi")

输出:

Hello, Bob!
Hi, Charlie!

(3)可变参数
可变参数允许传入0个或任意多个参数。定义时在参数名前加星号*。例如:

def sum(*numbers):
    total = 0
    for n in numbers:
        total += n
    return total  
print(sum())
print(sum(1, 2, 3))

输出:

0
6

(4)关键字参数
关键字参数允许传入0个或任意多个带名称的参数。定义时在参数名前加两个星号**。例如:

def print_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")
        
print_info(name="David", age=30, city="New York")

输出:

name: David
age: 30
city: New York

4、函数返回值
函数可以使用return语句将结果返回给调用者。

  • 如果函数没有return,则自动返回None
  • 函数可以返回多个值,多个值之间用逗号分隔,实际上是以元组形式返回

示例代码:

def get_name():
    return "Eric"
    
def get_name_and_age(): 
    return "Eric", 30

name = get_name()
print(name)

name, age = get_name_and_age()
print(name, age)

输出:

Eric
Eric 30

示例代码地址:
https://github.com/gzmusem/QuantExamples/tree/main/Examples03

本站下载资源:

https://download.csdn.net/download/benshu_001/89004234

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
# easyquant 基于 [easytrader](https://github.com/shidenggui/easytrader) 和 [easyquotation](https://github.com/shidenggui/easyquotation) 的量化交易框架 事件引擎借鉴 交易:支持华泰、佣金宝、银河以及雪球模拟盘 行情:支持新浪免费实时行情,集思路分级基金以及 leverfun 的免费十档行情 ### 微信群以及公众号 欢迎大家扫码关注公众号「食灯鬼」,一起交流。进群可通过菜单加我好友,备注量化。 ![公众号二维码](https://gitee.com/shidenggui/assets/raw/master/uPic/mp-qr.png) 若二维码因 Github 网络无法打开,请点击[公众号二维码](https://gitee.com/shidenggui/assets/raw/master/uPic/mp-qr.png)直接打开图片。 ### 关于行情 默认使用的是 sina 的免费全市场行情,1s 推送一次 可自定义使用的行情来源或者使用 easyquotation的 lf免费十档行情 和 集思路的分级基金行情 具体可参见 [easyquotation](https://github.com/shidenggui/easyquotation) ### 关于交易 具体可参见 [easytrader](https://github.com/shidenggui/easytrader) ### 使用 #### 准备交易账户 在 ht.json 或 yjb.json 或 yh.json 或 xq.json 中填入你的账户相关信息 [如何填写相关信息](https://github.com/shidenggui/easytrader) #### 快速开始 python test.py ### 策略编写 策略用 Python 编写后置于 strategies 文件夹下 格式可参考其中的 Demo #### Hello World # 引入策略模板 from easyquant import StrategyTemplate # 定义策略类 class Strategy(StrategyTemplate): name = 'Hello World' # 定义策略名字 # 策略函数,收到行情推送后会自动调用 def strategy(self, event): """:param event event.data 为所有股票行情的字典,结构如下 {'162411': {'ask1': '0.493', 'ask1_volume': '75500', 'ask2': '0.494', 'ask2_volume': '7699281', 'ask3': '0.495', 'ask3_volume': '2262666', 'ask4': '0.496', 'ask4_volume': '1579300', 'ask5': '0.497', 'ask5_volume': '901600', 'bid1': '0.492', 'bid1_volume': '10765200', 'bid2': '0.491', 'bid2_volume': '9031600', 'bid3': '0.490', 'bid3_volume': '16784100', 'bid4': '0.489', 'bid4_volume': '10049000', 'bid5': '0.488', 'bid5_volume': '3572800', 'buy': '0.492', 'close': '0.499', 'high': '0.494', 'low': '0.489', 'name': '华宝油气', 'now': '0.493', 'open': '0.490', 'sell': '0.493', 'turnover': '420004912', 'volume'

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder加油!

感谢您的认可和支持!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值