python的def什么意思_「Python基础」def是什么?如何自定义函数def

一、前言

def是什么?很多时候在写程序的时候某一部分需要一直用到,重复性非常高,

这个时候为何不把常用到的部分变成一个方法(函数),需要的时候直接调用就好了?

这样重复的程序码我们就只需要写一次。

二、自订函数def

这次的目的有两个:

a. 把常出现的程序码变成只要写一次

b. 可以把这个方法用在你之后写的py档里面

让我们来看这次的范例吧!

(1) 原本又臭又长的程序码

从yahoofinance把多档股票资料抓下来,并且计算技术指标方便后续使用

56f5d6c5191b5d2404832ae384fb2fa7.png

你会发现,抓下股票及计算指标不一样而已

cc057d4887abe40097b061899415ed97.png

(2) def规则及注意要点

a. 使用方法如下

def你的函数名称(预设参数):

你的执行逻辑

return你要回传的值

b. 缩行的地方要一起执行(逐行执行时要注意)

记得def下面你的执行逻辑在逐行执行时,要一同反白执行

c. 预设参数可给可不给

预测参数可给可不给看需求

d. 用return拿到我们要的东西

最后要拿到的东西用return返回给我们,范例中我要拿回我计算过后技术指标的df并且放到我之后给的变数中

改完的完整程式码如下:

# good.py

import pandas, numpy

import pandas_datareader as web

# 自訂一函数

def get_stock(stock):

# 取得股票

df = web.DataReader(stock + '.TW', 'yahoo')

# 计算技术指标

df['SMA20'] = df['Close'].rolling(20).mean() # 在close每20个算一個平均并滚动

df['SMA40'] = df['Close'].rolling(40).mean()

df['SMA60'] = df['Close'].rolling(60).mean()

df['SMA120'] = df['Close'].rolling(120).mean()

return df # 算完回传df给我

df_2330 = get_stock('2330')

df_2454 = get_stock('2454')

df_2317 = get_stock('2317')

是不是美观很多呢!,效果是一样的!

29995946ac23673ceb3b0e106829d59a.png

三、在其他py档用其他py档的def

98591f07bd1e9d9b1d8f22cb31ec0fcb.png

同一目录下 from [放写好函数的py档] import [你的函数名称]

# main.py

from good import get_stock

df_2330 = get_stock('2330')

df_2454 = get_stock('2454')

df_2317 = get_stock('2317')

# 附注from good import * 给米字键就是good.py里面全部的def

四、后记

赶快把程式码变美观吧,之后我们来看看if __name__ == '__main__':是什么意思吧!

#python#

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值