什么是函数

函数就是将许多冗余的代码进行整合统一调用的内存地址

函数怎么定义

def make():
    print('掏出手机')
    print('打开微信')
    print('摇一摇')
    print('聊一聊')
    print('走不走')
    print('走...jd')
make()
def 关键字 定义(申明) 一个函数

def make():
    # 函数体

注意: 定义后的函数不调用是不执行的

函数的调用:

函数名+() == 函数的调用
def make():
    print(1)
make()
def make():
    print(2)
make()

def make():
    print(2)

make()

先定义后调用

函数的执行过程

def make():
    print(1)
    print(2)
    print(3)
print(make)

函数的内存地址

make()

定义 -- 调用 -- 函数体的代码

函数的返回值

def make():
    print('掏出手机')
    print('打开陌陌')
    print('找个妹子')
    print('询问一番')
    print('盘她')
    return 1
    print('盘完了')

ret = make()
print(ret)
  1. 返回值单个就它本身,多个就是一个元组
    返回值写了return 没有写内容返回的就是None
  2. 没有写return 返回的也是None
  3. return下面的代码都不执行,并且还结束了这个函数
  4. 返回值返回给调用者
s = '盘她'
print(s*2)

def make():
    print(1)
    return 2*'盘她'
ret = make()
print(ret)

def make():
    print(1)
    print(2)
    print(3)
    return None

input(make())

函数名加小括号 不管在什么位置就是在调用函数

def make():
   print('掏出手机')
   print('打开微信')
   print('摇一摇')
   print('聊一聊')
   print('搞一搞')

make()
print('去医院看看')
make()
print('看看书')
make()
make()
make()

函数的参数

def make(char,addr,sex):  # 形参 char = '探探'
    print('掏出手机')
    print('打开%s'%char)
    print('找一个%s,%s'%(addr,sex))
    print('聊一聊')

make('探探','北京','萝莉') # 实参

将实参传递给形参的过程--传参

位置参数:

def make(char,addr,sex)
       make('探探','北京','萝莉')

def func(a,b):
   c =  a + b
   return c

print(func(10,20))

def func(a,b):
    if a>b:
        return a
    else:
        return b
print(func(9,9))

def func(a,b):
    # c = a if a>b else b
    # return c
    return a if a>b else b
print(func(10,9))
条件成立的结果
条件条件不成立的结果
c = a if a>b else b

def make(a,b,d=1,e=0):
    print(a,b,d)
make(1,2)

def user_info(name,age,sex='男'):
    print(name,age,sex)

user_info('粉哥哥',48,'不详')
while 1:
    input_list = input('name,age,sex').split(',')
    if len(input_list) > 2:
        name, age, sex = input_list
        user_info(name, age, sex)
    else:
        name, age= input_list
        user_info(name, age)
def func(a,b,c,d=1):  # 形参 (位置+默认)混合形参
    print(a,b,c,d)

func(1,2,3) # 位置参数
def func(a,b,c,d=1):  # 形参 (位置+默认)混合形参
    print(a,b,c,d)

func(1,2,3,d=3) # 实参 (位置+关键字)混合实参

def func(a,b,c,d):  # 形参 (位置+默认)混合形参
    print(a,d)

func(2,d=1) # 实参 (位置+关键字)混合实参
位置参数 > 关键字参数

def func():
   print(1)

if True:
    func()
func()

什么是函数:

将一些功能进行封装和复用

函数的定义:

def 关键字 函数名():
    函数体

def make():
    print(1)

函数的调用:

函数名+() # 调用函数的时候不再缩进内 必须顶行调用

函数的返回值:

  1. 没有return就默认返回None
  2. 写了return 没有写返回值 默认返回None
  3. 多个返回值的时候,返回的是一个元组
  4. 一个返回值的时候,返回的就是返回值本身
  5. return 下面的代码不执行,并且结束这个函数

函数的参数:

  • 形参 函数定义的时候
  • 位置参数 a,b 传参的时候一一对应从实参处接受
  • 默认参数 a=1 在定义的时候就设定好值了
  • 实参 函数调用的时候
  • 位置参数 1,2, 传参的时候一一对应给形参
  • 关键字参数 a=1 通过形参的名字指定传值
  • 混合:

  • 形参 def func(a,b,d,f=1):
    实参 func(1,2,3,f=2)
    传参 将实参传递给形参的过程
    参数级别 位置参数 > 关键字(默认)参数

    ###三元运算符:
  • 条件的成立的结果 条件 条件不成立的结果
  • c = a if a>b else b
  • 应用场景: 在不知道赋值的内容时可以使用
  • 一行进行判断

问题:

1.基础一些小的知识点 忘得快

2.你们练习的少

1. 练习时间少 全天都再讲 --- 作业 中午作业的答案

2. 没有标准的大纲 --- 发了大纲

