Python——函数

一、定义

def <函数名>(<参数>):
    <函数体>
    return <返回值>
#计算 n!
def fact(n):
    s=1
    for i in range(1,n+1):
        s*=i
    return s

二、可变参数传递

1、函数定义时可为某些参数指定默认值,构成可选参数

def <函数名>(<非可选参数>,<可选参数>):
    <函数体>
    return <返回值>
#可选参数必须放在非可选参数后面
#计算 n!//m
def fact(n,m=1):
    s=1
    for i in range(1,n+1):
        s*=i
    return s//m

2、函数定义时可设计可变数量参数,即不确定参数的数目

def <函数名>(<参数>,*b):
    <函数体>
    return <返回值>
def fact(n,*b):
    s=1
    for i in range(1,n+1):
        s*=i
    for item in b:
        s*=item
    return s

#函数的返回值中,如果 return了多个数据,则用“()”括住,用“,”分隔,即元组类型
def fact(n,m=1):
    s=1
    for i in range(1,n+1):
        s*=i
    return s//m,n,m

#结果
fact(10,5)
为:(725760,10,5)

a,b,c=fact(10,5)
print(a,b,c)
为:725760 10 5

三、局部变量和全局变量

规则1:基本数据类型,无论是否重名,局部变量与全局变量不同
规则2:组合数据类型,如果局部变量为真实创建,则是全局变量

#规则1
n,s=10,100
def fact(n,m=1):
    s=1
    for i in range(1,n+1):
        s*=i
    return s #此处局部变量 s是3628800
print(fact(n),s) #此处全局变量 s是100

n,s=10,100
def fact(n,m=1):
    global s #可通过 global保留字在函数内部声明全局变量
    for i in range(1,n+1):
        s*=i
    return s #此处 s是全局变量362880000
print(fact(n),s) #此处全局变量 s被函数修改,是362880000

#规则2
ls=["F","f"]
def func(a):
    ls.append(a) #此处 ls是列表类型,未真实创建,等同于全局变量
    return
func("C") #全局变量 ls被修改
print(ls) #结果为:['F','f','C']

ls=["F","f"] #通过使用 []真是创建了一个全局变量列表 ls
def func(a):
    ls=[] #此处 ls是列表类型,真实创建,局部变量
    ls.append(a)
    return
func("C") #局部变量 ls被修改
print(ls) #结果为:['F','f']

四、代码复用与模块化设计

函数 和 对象 是代码复用的两种主要形式

  • 函数:将代码命名.在代码层面建立了初步抽象
  • 对象:属性和方法。<a>.<b>和<a>.<b>()。在函数之上再次组织进行抽象

紧耦合、松耦合

  • 紧耦合:两个部分交流很多,无法独立存在
  • 松耦合:两个部分交流很少,可以独立存在
  • 模块内部紧耦合,模块之间松耦合

五、函数递归

函数定义中调用自身的方式
两个关键特征

  • 链条:计算过程存在递归链条
  • 基例:存在一个或多个不需要再次递归的基例

实现:函数+分支语句,分别对应链条和基例

#求 n!
def fact(n):
    if( n==0):
        return 1
    else:
        return n*fact(n-1)

#字符串反转
def rva(s):
    if s=="":
        return s
    else:
        return rvs(s[1:])+s[0] #每次将首个字符放在字符串的最后

#斐波那契数列
def f(n):
    if n==1 or n==2:
        return 1
    else:
        return f(n-1)+f(n-2)

#汉诺塔
count=0
def hanoi(n,src,dst,mid):
    global count
    if n==1:
        print("{}:{}->{}".format(1,src,dst))
        count+=1
    else:
        hanoi(n-1,src,mid,dst)
        print("{}:{}->{}".format(n,src,dst))
        count+=1
        hanoi(n-1,mid,dst,src)

转载于:https://www.cnblogs.com/xxwang1018/p/11571490.html

SmallPython python源码剖析 立即下载

相关推荐

使用 ANSYS AEDT(双向耦合)对高功率射频同轴滤波器进行热分析

