avatar
文章
23
标签
8
分类
0
首页
音乐
照片
友链
说说
关于
LogoLuckyPython函数
搜索
首页
音乐
照片
友链
说说
关于

Python函数

发表于2018-12-28|更新于2025-03-03
|总字数:1.4k|阅读时长:4分钟

函数

之前由于水平不足博客写的很不好,现于2019/12/17进行大更改。

1.内置函数

①python与其他编程语言一样有许多内置函数,我们可以直接调用使用,只需要知道参数和函数名。内置函数有很多,需要的话自行百度了解

②利用内置函数进行数据类型转换,int,float…

③可以把函数名复制给一个变量,然后用这个变量也可以调用该函数。

a=abs    #用a代替abs函数
a(-1)    #调用取绝对值函数 
1     #产生结果与直接调用abs函数相同


==2.用户自定函数==

①用def语句定义函数,后面跟函数名,括号,括号里写参数名,还要加冒号。用return语句返回。没有return语句函数也可以,只不过返回值为none。

②python与c一样,也可以设置空函数,等到以后再补充内容,需要用pass语句。

def nop() :
  pass

③isinstance(a,int)检查a是否为整形,也可以检查其他的类型,只需要改变int就行,返回值为true或flase。   

import math
导入math包,允许后面调用math函数库内函数


==函数的参数==
函数参数分为:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。五种参数可以混合使用,但$\color{red}{文字必须按照上面的顺序依次设置}$。否则出错。

一、必选参数(位置参数):调用时必须写,还需要注意传入参数的顺序,不能乱序,不能省略,没有什么需要特别注意的地方。

1
2
3
4
5
6
7
8
#也可以使用点名传入法,指出传给某个参数什么值,此时可以不用在意顺序

def pet (animal , pets ) :
print('\n i have a ' + animal + '.')
print('My' + animal + " 's name is " + pet.title() + '.')

#调用函数
pet( pet = 'hame' , animal = 'harry')

二、默认参数:在编写函数时赋予一个默认值。调用函数时如果输入新值则将新值代入函数,若未输入,则按默认值。
  
默认参数有个很大的坑,总之记住一点:默认参数必须指向不变对象。因为不变对象一旦创建,对象内部的数据就不能修改。


三、可变参数:只需要在参数前加上*即可。

1
2
3
4
5
def calc(*numbers) :	#创建的是numbers元组
sum = 0
for n in numbers:
sum = sum + n * n
return sum

输入的数据个数无限制(也可以是零个),任意的,直接调用:

calc(1,2,3,4)

如果已经有一个列表或元组,则可以:

num=[1,2,3]
calc(*num)

直接将list或tuple中的元素传入函数。方便快捷


四、关键字参数:

1.可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple(元组),
而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict(字典)(传入的时候也必须传入键和值)

2.关键字参数需要用两个**开头,在关键字参数里可以随意输入其他参数,个数也无限制

1
2
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)

调用person函数(举例)

1
2
3
person('Michael', 30)

name: Michael age: 30 other: { }

1
2
3
person('Adam', 45, gender='M', job='Engineer')			#等号前面的东西不能加引号

name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}\

也可以先组装出一个dict,然后,把该dict转换为关键字参数传进去:
1
2
3
4
5
extra = {'city': 'Beijing', 'job': 'Engineer'}

person('Jack', 24, **extra)

name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}


五、命名关键字参数:
==作用==:限制关键字参数的名字,用户不能随意输入参数。

def person(name, age, *, city, job):
print(name, age, city, job)

只接受city和job参数。其他参数不要
调用:

person(‘Jack’, 24, city=’Beijing’, job=’Engineer’)
Jack 24 Beijing Engineer

⑴如果前面已经有一个可变参数了,则后面的命名关键字参数就不在需要*修饰了

def person(name, age, *args, city, job):
print(name, age, args, city, job)

⑵调用命名关键字参数必须传入参数名

⑶命名关键字参数也可以设置默认值


小结
1、五种参数必须按顺序来调用
2、使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
3、虽然说五种参数能同时调用,但还是不要这样为好


==递归函数==
含义:函数内部调用函数本身
例:计算阶乘:

def fact(n):
if n==1:
  return 1
return n * fact(n - 1)

标准的递归函数,但是数值不能过大,过大可能会溢出。


函数存储

两个文件在同一个目录下的话,就可以在一个文件内导入另一个文件的函数,做法与以前导入其它模块一样,没什么特殊的,那些操作也都可以用。

作用:隐藏代码细节

文章作者: 刘同学
文章链接: https://mouhorse.github.io/2018-12-28/Python%E5%87%BD%E6%95%B0/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lucky!
Python
赞助
  • wechat
    wechat
  • alipay
    alipay