2019-03-11-day009-函数定义的更多相关文章

  1. 2019.03.11 COGS2652 秘术(天文密葬法)(分数规划+长链剖分)

    传送门 题意:nnn个点的树,每个点两个值a,ba,ba,b,问长度为mmm的路径∑ai∑bi\frac{\sum a_i}{\sum b_i}∑bi​∑ai​​的最大值. 思路:一眼要01分数规划, ...

  2. 2019.03.11 bzoj4813: [Cqoi2017]小Q的棋盘(贪心)

    传送门 考虑最后所有走过的点构成的树,显然除了最长链走一遍以外每条轻链都走两遍. 于是求一波最长链搞一搞就完了. 注意几个小细节特判qwq 代码: #include<bits/stdc++.h& ...

  3. python预课03 三元表达式示例,函数定义示例,七段彩码管绘制示例

    三元表达式 s = '不下雨' if s == '下雨': print('带伞') if s == '不下雨': print('不带伞') #等效与以下语句 print('带伞' if s == '下 ...

  4. 2019年11个javascript机器学习库

    Credits: aijs.rocks 虽然python或r编程语言有一个相对容易的学习曲线,但是Web开发人员更喜欢在他们舒适的javascript区域内做事情.目前来看,node.js已经开始向每 ...

  5. Scala深入浅出实战经典-----002Scala函数定义、流程控制、异常处理入门实战

    002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 ...

  6. C++11—lambda函数

    [1]lambda表达式语法定义 lambda表达式的语法定义如下: [capture] (parameters) mutable ->return-type {statement}; (1) ...

  7. 函数定义从零开始学C++之从C到C++(一):const与#define、结构体对齐、函数重载name mangling、new/delete 等

    今天一直在学习函数定义之类的问题,下午正好有机会和大家共享一下. 一.bool 类型 逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假),存储字节数在不同编译系统中可能有所不同,VC+ ...

  8. linux shell自定义函数(定义、返回值、变量作用域)介绍

    http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell ...

  9. 教你看懂C++类库函数定义之三---_stdcall

    一切从一个C++ 类库头文件开始,现在在做一个C++的项目,期间用到一个开源的界面库DUILib(类似MFC),这个东西还不错能很容易的写出漂亮的界面,比如QQ的界面,可以去下载下来研究研究,地址:h ...

  10. 教你看懂C++类库函数定义之一---HRESULT 宏

    一切从一个C++ 类库头文件开始,现在在做一个C++的项目,期间用到一个开源的界面库DUILib(类似MFC),这个东西还不错能很容易的写出漂亮的界面,比如QQ的界面,可以去下载下来研究研究,地址:h ...

随机推荐

  1. python记录_day04 列表 元组

    今日主要内容: 列表 和 元组 列表 一.列表介绍 列表是一种能存储大量数据的数据结构,是能装对象的对象.由方括号 [] 括起来,能放任意类型的数据,数据之间用逗号隔开 列表存储数据是有顺序的 二.增 ...

  2. P4238 【模板】多项式求逆 ntt

    题意:求多项式的逆 题解:多项式最高次项叫度deg,假设我们对于多项式\(A(x)*B(x)\equiv 1\),已知A,求B 假设度为n-1,\(A(x)*B(x)\equiv 1(mod x^{\ ...

  3. const typedef 和指针的问题(这里必须初始化的才初始化了,不必须的则没有初始化)

    这里很容易搞混: tyepdef double dou;//这里是dou是double的别名 #include<iostream> using namespace std; int mai ...

  4. java的同步实现

    在java编程中,经常需要用到同步,而同步的实现使用最多的就是synchronized关键字了. synchronized关键字涉及到“锁”的概念,首先先了解一下相关锁的知识. java的内置锁:每个 ...

  5. UI基础二:下拉,F4,OP等

    常用的搜索帮助有SE11的SH,域,值列表,组件等...下面介绍一下经常用的: 一:下拉 dropdown是最经常用的,也是最简单的一种. 不管是查询条件,还是结果清单,还是明细界面,下拉都是一样的 ...

  6. NOIP2006能量项链

    题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定 ...

  7. iOS 如何优化项目

    原文 前言 在项目业务趋于稳定的时候,开发完迭代需求后,我们可能会无所适从,进入一段空白期,但是对于攻城狮来说闲暇不是件好事,所以我们可能总想学点什么,却又没有头绪.这个时候我们就可以考虑完善和优化我 ...

  8. Oracle RAC时间同步(NTP/CTSS)

    1.RAC 相关时间同步(time synchronization)Oracle Grid可用两种方式进行时间同步1)基于OS的NTP2)基于clusterware的CTSS(Cluster Time ...

  9. burpsuite只拦截特定网站数据包教程

    一.背景说明 在配置burpsuite代理截包时经常会遇到这样的情况: 浏览器经常自己发一些包(收集用户信息),干挠渗透测试人员对目标网站的检测: 如果是代理手机,那就是很多APP都时不时发一些包,干 ...

  10. Linux几种服务用处介绍

    rexec--Remote Execute,远程命令执行,允许远程机器在本机上远程执行命令,监听端口512. nfs--Network File System,网络文件系统,用于将本机文件夹共享到别的 ...