一、函数介绍

1.为什么要有函数?

  没有函数的代码组织结构不清晰,可读性差。

  代码冗余

  管理维护难度大,扩展性

2.什么是函数?

具备某一个功能的工具就是程序中的函数。

事先准备工具的过程就是:函数的定义。

拿着工具来使用就是函数的调用。

所有函数都是:先定义后调用!

二、函数的定义

1.语法  def  msg()

def是定义函数的关键字  msg就是是函数名,函数名是用来调用函数的,命名必须能反映函数的功能。()是用来放参数的

def msg(count,liu):
print(count*liu) #函数的功能            #在中间还可以加文档描述,来增强函数的可读性。
def good(good_p):                    
print(good_p)
msg(20,'=')       #函数的代码块          
good('hello word')   #函数的代码块
msg(20,'*')

***以上输出:

====================
hello word
********************

2.定义函数的三种类型

(1)有参函数:参数是函数体代码用来接收外部传入数据的。

inp_name='ly'
inp_paws=123 def interactive():
name=input('请输入你的用户名:')
paws=input('请输入你的密码:')
return name,paws def auth(name,paws):
if inp_name == name and inp_paws == paws:
print('登录成功') res=interactive()
x=res[0]
y=res[1]
print(x)
print(y)

***以上输出:

请输入你的用户名:ly
请输入你的密码:123
ly
123

(2)无参函数:当函数代码体逻辑不需要函数的调用者参入值的情况下,定义时无参,意味着调用者用时也无需传入数据。

def line(x,y):
if x > y:
print(x)
else:
print(y) line(10,50) ***以上输出:
50
name='liuyuan'
paws='123'
def interactive():
inp_name=input('输入你的名字:')
inp_paws=input('输入你的密码:')
if inp_name == name and inp_paws == paws:
print('输入正确')
else:
print('错误') interactive() ##定义时无参,意味着调用时也无需传入参数。 ***以上输出

输入你的名字:liuyuan
输入你的密码:123
输入正确

(3)空函数:函数体为pass.

def auth():
"""
这是一个认证功能
:return:
"""
pass

def put():
"""
上传功能
:return:
"""
pass

def get():
"""
下在功能
:return:
"""
pass

def ls():
"""
list contents
:return:
"""
pass

三、调用函数

定义:函数的使用必须先定义收调用的原则。

2.调用函数:

调用函数必须先定义,再调用。

函数名加()就是在调用函数

# print(print_sym)
# print_sym('#',30)
# print_msg('hello egon')
# print_sym('#',30)

注意:没事先定义而直接调用,就相当于引用了一个存在的变量名。

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

(2)调用阶段:根据函数找到函数的内存地址,然后执行函数体代码


# 定义阶段:
def lol():
print('你好')
blo()
def blo():
print('lasdll') #调用阶段
lol() 四、返回值 定义:当函数体代码运行结束后,需要有一个返回的结果给调用者。 返回值有三种形式: 1.没有reture,返回None
def ppp():
pass ren=ppp()
print(ren) ***以上输出
None
2.retur后跟一个值。
def ppp():
return 5 ren=ppp()
print(ren)
***以上输出
5 3.ruture可以以逗号分隔,返回多个值,会返回一个元组给调用者。
def ppp():
return 1,5,6,9,[5,6,9,],{9:6}
ren=ppp()
print(ren) ***以上输出
(1, 5, 6, 9, [5, 6, 9], {9: 6}) 注意:
1.retur返回的值,没有类型限制。
2.函数内可以写多个return,但执行一次,函数会立刻结束,并把return后的值作为本次调用的返回值。
def ppp():
print('你好')
return 1
print('你好2')
return 2
print('你好3')
return 3
ren=ppp()
print(ren) ***以上输出

你好
1

												

python 函数基础 定义的更多相关文章

  1. Python函数的定义、参数传入与函数的调用

    作为计算机代码的一种抽象方式,函数在Python中扮演了极为重要的角色.今天给大家介绍Python函数的定义.参数的传入以及调用方式.其中函数参数的传入方式为本节重点内容.Python函数的参数形式包 ...

  2. 《转》Python学习(17)-python函数基础部分

    http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...

  3. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  4. 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)

    详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类   Python中函数参数定义及调用函数时传参 ...

  5. 11、Python函数基础(定义函数、函数参数、匿名函数)

    函数先定义函数,后调用 一.定义函数: 1.简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函 ...

  6. python函数基础(函数的定义和调用)

    函数的定义 python定义函数使用def关键字 return[表达式]语句用于退出函数,选择性的向调用方返回一个表达式,不带参数值的return语句返回none def 函数名(参数列表): 函数体 ...

  7. python函数基础:调用内置函数&定义函数

    调用内置函数 有很多内置函数,在使用中需要积累.这里只举两个例子: 分别调用abs和数据类型转换,注意当入参类型错误时候会报错 ''' print('abs(-100)') abs(-100) pri ...

  8. python函数基础

    一.基础 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 #如果函数执行完毕也没有return语句时,自动return None. 空函数 如果想定义一个什么事也不做的空函数,可 ...

  9. python 函数基础介绍

    函数是对程序逻辑进行结构化或过程化的一种编程方法.能将整块代码巧妙地隔离成易于管理的小块,把重复代码放在函数中而不是进行大量的拷贝. 一.函数创建 def 函数创建格式如下: def function ...

随机推荐

  1. NetBeans部署项目(Extjs)报错(一)

    NetBeans部署项目(Extjs)报错(一) 1.用NetBeans将项目部署到Tomcat中,报错. 具体如下: ant -f D:\\NetBeans\\workspace\\Foundati ...

  2. HighCharts中的Ajax请求的2D折线图

    HighCharts中的Ajax请求的2D折线图 设计源码: <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  3. Caused by: java.lang.ClassNotFoundException: flex.messaging.io.BeanProxy

    1.错误描述 2014-7-13 1:34:46 org.apache.catalina.startup.HostConfig undeploy 信息: Undeploying context [/b ...

  4. The Eclipse executable launcher was unable to locate its companion launcher jar的解决方法

    大家都知道eclipse是免安装的,基本上解压就能用,但是笔者在解压后打开eclipse时遇到一个奇葩的问题,如题目所示. 在网上搜了半天,基本上都说的是:The Eclipse executable ...

  5. CF374 Journey

    技不如人甘拜下风 这题网上说法有 建反向边和先拓扑 都是为了每个点之前将其前驱都遍历到 #include<bits/stdc++.h> using namespace std; typed ...

  6. CF AIM Tech Round 3 (Div. 2) D - Recover the String

    模拟 首先可以求出 0 和 1 的个数 之后按照01 10 的个数贪心安排 细节太多 错的都要哭了 #include<bits/stdc++.h> using namespace std; ...

  7. ASP.NET CORE的Code Fist后Models更改了怎么办?

    上次我写到MVC的code fist后,自动生成数据库并自动生成web页面了 点击打开链接 那么随着项目需求的逐步明确,model变化了怎么办呢?其实和上次一样的,有两条关键的语句要记住 Add-Mi ...

  8. Mybatis入门看这一篇就够了

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  9. 回滚 - 每天5分钟玩转 Docker 容器技术(141)

    kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision. 默认配置下,Kubernet ...

  10. Django Middleware简介

    1      前言 Django使用非常熟练了,各种API接口不在话下,全都搞定.为方便定位问题在每个API接口的的开始和返回的地方都加上了log打印,记录入参和返回值. 但是这样有一个问题,需要每个 ...