Python基础知识-09-函数

python其他知识目录

1、函数介绍

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()

。但你也可以自己创建函数,这被叫做用户自定义函数。

2、函数使用优缺点:

公司随随便便几百上千行。可读性,重用性,函数,面向过程编程
优点:
缺点:
面向过程,可以将可重复性的代码做成一个函数,用参数代替变化的量,实现具有重复性操作的功能。

当事物需要做这个操作的时候,调用函数即可实现功能。#自己理解
#发邮件:设置里面开启pop3,smtp服务器 ,往smtp服务器发邮件
比如发邮件,很多对象都使用的一个动作,写成函数,调用函数。避免代码冗余。
什么情况写函数,就是为了能重复使用某个功能,就写成函数,一个功能一个函数。
函数式编程是做什么的?避免重复性代码。代码拆分,增强可移植性,可读性

本质:将N行代码拿到别处并给他起个名字,以后通过名字就可以找到这段代码并执行。
场景:代码重复执行。
代码量特别多超过一屏,可以选择通过函数进行代码的分割。

3、函数定义:

你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None


语法:
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
函数体

默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

函数执行:
def xiaoma():
print("魔降风云变")
xiaoma()
---------结果:
魔降风云变

4、函数调用

定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执
行。
函数不调用,内部代码不执行。调用后用不用变量接收返回值,函数都会执行。

def xiaoma():
    print("魔降风云变")
xiaoma()
---------结果:
魔降风云变

def xiaoma():
    print("魔降风云变")
a=xiaoma()
----------结果:
魔降风云变

5、函数传参

不同的对象做相同的操作,可以定义函数。如果每个对象还有些区别,那么有区别的地方使用函数传参

定义带参数的函数的时候
函数式编程。通过传参,返回不同的值,返回不同的参数。同一个功能不同的地方就使用传参
形式参数(形参):形参就是形式上的参数,可以理解为数学的X,没有实际的值,通过别人赋值后才有

意义。相当于变量。
实际参数(实参):实参就是实际意义上的参数,是一个实际存在的参数,可以是字符串或是数字等

函数里面使用字符串格式化
函数可以定死了,也可以传递变量。写函数不一定需要参数。如果有变的,使用参数,没有变的就定死

了就可以,看实际情况了。

5.1没有函数传参
案例1:
使用函数只计算某一个列表内元素的和:
def list_sum():
    li = [1, 2, 3]
    sum=0
    for i in li:
        sum+=i
    print(sum)
list_sum()
-----------结果
6

5.2一个函数传参:
案例2:
使用函数计算指定列表内元素的和:
def list_sum(li):
    sum=0
    for i in li:
        sum+=i
    print(sum)
info=[1,2,3]
list_sum(info)
-------------结果:
6

报错问题1:
报错:函数没有形参,调用函数时带着参数的报错:
def list_sum():
    sum=0
    for i in li:
        sum+=i
    print(sum)
info=[1,2,3]
list_sum(info)      #调用时,可以直接做参数,也可以用变量做实参
-------------------结果:
list_sum(info)
TypeError: list_sum() takes 0 positional arguments but 1 was given

5.3多个函数传参:
def xiaoma(arg1,arg2):
    print(arg1+arg2)
xiaoma(2,3)
-----------结果:
5

报错问题2:传参传少了
def xiaoma(arg1,arg2):
    print(arg1+arg2)
xiaoma(2)
-----------结果:
    xiaoma(2)
TypeError: xiaoma() missing 1 required positional argument: ‘arg2‘

报错问题3:传参传多了
def xiaoma(arg1,arg2):
    print(arg1+arg2)
xiaoma(2,3,4)
------------结果:
  xiaoma(2,3,4)
TypeError: xiaoma() takes 2 positional arguments but 3 were given

函数:增加代码重用性,可读性。
比如去楼下拿快递,是个函数,告诉他拿**的快递,他就拿到**的快递

6、函数返回值return

1) print 和 return 的区别,print 仅仅是打印在控制台,而 return 则是将 return 后面的部分作

为返回值作为函数的输出,可以用变量接走,继续使用该返回值做其它事。
2)函数需要先定义后调用,函数体中 return 语句的结果就是返回值。如果一个函数没有 reutrn 语句

,其实它有一个隐含的 return 语句,返回值是 None,类型也是 ‘NoneType‘。
3)return作用:结束函数调用、返回值
4)终止函数的方法:满足某个条件 return False
成功与不成功返回一个结果。如果不需要打印,用户只需要某个结果,那么让函数返回一个值,让用户

根据返回值做对应的操作。return实现函数返回值。
调用函数,并用变量接收函数的返回值。

6.1使用变量接收返回值:

def xiaoma():
    a=1
    return a
mcw=xiaoma()
print(mcw)
------------结果
1

6.2用户根据函数返回值做别的操作。(根据返回值进行通信)

#当小明吃完饭,给我返回1。小明吃完后小马过河找他玩

def xiaoming(arg):
    a=0
    if arg=="吃完":
        a=1
    return a
status=xiaoming("吃完")
if status==1:
    print("小马过河去找小明玩")
--------------结果:
小马过河去找小明玩

6.3返回多个值的方法:

如果程序需要有多个返回值,则既可将多个值包装成列表之后返回,也可直接返回多个值。如果 Python
函数直接返回多个值,Python 会自动将多个返回值封装成元组。

