python—函数

1. 函数的定义:

1 . 含义:我们把实现某一功能的代码定义为一个函数,在需要使用时,随时调用,十分方便。对于函数,简单理解就是可以完成某功能的代码块,可反复使用。
Python提供了许多内建函数,比如print()。也可以自己创建函数,这被叫做用户自定义函数。
2 . 建立一个函数:

def functionname([parameterlist]):"""comments"""founctionbody含义:
functionname:为函数名,可以自定义,在调用函数时使用。
parameterlist:为可选参数,用于指定向函数中传递的参数。如果有多个参数,各个参数间用逗号(,)隔开,如果不指定,则表示该函数没有参数。
comments:函数指定注释,注释内容为其功能,传递的参数的作用等,让人能快速了解该函数
founctionbody:为实现功能的语句块

3 . 调用函数:

def hello():print('hello')print('python')# 通过函数名来调用函数
hello()运行结果:
hello
python

4 . 函数的镶套:

def westos():print('is westos')def python():print('is python')python()
westos()运行结果:
is westos
is python

2 . 参数传递

函数参数的作用是传递数据给函数使用,函数利用接收的数据进行具体的操作处理。
区别形式参数和实际参数
形式参数:简称形参,定义函数时写的参数叫形参。
实际参数:简称实参,调用函数时写的参数。

def func(形参)		#定义func函数passfunc(实参)		#调用func函数

形参:位置参数 默认参数 可变参数 关键字参数
1 位置参数:

def func(name,score):print(name+'的成绩为:'+score+'分')func('小李','98')运行结果:
小李的成绩为:98分

2 默认参数

在定义函数的时候,给定一个参数默认值,当调用函数的时候,如果没有给该形参传入实参,则使用该默认值进行运算。

def add(x,y=10):  # 定义函数,其中第二个形参的默认值为10print(x+y)
add(5,3)   # 当调用函数的时候,传入两个实参,则使用传入的值进行运算
add(5)  # 当只传入一个值的时候,另一个使用默认参数值进行运算运行结果:
8
15

3 可变参数
当参数的个数不确定的时候,可以使用可变参数,来表示该函数可以接收任意个参数
在使用可变参数的时候:
其中*a 表示对参数进行解包,将序列中的元素一个一个的拿出来。
a的对象类型是一个元组。

def mysum(*a):  # 定义函数的形参数是任意个print(*a)print(a)sum = 0for item in a:sum += itemprint(sum)
nums = [1,2,3,4]
nums1 = (1,2,3,4)
nums2 = {1,2,3,4}
mysum(*nums)
mysum(*nums1)
mysum(*nums2)运行结果:
当实参是一个列表的时候,返回值
1 2 3 4    # 解包列表的得到的数据
(1, 2, 3, 4)  # a的对象类型为一个元组
10              # 最后的返回值当实参是一个元组的时候,返回值
1 2 3 4      # 解包元组的得到的数据
(1, 2, 3, 4)   # a的对象类型为一个元组
10   # 最后的返回值当实参是一个集合的时候,返回值
1 2 3 4     # 解包集合的得到的数据
(1, 2, 3, 4)   # a的对象类型为一个元组
10    # 最后的返回值

4 关键字参数
关键值参数是指使用形参的名字来确定输入的参数值。

def func(name,score):print(name+'的成绩为:'+score+'分')func(score='100',name='redhat')	#顺序并没有一致运行结果:
redhat的成绩为:100分

3. 函数的返回值

返回值:函数运算的结果,还需要进一步操作,给函数一个返回值
return用来返回函数执行的结果,如果函数没有返回值,默认返回None
一旦遇到return 函数执行结束,后面的代码不会执行
多个返回值的时候,python会帮我们封装成一个元组类型

def getStuInfo(name,age):print(name)print(age)
a = getStuInfo('redhat',16)
print(a)运行结果:
redhat
16
None  # 函数没有返回值,函数执行的结果默认返回None

当函数存在返回值的时候,一旦遇到return 直接结束 后面的代码就不会在再执行。

def getStuInfo(name,age):print(name)if name == 'redhat' :return 'name is redhat'   # 函数的返回值print(age)
a = getStuInfo('redhat',16)
print(a)运行结果:
redhat
name is redhat   # 存在返回值,并且成功返回该返回值,之后的代码将不会再执行

