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():也可以自己创建函数,这 ...
随机推荐
- 【Nginx】安装&环境配置
安装依赖包 安装make:yum -y install gcc automake autoconf libtool make 安装g++:yum -y install gcc gcc-c++ 安装pc ...
- Android Studio添加文件注释头模板集合
Android Studio中设置方式 File -> Settings -> Editor -> File and Code Templates -> 右侧File标签 -& ...
- Hadoop HA 架构
为什么要用集群? 企业里面,多台机器 伪分布式 每一个角色都是一个进程 HDFS: NN SNN DN YARN: RM NM 大数据所有组件, 都是主从架构 master-slave HDFS读写请 ...
- docker实用命令
退出容器又不关闭容器:Ctrl + P + Q 比如这种情况: 直接输入exit 会退出且关闭容器,工程就stop了 或者Ctrl + C,会报错KeyboardInterrupt,工程就也stop了 ...
- Linux—软连接与硬连接
软链接的创建,删除,修改 创建软链接:ln -s[目标文件或目录][软链接地址] 解释:软链接地址相当于快捷方式,目标文件或目录才是真正的内容.[软链接地址]指“快捷键”文件名称,该文件是被指令创建的 ...
- layUI学习第三日:layUI模块化开发
layui 定义为「经典模块化」,具备早前 AMD 的影子,又并非受限于 CommonJS 的那些条条框框, BootStrap 的不同在于:layui 糅合了自身对经典模块化的理解. 除了 layu ...
- Codeforces Round #594 (Div. 2) B. Grow The Tree 水题
B. Grow The Tree Gardener Alexey teaches competitive programming to high school students. To congrat ...
- 定时锁屏程序,Python祝你原理猝死!
高以翔事件 11月27日在<追我吧>第九期节目的录制过程中,当期参与嘉宾高以翔奔跑时突然减速倒地,节目现场医护人员第一时间展开救治,并紧急将其送往医院.经过两个多小时的全力抢救,医院最终宣 ...
- Jmeter之用于json格式的响应断言
当响应结果是json格式时,用JSON Assertion更方便判断. 1 在请求上右键添加json断言 2 编辑json Assertion 判断方式: 如果响应结果不是json格式的,fail ...
- Selenium+java - 使用csv文件做数据驱动
前言 早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中.这会使得测试脚本的维护工作量很大.因此我们可以将测试的数据和脚本分开. 而我们经常使用会使用csv文件来做为导出数据 ...