def list_sum(li):
    sum=0
    e_str=""
    for i in li:
        e_str+=str(i)
        sum+=i
    return sum,e_str
li=[1,2,3]
mcw=list_sum(li)  # 获取list_sum函数返回的多个值,多个返回值被封装成元组
v1,v2=list_sum(li)               #此外,也可使用 Python 提供的序列解包功能,直接使用多个变量接收函数返回的多个值。
print(mcw)
print(v1,v2)
---------------结果:
(6, ‘123‘)
6 123

6.4return终止循环

def mcw():       #没有return的时候,返回值默认是None,循环正常结束。
    for i in range(1,4):
        print(i)
m=mcw()
print(m)
-------------结果:
1
2
3
None

def mcw():    #有return的时候,返回指定的值,并终止函数向后继续执行了。
    for i in range(1,4):
        if i==3:
            return "终止函数了"
        print(i)
m=mcw()
print(m)
-------------结果:
1
2
终止函数了

7、上述总结

没传参的函数,有传参的函数,没返回值的函数,有返回值的函数。既有传参又有返回值的函数。需要
什么样的根据具体需求。
#自我总结

参考链接:
http://www.runoob.com/python3/python3-function.html
https://www.cnblogs.com/i-honey/p/7679897.html
http://c.biancheng.net/view/2248.html

参考续集

http://c.biancheng.net/view/2247.html

原文地址:https://www.cnblogs.com/machangwei-8/p/10678630.html

时间: 2024-10-29 16:17:12

Python基础知识-09-函数的相关文章

Python基础知识之函数、模块

1.Python模块. Python一个.py后缀的文件,称为模块.Python模块可以包含变量.函数.类,同时类中又可以定义变量和函数. 2.Python模块导入. (1) Python模块全部导入方式:from 模块名 import * (2) Python模块按需导入方式:from 模块名 import 函数名/类名 3.函数.常用函数如下. str(o):将数字转化为字符串函数, int(o):将字符串转化为数字函数. format():字符串格式化函数. replace:字符串替换函数

深入理解python(四)python基础知识之函数

函数部分 函数部分大概想分成两个部分来讲,第一部分是关于对函数参数的介绍,第二部分是局部变量全局变量和内置变量也就是变量作用域的LGB原则 函数的参数 1.关于形参和实参的问题 第一点要注意的是python中形参和实参的问题. 以不可变对象为参数,不会修改不可变对象的值(形参和实参的原因) 但对于可变对象(例如列表字典等),会在原地修改对象的值 例: >>> def immutableob(a):#在函数中修改不可变对象的值 ... a+=1 >>> b=1 >&

python基础知识(函数2)

返回值 return return[value]  多个值用,逗号分开,没有返回值,会返回none值,函数不给指定返回值也会返回none值 def functionname(p1,p2,p3): return value1,value2.... result = functionname(value1,value2,value3) 变量的作用域是指代码能够访问该变量的区域,如果超出该区域,在访问时就会出现错误. 局部变量 在函数内部定义只在函数内部有效. 全局变量 在函数体内和函数体外都可以使用

python 基础知识(一)

                                       python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承.之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者.Python是从ABC发展起来,主要受到了Modula-3(另一种相当

python基础知识总结

python有段时间没用了,实在是惭愧啊,屌丝今天决定开始对python基础知识重新进行总结,以慰自心. 一.python概念 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. python定位"优雅","简单","明确" 二.python安装 略 三.python基础 1.数据类型 整数: Python可以处理任意大小的整数,当然包括负整数,在程序

python基础学习09(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #什么是函数 #就是引用,创建,使用 #例子 def foo(): print '233' foo() #返回与函数类型 def foo1():#是一个过程 print 'hello world!' foo1() foo

Python基础知识两部曲:二

如果没有看基础部分第一章,请前往Python基础知识两部曲:一 8.函数 1.定义函数: 使用关键字def来告诉python你要定义一个函数 接着指出函数名:如下面函数名是--greet_user ()是必须带上的,这里可以可以传递一些参数,也可以不传 以:结尾,且与后面所有的缩进构成了函数体 调用函数直接写上函数名,如果有参数记得带上参数 1. 无参数的函数: def greet_user(): """显示简单的函数体""" print(&qu

Python基础知识梳理 - 第02部分

本文是Python基础知识的第二篇, 主要是对内置对象类型的介绍, 涉及的类型如下表. 数字类型 在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类, 如整数和浮点数, 复数等. Python还提供了若干处理数字对象的工具, 如内置数学函数pow, abs等, 标准库math, random等. 看下数字的简单使用. In [15]: 123 + 234 Out[15]: 357 In [16]: 1.5 * 4 Out[16]: 6.0 In [32]: pow(2,

Python基础知识目录

<table><tr><td bgcolor=PowderBlue><font face="" color=green size=6>Python基础知识目录</font></td></tr></table> <table><tr><td bgcolor=pink><font face="微软雅黑" size = 4 color

python基础知识部分练习大全

python基础知识部分练习大全   1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py   #必须在首行有 #!/usr/bin/env python3 指定执行语言 2.简述位.字节的关系 答:一个字节(byte)=8位(bit)  位为最小的单位 3.简述 ascii.unicode.utf-8.gbk 的关系 ascii:只能表示256个符号 unicode:万国码,各国都有 需要有2位来表示 utf-8