Learing-Python【10】:函数初识

一、什么是函数

  函数就是代码的一种组织形式,是指将一组语句的集合通过一个名字(函数名)封装起来,要想指向这个函数,只需要调用其函数名即可

  函数分为两大类:内置函数 和 自定义函数

二、为何要用函数

  减少重复代码

  使程序变的可扩展

  使程序变得易维护

三、如何用函数

1、原则:函数必须先定义,再调用

1)定义阶段:只检测语法,不执行函数体代码

2)调用阶段:会出发函数体代码的执行

2、定义函数的语法

  def 函数名(参数1, 参数2):

    """ 文档注释 """

    函数体

    return 返回值

3、调用函数的语法

  函数名(值1, 值2)

4、定义一个函数,只是定义的话不会执行

1)def是关键字,后跟一个空格
2)函数名,自己定义,起名需要遵循变量命名规则
3)后面括号和冒号不能省,括号内可以有参数
4)函数内所有代码缩进

5、函数定义的三种形式:

  有参函数:通过接受外部传进来的值,进行一系列的操作

  无参函数:只是进行函数内部的操作

  空函数:什么事情都不做,内部用pass进行占位

6、函数调用的三种形式:

  语句形式:仅仅是函数名加括号

  表达式形式:将函数的结果与数字类型(整型、浮点型)相计算

  当作参数传给另一个函数,例如:range(len("hello"))

四、函数的返回值

1、注意点:

  1)函数的返回值没有类型限制

  2)函数的返回值没有个数限制

2、返回多个值:多个返回值之间用逗号隔开,返回的是元组形式

3、返回一个值

4、返回零个值或者没有 return

return 除了有返回值的功能,还有函数结束执行的功能:函数内可以有多个return,但只要执行一次,整个函数就立即结束,并且将 return 后的值返回

五、函数的参数

1、形式参数:在定义函数阶段,括号内定义的参数称为形参

2、实际参数:在调用函数阶段,括号内传入的值称为实参

  在调用函数阶段会将实参的值传递给形参,这种传递关系只在调用函数时生效,在函数执行完后就会失效

3、位置参数

  1)站在形参角度(位置形参)

    定义:在函数定义阶段,按照从左到右的顺序依次定义的形参称之为位置形参

    特点:但凡按照位置定义的形参,必须被传值,多一个不行少一个也不行

def func(x, y, z):
    print(x, y, z)

func(1, 2)         # 错误
func(1, 2, 3)      # 正确
func(1, 2, 3, 4)   # 错误

  2)站在实参角度(位置实参)

    定义:在调用阶段,按照从左到右的顺序依次传入的值称之为位置实参

    特点:与形参一一对应

def func(x, y, z):
    print(x, y, z)

func(2, 1, 3)

4、关键字参数(关键字形参)

定义:在调用阶段,按照 key=value 的形式定义的实参称之为关键字实参

特点:可以完全打乱顺序,但仍然能为指定的形参传值

def func(x, y, z):
    print(x, y, z)

func(x=1, y=2, z=3)
func(1, 2, 3)
func(z=3, y=2, x=1)

实参中位置参数与关键字参数可以混合使用,但是必须遵循以下原则:

1)位置参数必须放在关键字参数的前面

2)不能对同一个形参重复传值

def func(x, y, z):
    print(x, y, z)

func(1, z=3, y=2)           # 正确
func(z=3, 1, y=2)           # 错误
func(1, z=3, x=2, y=3)      # 错误
func(x=1, y=2, 3)           # 错误

5、默认参数(默认形参)

定义:在函数定义阶段,就已经为形参赋值,该形参称之为默认形参

特点:

  1)定义阶段就已经有值,意味着调用阶段可以不用传值

  2)位置形参必须放到默认形参的前面

  3)默认形参的值在函数定义阶段就已经固定了,定义阶段之后的改动不会影响该值

  4)默认形参的值通常应该是不可变类型

def func(x, y, z=100):
    print(x, y, z)

func(10, 20)
func(10, 20, 200)

def add_hobby(name, x, hobbies=[]):
    hobbies.append(x)
    print("%s 的爱好有 %s" %(name, hobbies))

add_hobby("qiu", "read")
add_hobby("xi", "eat")
add_hobby("qiuxi", "play")

# 改进
def add_hobby(name, x, hobbies=None):
    if hobbies is None:
        hobbies = []
    hobbies.append(x)
    print("%s 的爱好有 %s" %(name, hobbies))

add_hobby("qiu", "read")
add_hobby("xi", "eat")
add_hobby("qiuxi", "play")

参数陷进 —— 默认参数是一个可变类型

6、可变长参数

定义:指的是在调用阶段,实参的个数是不固定的

实参无非两种方式(位置实参,关键字实参),对应的形参也必须有两种解决方案来分别接收溢出位置实参或关键字实参

其中:

  用 * 表示溢出的位置实参

  用 ** 表示溢出的关键字实参