cover of previous post
上一篇
机器学习
机器学习 ==1.监督学习== 利用一组已知类别的样本调整算法的参数,使其达到所要求的性能。 ==2.无监督学习== 利用聚类算法,不知样本类别,使其达到所要求的性能。 3.过拟合:训练集好,测试集不好。(后期再详细介绍) 欠拟合:两者都不好。 单变量线性回归 ...
cover of next post
下一篇
高数第三章
...
相关推荐
cover
2022-02-16
MNIST手写数字识别总结(pytorch)
此博客并不是教程,只是一个练习总结 代码汇总放在文末 1.首先导入所需要的库1234567891011import torchfrom torch import nnfrom torch.nn import functional as Ffrom torch import optimimport torchvisionfrom matplotlib import pyplot as pltimport pandas as pdimport numpy as npfrom Util import plot_image,pd_one_hot #辅助函数,在博客末尾附上 2.数据集 此数据集总共包含70K张图片,其中60K作为训练集,10K作为测试集。 更多消息可以查看官网官网链接:官网 3.加载数据 batch_size设置一次处理多少图片,此处设置为512张图片,这样并行处理可以cpu,gpu加快处理速度 1batch_size =...
cover
2021-02-26
pytorch基础
持续补充 1import torch 1.随机相关 123456789a = torch.randn(2,3) 正态分布b = torch.rand(2,3) 0~1范围内随机c = torch.rand_like(a) 模仿a的形状生成随机矩阵d = torch.randint(1,10,[2,3,4]) 在1~10内生成形状为(2,3,4)的矩阵a = a.cuda() 将数据加载到gpu内 2.查看数据形状 12345a.type() 输出数据类型a.size() == a.shape 输出张量形状a.dim() 输出维度 3.生成矩阵 1234567891011121314151617181920212223242526272829303132a = torch.full([3,4,5],6) (3,4,5)形状矩阵,用6填满tensor([[[6., 6., 6., 6., 6.], [6., 6., 6., 6., 6.], [6., 6., 6., 6., 6.], ...
cover
2018-08-21
3D图像颜色
viridis 翡翠色 #中文会慢慢给出,也会逐渐整理 只有[ ‘ ‘]内的代码才是颜色。# # cmaps = [('Perceptually Uniform Sequential', # # ['viridis', 'inferno', 'plasma', 'magma']), # # ('Sequential', ['Blues', 'BuGn', 'BuPu', # # 'GnBu', 'Greens', 'Greys', 'Oranges', 'OrRd', # # 'PuBu', 'PuBuGn', 'PuRd', 'Purples',...
cover
2018-12-15
Python基础
之前由于水平不足博客写的很不好,现于2019/11/30进行大更改。 python1.基础①代码中单引号与双引号效果一样,不像其他语言一样有所区别,但是要成对使用,不能落单。  ②命名可以用数字,字母,下划线,汉字,不能以数字开头。注意不要和关键字重名。  ③字符串:每个元素的位置可以正着数,也可以倒着数。正着数从0开始,倒着从-1开始。 字符串访问区间方式:[m,n],访问从m开始到n的字符串内元素(不包括n,左闭右开) m,n可以是正着数的,也可以是倒着数的,还可以混合用。  ④交换x,y的值:x,y=y,x(比c简单多了)   ⑤#后面跟的是注释,大程序中注释很重要,便于自己和别人的理解。  ⑥为了简化避免造成机器误解,Python还允许用 r’ ‘表示 ‘ ‘ 内部的字符串默认不转义,可以自己试试:  (1)输入:>>> print( ‘ \\\t\\ ‘)     输出:\    \  (2)输入:>>> print ( r ‘ \\\t\\‘)     输出:\\\t\\ 2.输出...
avatar
刘同学
欢迎光临我的博客
文章
23
标签
8
分类
0
Follow Me
公告
欢迎来到我的博客!
可以交换友链
联系方式:485182274@qq.com
目录
  1. 1. 函数
  2. 2. 函数存储
最新文章
Hexo本地与云端布局不同处理办法
Hexo本地与云端布局不同处理办法2025-02-25
解决 Hexo 部署到 GitHub Pages 自定义域名失效
解决 Hexo 部署到 GitHub Pages 自定义域名失效2025-02-24
Butterfly 个性化配置教程
Butterfly 个性化配置教程2025-02-23
Hexo安装并修改主题
Hexo安装并修改主题2025-02-23
MNE脑电预处理
MNE脑电预处理2024-10-07
©2018 - 2025 By 刘同学
框架 Hexo 7.3.0|主题 Butterfly 5.3.3
活出个样子给自己看
搜索
数据加载中