4 . 作用域

变量的作用域指程序代码能访问该变量的区域,一般根据‘有效范围’,将变量分为“局部变量”和“全局变量”。
变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是:
L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内置作用域(内置函数所在模块的范围)

total = 0  # 这是一个全局变量
def sum(arg1, arg2):# 返回2个参数的和total = arg1 + arg2  # total在这里是局部变量.print("函数内是局部变量 : ", total)return total# 调用sum函数
sum(10, 20)
print("函数外是全局变量 : ", total)运行结果:
函数内是局部变量 :  30
函数外是全局变量 :  0

练习:
案例1:
编写一个函数cacluate, 可以接收任意多个数,返回的是一个元组.
元组的第一个值为所有参数的平均值, 第二个值是大于平均值的所有数.

def cacluate(*x):sum = 0for i in x :sum += iaverage = sum/len(x)li = []for k in x :if k > average :li.append(k)return (average,li)

案例2:
编写一个函数, 接收字符串参数, 返回一个元组,‘ehllo WROLD’
元组的第一个值为大写字母的个数, 第二个值为小写字母个数.

def count(s):upper_c = 0lower_c = 0for i in s :if i.isupper() :upper_c +=1if i.islower() :lower_c +=1return (upper_c,lower_c)
print(count(input(':')))

题目:两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

team = ['x','y','z']
all_order = []
for i in team :for k in team :if k != i :for m in team:if m !=k and m !=i :all_order.append([i,k,m])
for t in all_order :if t[0] !=team[0] and t[2] != team[0] and t[2] != team[2] :print('a — %s ; b  — %s ; c — %s ' %(t[0],t[1],t[2]))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word打开老是配置进度_小白教程 | office出现配置进度框,怎么办?

最近很多同学在备考二级时候,自己的电脑上office软件Word或者Excel出问题了,每次打开都会出现配置进度框。这种情况怎么办呢?这种情况都是注册表的问题,马上安排解决之前在 右键菜单没有office新建怎么办(点击即可阅读)也是用注册…

【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~...

一、写在前面 自使用android studio开始,就被它独特的依赖方式:compile com.android.support:appcompat-v7:25.0.1所深深吸引,自从有了它,麻麻再也不用担心依赖第三方jar包繁琐无趣啦。而,如果自己写一个开源库是一种怎…

scala集合中添加元素_如何在Scala中获得列表的第一个元素?

scala集合中添加元素清单 (List) A list is a linear data structure. It is a collection of elements of the same data types. 列表是线性数据结构。 它是相同数据类型的元素的集合。 Scala libraries have many functions to support the functioning of lists. Methods l…

python—列表、字典生成式

1 列表生成式 Python内置的一种极其强大的生成列表 list 的表达式。返回结果必须是列表。 示例: 需求1:接收变量 k a b s 51 5000 10000 a s.split() li [] for item in s.split():li.append(int(item)) k,a,b li print(k,a,b)运行结果:…

excel数据平均分配给多人_excel表格 怎样均分数据-用Excel怎么才能将组数据平均分配给几个人...

怎样在Excel表格中求平均数?在excel中怎样自动生成各班各科的平均成绩可以调用Excel函数库的函实现。步骤如下:1. 在单元格内点击上公式-平均值”。2. 点击需要参与计算的单元格数据,符号用键盘输入,最后回车即可。百度百科-Excel函数exce…

Java中List和Map接口之间的区别