使用 ANSYS HFSS,可以精确计算 EM 损耗,然后将其导入 ANSYS 热分析并使用 ANSYS Icepak CFD 求解器进行仿真,以帮助工程师解决最复杂的热挑战,并预测其设计在温度变化下的表现。然后,RF 损耗将与 ANSYS Icepak CFD 求解器耦合,以执行热分析,包括传热的传导、对流和辐射模式,并计算温度曲线。在此演示中,我们将仿真下面的 RF 同轴滤波器,并计算由于所用材料的有限电导率和介电损耗而导致的 RF 传导损耗。设置 HFSS 设计后,我们可以开始 HFSS 仿真。

jkh920184196的博客 1052

北理慕课——Python函数和代码复用

1. 函数的定义与使用 1.1 函数的理解与定义 函数是一段具有特定功能的、可重用的语句组 函数是一种功能的抽象,一般函数表达特定功能 作用:降低编程难度和代码复用 函数的定义: def <函数名>(<参数(0个或多个)>): <函数体> return <返回值> 函数定义后,所指定的参数是一种占位...

qq_41486817的博客 761

CLion与STM32CubeMX联调:JLink GDB Server高效调试指南

本文详细介绍了如何搭建并配置CLion、STM32CubeMX与JLink GDB Server联调的现代化STM32开发环境。通过一站式环境搭建、工程创建、核心调试配置及高级技巧(如RTT日志),该组合实现了高效的代码编辑、可视化配置与稳定调试,大幅提升嵌入式开发效率与体验。

web99的专栏 258

python 可变参数传递 范例n!

可变参数传递 范例n! 代码如下: def fact(n,*b): s=1 for i in range(1,n+1): s*=i for item in b: s*=item return s

学习笔记的博客 348

增量式PID的P和I怎么理解(一)

增量式PID的P、I理解之推翻片 据我所知的资料里关于PID三个参数的理解是这样的:(我这里只说P和I,先不说D) P的作用:比例P可以加快系统调节速度,P过小调节时间变长,响应性不够,P越大响应性越高超调也越严重,过大的P会使系统振荡。 I的作用:消除静差,提高控制精度,I越大越滞后,过大会使系统振荡。 ...

fangchenglia的博客 1万+

IEEE Access 上岸指南,附含泪整理的 cover letter 、沟通邮件、终版文档等资料包

终于上岸了! 我是一个小硕,本科期间发表过两篇水文,奈何学校有更高的毕业要求,只能硬着头皮尝试一下 SCI。 想投 IEEE Access 的朋友都应该知道 小木虫论坛 对这个期刊的讨论,褒贬不一,有的人说是大水刊,有的人说有难度。 比如: @wow_: 不可否认,灌水期刊。只要之前中过一篇,再投基本没有不录用的!我们实验室其他老师说过一区除外的收费期刊都应该禁止灌水。 @pssp: 审稿人还...

kurryluo的博客 1万+

oop 类中定义 的函数_函数式编程与javascript中的oop

oop 类中定义 的函数What is the difference between OOP and functional programming? To figure this out we will be writing a small factorial website calculator. The first approach uses functional programming, t...

weixin_26736149的博客 391

VSCode + QMT 量化交易完整解决方案!

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1331

Python语言程序设计第五章

Python语言程序设计第五章课程内容总结(嵩天)

fuleileileilei的博客 1986

华为OD新系统机试真题 - 配置操作失败数量统计

华为OD机试新系统 4月8号【配置操作失败数量统计】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【配置操作失败数量统计】。

qq_45776114的博客 1165

【系统分析师】核心考点:100个高频知识点汇总

本文系统梳理了系统分析师考试的11大领域高频考点,重点解析了计算机硬件与体系结构的7个核心知识点:计算机五大部件(CPU/存储器/总线等)、校验码类型(奇偶/海明/CRC)、CISC与RISC指令系统对比、总线分类与特性、RAID磁盘阵列级别、流水线技术原理及Flynn系统分类法。内容涵盖硬件组成、数据校验、指令架构、存储技术等关键概念,通过表格对比和公式说明,为考生提供结构化的知识框架与备考重点。

数据知道的博客 5573

python学习笔记(5)

...................................................................................................................................................................................... 函数的代码和复用 ...........

