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():也可以自己创建函数,这 ...
随机推荐
- C#&.Net干货分享-构建后台自动定时任务的源码
1.创建一个自动处理中心任务参数的类,直接源码: namespace Frame.AutoProcess{ /// <summary> /// 委托(用于异步处理任务) ...
- ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/itsdangerous' Consider using the `--user` option or check the permissions
近期练习flask写个blog, 安装flask扩展时 pip install Flask-WTF 报ERROR: Could not install packages due to an Envir ...
- 单选框radio改变事件
<input type="radio" name="bedStatus" id="allot" checked="check ...
- go语言设计模式之visitor
这个确实没有调通,也要记录一下 visitor.go package visitor import ( "fmt" "io" "os" ) ...
- LINUX上安装JDK+tomcat+mysql操作笔记
1.环境准备: 1-1.centos 64位(本人的虚拟机安装此系统),安装步骤和网络配置已经在前两篇记录. 1-2.JDK 版本1.8 1-3.tomcat压缩包 1-4.CRT远程连接工具(可用其 ...
- Re-DD-Hello
题目地址 https://dn.jarvisoj.com/challengefiles/1.Hello.12b9bde7c0c8558a9da42aa1798cafc8 用IDA打开,找到算法函数 写 ...
- 七夕节 (HDU - 1215) 【简单数论】【找因数】
七夕节 (HDU - 1215) [简单数论][找因数] 标签: 入门讲座题解 数论 题目描述 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们 ...
- Collection接口综述
Collection接口 Collection是集合类基本的接口,它不提供具体的实现,集合类都继承自Collection接口,Collection代表的是一种规则,它包含的元素必须符合某种规则,比如有 ...
- WPF 精修篇 DataGrid 数据源排序
原文:WPF 精修篇 DataGrid 数据源排序 效果 <DataGrid x:Name="datagrid" ItemsSource="{Binding Ele ...
- Java中Array与ArrayList的10个区别
Array和ArrayList都是Java中两个重要的数据结构,在Java程序中经常使用.并且ArrayList在内部由Array支持,了解Java中的Array和ArrayList之间的差异对于成为 ...