列表与地图界面 (List vs Map interface) Here, we will see how List differs from Map interface in Java and we will see the points given below, 在这里,我们将看到List与Java中的Map接口有何不同,并且我们将看到以下几点, 列表界面 (…

python—高阶函数

什么是内置高阶函数: 一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。 Python中内置了几个常用的高阶函数,…

功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了

随着计算机硬件的不断更新换代显示设备的不断更新从原来的分辨率640 X 480啥原来分辨这么低呀?还记得DOS吗?或者Win95,win98吗当时显示器分辨率能调到800X 600很好了2000年左右随着纯平显示器的推出也有了高清显示器的概念那么一般我们说的高清显示器分辨…

nginx1.10.2源码安装配置参数参考

[rootlocalhost nginx-1.10.2]# ./configure --help--help print this message--prefixPATH set installation prefix #Nginx安装的根路径,默认为 /usr/local/nginx。--sbin-pathPATH set nginx binary pathname #指定nginx二进制文件的路径,默认为PATH/sbin/n…

c ++查找字符串_C ++朋友功能| 查找输出程序| 套装1

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int A, B;friend void fun();};void fun(){Sample S;S.A 10;S.B 20;cout << S.A << " " << S.B << endl;}int main(){fun();retu…

Spring定时器的运用

为什么80%的码农都做不了架构师&#xff1f;>>> 一、spring4定时器任务配置如下&#xff1a; <bean id"jsapiTask" class"chan.ye.dai.wexin.JsapiTicketTimeTask" /><bean id"jobDetail"class"org.springframework.s…

python—装饰器

装饰器概念&#xff1a; 把一个函数当作参数传递给一个函数&#xff0c;返回一个替代版的函数 本质上就是一个返回函数的函数 在不改变原函数的基础上&#xff0c;给函数增加功能 python 中装饰器做的事情&#xff01;它们封装一个函数&#xff0c;并且用这样或者那样的方式来修…

ad18原理图器件批量修改_Altium Designer 15原理图设计基础

Altium Designer 15成为越来越多电子设计开发工程师EDA电路设计软件的首选&#xff0c;在学校学习Altium Designer的也越来较多&#xff0c;像单片机开发学习一样&#xff0c;EDA设计只要学会了&#xff0c;再学其他的设计软件就容易多了。上一节分享了《Altium Designer 15集成…

c++freopen函数_使用示例的C语言中的freopen()函数

cfreopen函数C语言中的freopen()函数 (freopen() function in C) Prototype: 原型&#xff1a; FILE* freopen(const char *str, const char *mode, FILE *stream);Parameters: 参数&#xff1a; const char *str, const char *mode, FILE *streamReturn type: FILE* 返回类型…

python—文件

1 . 文件的基本操作&#xff1a; 文件读取三部曲&#xff1a; 打开操作关闭&#xff08;如果不关闭会占用文件描述符&#xff09; 打开文件&#xff1a; f open(/tmp/passwdd,w)操作文件&#xff1a; 1 . 读操作&#xff1a; f.read()content f.read()print(content) 2 …

基本概念学习(7000)--P2P对等网络

对等网络&#xff0c;即对等计算机网络&#xff0c;是一种在对等者&#xff08;Peer&#xff09;之间分配任务和工作负载的分布式应用架构[1] &#xff0c;是对等计算模型在应用层形成的一种组网或网络形式。“Peer”在英语里有“对等者、伙伴、对端”的意义。因此&#xff0c;…

c语言for循环++_C ++程序使用循环查找数字的幂

c语言for循环Here, we are going to calculate the value of Nth power of a number without using pow function. 在这里&#xff0c;我们将不使用pow函数来计算数字的N 次幂的值 。 The idea is using loop. We will be multiplying a number (initially with value 1) by t…

厦门one_理想ONE真是“500万内最好的车”?

提起罗永浩&#xff0c;不少人还停留在“砸冰箱、造手机”等早期事件。随着网络直播的兴起&#xff0c;罗永浩转战直播带货行业&#xff0c;但老罗毕竟是老罗&#xff0c;雷人语录一点没比以前少。前一段时间&#xff0c;罗永浩在微博中称&#xff1a;“理想ONE是你能在这个价位…

Data Collection

众所周知&#xff0c;计算机领域论文是要以实验为基础的&#xff0c;而实验的原料就是数据。不管是在图像&#xff0c;文字或者语音领域&#xff0c;开源的数据都十分宝贵和重要。这里主要收集各领域的一些常用的公开数据集。 计算机视觉&#xff1a; 【ImageNet】 【Caltech P…

python—os模块、时间模块

os模块 作用&#xff1a;os模块是python标准库中的一个用于访问操作系统功能的模块&#xff0c; os模块提供了其他操作系统接口&#xff0c;可以实现跨平台访问。 使用&#xff1a; 1 . 返回操作系统类型 &#xff1a;os.name 值为&#xff1a;posix 是linux操作系统 值为&…