如何利用python在yi_Python函数

定义

Python的函数定义使用def

def func_name(x):

return "hello world" //通过return 返回执行结果

常用内置

常用内置函数(待补充):

abs() // 绝对值计算

isinstance(v, (type list)) //判断是否是类型列表中的值 boolen return

int() //强制int类型转换,小数时仅保留整数位

str() //强制string类型转换

unicode //unicode编码转换

bool() //强制bool 类型转换

return 多值

python的函数是可以返回多值的

//定义

def infos():

name = "Yi_Zhi_Yu"

age = 25

return name, age

//调用

infos() //('Yi_Zhi_Yu', 25)

可以看到, 返回的多值是以tuple形式输出的

参数

python的参数支持默认参数语法,但必须定义在函数参数的最后面的位置

注意: python的参数可以不需要严格按照定义的函数参数的位置传递进去, 作为代价,需要告诉函数传递的参数对应的是哪个,如下:

def infos(input_name, input_age=18): //默认的参数定义age=18

name = input_name

age = input_age

return name, age

infos("Yi_Zhi_Yu",25) // ('Yi_Zhi_Yu', 25) //默认参数传递顺序

infos(input_age=25, input_name="Yi_Zhi_Yu") //('Yi_Zhi_Yu', 25) 这里就没有按照默认的顺序传递参数

可变参数

当需要向函数传递参数,而又不知道参数的具体数量的时候, 可以使用如下定义方式:

//计算平均分

def average_score(*score):

s = 0

for n in score:

s += n

return s/len(score)

average_score(10, 8, 8, 10) //9

否则, 按照正常的方式, 还需要定义一个tuple或者list结构,然后传递给函数才能使用,上面的这种方式实际上本身传递进去的就是一个tuple, 把所有的参数都自动放在了*对应的参数里

那么如果传递进去的参数假如本身就是一个tuple或list了, 而上面的方法我们已经定义好了, 那么我们怎么办, 一个个元素score[0], score[1]写进去又很麻烦, 怎么办: 在传递tuple或list参数的时候带个*即可

score = (10, 8, 8, 10)

average_score(*score) //9 如果不带*,会直接报错类型错误

关键字参数

首先必须搞清楚什么事关键字参数, 在函数定义的时候明确表明了哪个参数的值是什么的时候就是关键字参数, 我们在默认参数那块有用过

python 允许在函数参数传递任意的关键字参数, 前提是最后一个参数定义必须带了**

def new_infos(input_name, input_age, **other_info):

return input_name, input_age, other_info

那这里除了第一个和第二个参数, 第三个参数都是以dict 形式传递进去的, 用一下就知道了

new_infos("Yi_Zhi_Yu",25, sex="man", interest="basketball")//('Yi_Zhi_Yu', 25, {'interest': 'basketball', 'sex': 'man'})

//other_info 接受了除第一个第二个参数外的关键字参数

混合参数

如果同时传递以上几种类型, 该如何定义呢, 按照顺序, 必须是

必要参数, 默认参数, 可变参数, 关键字参宿

所以在使用的时候要注意了

Ps: 以上为学习记录, 难免有错, 希望各位指正

参考:廖雪峰Python教程

griddata函数是NumPy中的一个函数,用于将非规则(不规则分布的)数据转换为规则(规则分布的)数据。它的主要作用是通过插值算法,将离散的数据点插值到规则网格上,生成规则的网格数据。 griddata函数的语法如下: ```python numpy.griddata(points, values, xi, method='linear', fill_value=nan) ``` 参数说明: - points:一个元组,包含了待插值的点的坐标,每个坐标都是一个n维向量,n是数据的维度。 - values:一个数组,表示每个点的值,数组长度和points的长度相同。 - xi:一个元组,表示要插值的点的坐标,每个坐标都是一个n维向量,n是数据的维度。 - method:插值算法,可以是'linear'(线性插值)、'nearest'(最近邻插值)、'cubic'(三次样条插值)。 - fill_value:当插值点在待插值点的外部时,填充的值。 示例代码: ```python import numpy as np from scipy.interpolate import griddata # 定义待插值的点 points = np.random.rand(10, 2) # 定义待插值点的值 values = np.sin(points[:, 0]*np.pi) * np.cos(points[:, 1]*np.pi) # 定义规则网格点 xi = np.linspace(0, 1, 100) yi = np.linspace(0, 1, 100) xi, yi = np.meshgrid(xi, yi) # 使用griddata函数插值 zi = griddata(points, values, (xi, yi), method='linear') # 绘制插值结果 import matplotlib.pyplot as plt plt.imshow(zi, extent=(0, 1, 0, 1), origin='lower') plt.scatter(points[:, 0], points[:, 1], c=values, s=50, edgecolor='none') plt.colorbar() plt.title('griddata') plt.show() ``` 输出结果: ![griddata示例](https://img-blog.csdn.net/20180403171915308?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTU3MjU3MzU0Nw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值