weixin_34228617的博客 651

猿创征文|SfM(Structure from Motion)学习之路

SfM全称Structure from Motion,译为运动恢复结构,是三维重建pipeline的一部分,又称稀疏重建,在摄影测量领域则称为空三(空中三角测量)。SfM的任务是,给定一系列具有一定重叠度的图像,去同时估计出拍摄每张图像时相机的的位姿(位置t和姿态R)和被拍摄物体或场景的稀疏点云。...............

zeeq的博客 1万+

python中各种函数的用法,python常用函数大全

大家好,小编来为大家解答以下问题,python中各种函数的用法,python常用函数大全,现在让我们一起来看看吧!

a17348的博客 1027

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Python函数总结

本章总结了python中函数的基础知识点

2403_86719076的博客 1713

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python content函数_python函数内容

在刚接触python的时候就有个疑问,什么是函数? python语言的函数和数学语言的函数有区别吗?什么是函数数学函数:给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示python函数:函数就是一段事先组织好的,它具有可重复性,封装好,用来实现某个相关联功能的代码段,函数能提高应用的模...

weixin_39732316的博客 4175

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python中各种函数的用法,python中常见的函数

30. ords()和chr(ASCII)函数:将字符串转化为ASCII或将ASCIIIS\转化为字符串。20. urllib.urlopen(url).read():打开网络内容并存储。6. int()函数、float()函数、str()函数等:类型的转化函数。32. strip()、lstrip()、rstrip()函数:去除空格。49. list.remove(“s”)函数:将数据中第一次出现的s删掉。44. s.insert(3,-1)函数:在3的位置之前插入数据-1。

zjl102562的博客 1037

Python函数

函数体#进行一些操作def用于声明一个函数,告诉python这是一个函数的定义。:函数名,一个有效的标识符,命名规则和变量名一致。parameters:形参,可以是0 ~ n 个,参数之间用逗号分隔。函数体:定义函数执行的具体操作。return:指定函数的返回值,没有则返回None。return后面的代码不会执行。lambda函数通常用在需要一个短小函数的地方。

bright_colo的博客 967

【python函数】

函数在很多编程语言中都是一种基本的构建块,它们使得程序更加灵活、可维护和可扩展。

weixin_49451038的博客 1823

python 函数嵌套函数_Python中的嵌套函数

python 函数嵌套函数A nested function is simply a function within another function, and is sometimes called an "inner function". There are many reasons why you would want to use nested functions, and we'll g...

2874

python中各种函数的用法,python基本函数有哪些

大家好,小编为大家解答python中各种函数的用法的问题。很多人还不知道python基本函数有哪些,现在让我们一起来看看吧!

2401_82891133的博客 940

python函数说明

函数的作用:简化代码提高代码重用性便于维护和修改提高代码的可扩展性函数的三要素:功能 len() max() sum()参数 s.clear() s.append('Python')返回值 s.sort() s1 = sorted(s)函数的分类:从定义角度—— 内置函数【别人写好的,你直接用】 自定义函数从参数角度—— 无参函数 有参函数。

2301_80488671的博客 1884

python函数怎么打_python ln函数怎么打

在python语言中,ln函数不是直接调用ln,而是调用math包中的log,或cmath包中的log。工具/原料pythonpycharm截图工具台式机ppt2019方法/步骤1打开pycharm工具,在指定包中新建python文件2在新建的python文件中,导入math和cmath包,然后使用dir查看对应包的方法3保存代码并直接使用应用运行,控制台查看打印结果4调用math包中的log函数...

weixin_39984442的博客 1万+

python bin函数_python bin函数

Python bin函数最后更新于:2020-03-21 12:04:25一.bin函数简介bin()函数是python的一个内置函数,主要功能是返回整形(int)或者长整形(long int)的二进制表示;可能有小伙伴会问:1.整形(int)或者长整形(long int)区别:两者的区别在于取值范围不同,整形取值范围:-32768~32767,而长整形取值范围更大,范围:-2147483648~...

weixin_39838231的博客 8360
上一篇: Python——循环与分支结构
下一篇: Python——文件和数据格式化
SmallProgramer3121
博客等级 码龄11年 3粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值