1) 一个星号的用法

在形参前加一个星号:星号会将溢出的位置实参存成元组的形式,然后赋值给星号后的形参名

在实参前加一个星号:但凡碰到实参中带一个星号的,先将实参打散成位置实参再与形参做对应

2)两个星号的用法

在形参前加两个星号:星号会将溢出的关键字实参存成字典的形式,然后赋值给星号后的形参名

在实参前加两个星号:但凡碰到实参中带两个星号的,先将实参打散成关键字实参再与形参做对应

原文地址:https://www.cnblogs.com/qiuxirufeng/p/9690290.html

时间: 2024-10-17 15:29:03

Learing-Python【10】:函数初识的相关文章

Python之函数初识

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数的基本语法: def 函数名(参数列表): 函数体 实例: #定义函数 def get_len(): lis = [1, 2, 3, 4, 5, 6] count = 0 for i in lis: count += 1 get_len() #函数名()-->执行此函数 注:函数是以功能为导向,函数内部尽量不要有print()函数 原文地址:https://www.cnblogs.com/lioushell/p/839270

Python基础-函数初识

一 函数的作用 1. 解决代码复用的问题 2. 提高代码的可维护性 3. 程序的组织结构更清晰,提高程序的可读性 1.1 函数的定义与调用 # 定义函数: def my_len(): '''计算s1的长度''' s1 = 'fdsgdfkjlgdfgrewioj' count = 0 for i in s1: count += 1 # print(count) my_len() # 函数名+() 执行函数 #函数的调用 定义: def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个':

python之集合、深浅copy、文件操作、函数初识

本节内容:集合.深浅copy.文件操作.函数初识 1.小知识点补充 2.编码二 3.集合 4.深浅copy 5.文件操作 6.函数的初识 1.小知识点补充                                                                                           1.1 小数据池====str.int 小数据池存在的意义就是节省内存 节省内存,位多个变量开辟一个共享空间(str和int) int:-5--256 int===

Python基础之 函数初识

1. 文件操作: 读操作: 格式:f = open("文件路径",mode = "r",encoding = "utf-8") f : 代表文件句柄 文件路径: 绝对路径:从根文件夹下查找 相对路径: 相对于某个文件进行查找 f = open("D:\Python_s25\day08\小姐姐电话号",mode="r",encoding="utf-8")# print(f.read())

Python函数初识

一.函数初识 现在有这么个情况:python中的len方法不让用了,你怎么办? 来测试一下'hello word' 的长度: for循环来实现: s1 = "hello world" length = 0 for i in s1: length = length+1 print(length) 但是,需要求另一个字符串的长度,就需要再写一遍: 这样确实可以实现len方法的效果,但是总感觉不是那么完美?为什么呢? 首先,之前只要我们执行len方法就可以直接拿到一个字符串的长度了,现在为了

Python 基础之函数初识与函数参数

一:函数初识 定义:满足某一个方法 满足某一个功能#(1)功能(包裹一部分代码 实现某一个功能 达成某一个目的)#(2)可以反复调用,提高代码的复用性,提高开发效率,便于维护管理#(3)函数的基本格式:#定义一个函数def 函数名():    code1    code2 #调用函数函数名() #例子:(最简单的一个函数)#函数的定义处 def func():    print("我是一个大帅哥") #函数的调用处func() #(4) 函数的命名规则字母数字下划线  首字符不能为数字

函数初识【第十一篇】

函数初识 函数是一组操作的集合,并赋予它一个名字.你已经使用过许多 Python 内置的函数,例如 string.title() 和 list.sort() .我们也可以定义自己的函数,它们可以"教导" Python 作一些新的行为 定义一个函数 使用关键字 def 告诉 Python 你将要定义一个函数. 给你的函数起一个名字.函数名应当能表明函数是干什么的. 给函数需要的数据起名称. ? 它们是变量名,而且只在函数里用. ? 这些名称被称为函数的参数(arguments) 确保函数

01----python入门----python安装与初识

----python入门----python安装与初识 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 这是一个很好的开头!但是,没有什么卵用!我们直接开始正题. 一.语言背景 Python的创始人为荷兰人吉多·范罗苏姆 .1989年圣诞节期间,在阿姆斯特丹,他为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承.之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代

关于python的函数的*和**参数:

1.将足够的参数解包以后传递给函数:>def f(p1, p2, p3, p4):>     print p1+p2+p3+p4>>li = [1, 2, 3, 4]>f(*li)10>>tu = (1, 2, 3, 4)>f(*tu)10>>di = {'p1':1, 'p2':2, 'p3':3, 'p4':4}>f(**di)>10 2.使用封包的方法访问多余的参数>>> def funct(*para, **

python之函数用法__setattr__

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法__setattr__ #http://www.cnblogs.com/hongfei/p/3858256.html #用__setattr__函数重构方法 class Fruit(): def __init__(self,color,price): self.__color = color self.__price = price def __setattr__(self,name