python函数内容
在刚接触python的时候就有个疑问,什么是函数? python语言的函数和数学语言的函数有区别吗?
什么是函数
数学函数:给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示
python函数:函数就是一段事先组织好的,它具有可重复性,封装好,用来实现某个相关联功能的代码段,函数能提高应用的模块性,和代码的重复利用率。
格式:
# 未携带函数格式
def name(): # name表示函数的名称
print('这是个函数') # 函数的内容
return name # 返回函数值 name() # 执行函数 # 携带参数函数格式
def name(name):
print('这是个函数名',name)
return name
name('name')
通常来说函数必须要遵循以下几点:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 圆括号之间可以用于定义参数。
- 函数内容以冒号起始,并且缩进。
- return 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
可变与不可变传参
传不可变参数
# 传不可变参数
def name(a):
a = 20
print(a)
b = 10
name(b) # 结果为20
print(b) # 结果为10
传可变参数
def changeme( mylist ):
mylist.append([1,2,3,4])
print( "函数内取值: ", mylist)
return # 调用changeme函数
mylist = [10,20,30]
changeme( mylist ) 执行结果:
函数内取值: [10, 20, 30, [1, 2, 3, 4]]
不可变:整数、字符串、元组
可变参数:字典,列表
全局变量和局部变量
name = 'AnJing'
def name_01(name):
print('现在我的名字是:',name)
name = 'test'
print('现在我的名字是:',name) name_01(name)
print('外面我的名字是:',name) 执行结果:
现在我的名字是: AnJing
现在我的名字是: test
外面我的名字是: AnJing
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域,局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中
函数之间的调用
def jiafa(a,b):
'''加法'''
c = a + b
return c # 返回C def jianfa(c):
'''减法'''
d = 2
s = c -d
print(s)
c = jiafa(2,3) # 调用函数加法
jianfa(c) # 调用函数减法 执行结果:
3 加法函数返回值赋给C,函数减法接受参数C进行完成减法操作
非固定参数
若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数,引入*args,**kwargs
# *args
def name(name,*args):
print(name,args)
name('AnJing','test',123) 执行结果:
AnJing ('test', 123) 这个时候会发现*args 传入的内容会变成一个元祖 # **kwargs
def name(name,**kwargs):
print(name,kwargs)
name('AnJing',it='test',age=123) 执行结果:
AnJing {'it': 'test', 'age': 123} 这个时候会发现**kwargs传入的内容会变成一个字典
递归
函数之间可以进行调用,那么函数本身也可以进行调用,这种函数我们叫做递归
# 递归函数
def calc(n):
print(n)
if int(n/2) ==0:
return n
return calc(int(n/2)) calc(10) 执行结果:
10
5
2
1
python函数内容的更多相关文章
- python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
函数参数传递本质上和变量整体复制一样,只是两个变量分别为形参a和实参b.那么,a=b后,a变了,b值是否跟着变呢?这取决于对象内容可变不可变 首先解释一下,什么是python对象的内容可变不可变? p ...
- python 函数之day3
一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...
- Python函数讲解
Python函数
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- Python开发【第四章】:Python函数剖析
一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...
- Python入门笔记(18):Python函数(1):基础部分
一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...
- 4.python函数基础
一.函数 1.函数简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但 ...
- python字符串内容替换的方法(转载)
python字符串内容替换的方法 时间:2016-03-10 06:30:46来源:网络 导读:python字符串内容替换的方法,包括单个字符替换,使用re正则匹配进行字符串模式查找与替换的方法. ...
- Day03 - Python 函数
1. 函数简介 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print():也可以自己创建函数,这 ...
随机推荐
- java 读取 excel 表格内容
一.添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</ar ...
- APK更新集成实践
任务目标:将内网APK打包后最新下载链接.更新时间.更改日志显示在一个我自己制作的APP里 任务作用:我们在内网测试时更新下载APK更加便捷,并且能够清楚目标APK的版本情况,回归.验证做到有的放矢 ...
- Python进阶基础学习(多线程)
Python进阶学习笔记(一) threading模块 threading.thread(target = (函数)) 负责定义子线程对象 threading.enumerate() 负责查看子线程对 ...
- 201871010108-高文利《面向对象程序设计(java)》第十四周学习总结
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址> ht ...
- python执行cmd命令
os.system os.system用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功 注意:os.system是简单粗暴的执行cmd指令,如果想获取在cmd输出的内 ...
- umi+dva+antd新建项目(亲测可用)
首先全局安装dva+umiumi:npm install -g umidva:npm install -g dva-cli 通过脚手架创建项目 一: mkdir myapp && cd ...
- 手摸手教你bootstrap定制
老实说我一直不太喜欢使用bootstrap,bootstrap样式组件虽然丰富但实际开发使用到的不多:栅格系统虽然好用,满屏div也是看的头疼:所以当经理说要用bootstrap开发新项目的时候,我内 ...
- 洛谷 P2176(最短路)
###题目链接 洛谷 P2176 ### 题目大意: 已知农夫从 1 走到 N 点,一定走的是最短路.问你将某条路的长度变为其两倍后,农夫从 1 走到 N 点的路程最大增加多少,输出最大增量. 分析: ...
- struts2文件上传报错
说明上传的文件为空,检查上传文件名
- Dubbo从入门到实战:实战篇
一.加入 zookeeper 作为注册中心 在前面的案例中,我们没有使用任何的注册中心,而是用一种直连的方式进行的.但是,实际上很多时候,我们都是使用 dubbo + zookeeper 的方式,使用 ...