今天让我们来初步认识一个在python中非常重要的组成部分:函数

  首先,让我们来幻想这样一个场景:

  比如说我们现在想要通过社交软件约一个妹子,步骤都有什么?

print('打开手机 ')
print('打开陌陌')
print('找一个漂亮的小姐姐')
print('吃饭,唱歌,看电影,然后...')
结果:

  打开手机

  打开陌陌

  找一个漂亮的小姐姐

  吃饭,唱歌,看电影,然后 ...

  是这样一个步骤吧,但是约一次不给力,还想再约一次,是不是还得重复上面的过程,第三次...是不是很麻烦,如果我们不想这样麻烦,很简单:

while 1:
print('打开手机 ')
print('打开陌陌')
print('找一个漂亮的小姐姐')
print('吃饭,唱歌,看电影,然后...')

  之前我们说的while循环就能帮我们实现,可是现在问题又来了,这是一个死循环,会不停的约,根本停不下来,是不是我们的身体会受不了啊,况且我们也不能不停的约啊,我们还要上班,还有其他事情要干,其实用我们今天的知识会非常简单.

一.什么是函数

  我们知道数学里的函数是一种计算方式,让我们的运算变得方便,python中的函数其实是有同样的作用,可以让我们的编程更方便,编码更简洁,解决一些编码冗余的问题.说了半天我们还没有给函数一个准确的定义.

  定义:对功能或者动作的封装.那么函数怎么用呢?

二.函数的语法和定义

  语法:

  def 函数名():

    函数体

  调用:

    函数名()

def--->define 函数的关键字 ,定义的意思

  那么我们再看看上面的情况要怎么解决.首先我们要计划一下,要怎么约,然后需要的时候我们约一下,可以使用函数来定义一个动作:

def yue():
  #描述你的动作
print('打开手机 ')
print('打开陌陌')
print('找一个漂亮的小姐姐')
print('吃饭,唱歌,看电影,然后...')
yue() #调用函数,不调用不执行函数体
print('上班')
print('上班')
print('上班')
yue() #再调用

  这样我们就可以在需要的时候再约了

三.函数的返回值

  return : 返回

def yue():
print('打开手机 ')
print('打开陌陌')
print('找一个漂亮的小姐姐')
print('吃饭,唱歌,看电影,然后...')
return '小姐姐' #只返回一个结果:小姐姐 下面的都不会执行
return '大妈'
return '流浪汉'
ret = yue()
print(ret) #小姐姐

  return后面也可以返回多个值

def yue():
print('打开手机 ')
print('打开陌陌')
print('找一个漂亮的小姐姐')
print('吃饭,唱歌,看电影,然后...')
return '小姐姐','大妈','流浪汉'#返回多个值,以元组的形式
ret = yue()
print(ret) #('小姐姐','大妈','流浪汉')

  函数的返回值:

    1.可以有,也可以没有;

    2.函数中没有return,不返回任何结果,即使接收也是None;

    3.return后面如果是一个值,返回一个值;

    4.如果是多个值,多个值会以元组的形式返回;

    5.程序 执行到return,函数直接结束,下面的不会执行;

def yue():
  #描述你的动作
print('打开手机 ')
print('打开陌陌')
print('找一个漂亮的小姐姐')
print('吃饭,唱歌,看电影,然后...')
ret = yue()
print(ret) #None
def yue():
  #描述你的动作
print('打开手机 ')
print('打开陌陌')
print('找一个漂亮的小姐姐')
return None #返回的是None,后面的就不再执行了
print('吃饭,唱歌,看电影,然后...')
ret = yue()
print(ret)

四.函数的参数(部分)

  函数里的有两个小括号 ,除了我们之前知道的调用的功能之外,它还可以传递一些信息

def yue(app):
print('打开手机')
print('打开%s'%app)
print('找一个心仪的小姐姐')
print('吃饭,唱歌,看电影,然后...')
yue('微信')
yue('陌陌')
yue('探探')
根据你指定的APP去约

  在括号里写的叫参数,在函数声明的位置写的参数叫形参,在函数调用的位置写的叫实参,而把实参传递给形参的过程叫传参

  1.形参

    必须保证所有的形参都有值,调用的时候如果不传值的话会报错,不够也会报错

    1.位置参数 : 按照位置声明的变量

    2.默认值参数

    3.当默认值和位置参数同时存在的时候   规定 : 默认值必须写在后面

  2.实参

    1.位置参数     按照位置给形参传递信息

    2.关键字参数   按照形参的声明的变量名进行传递

    3.混合参数   位置+关键字(规定:位置在前,关键字在后)

记住:所有带等号的参数都放后面

def chi(zhushi,fushi,tang,tiandian):
print('主食:%s'%zhushi)
print('副食:%s'%fushi)
print('汤:%s'tang)
print('甜点:%s'%tiandian)
chi('大米','红烧肉','紫菜蛋花汤','蛋糕')
结果:
  主食:大米
  副食:红烧肉
  汤:紫菜蛋花汤
  甜点:蛋糕

  这是按照位置进行传参,实参跟形参一一对应,让我们来看一下关键字传参

def chi(zhushi,fushi,tang,tiandian):
print('主食:%s'%zhushi)
print('副食:%s'%fushi)
print('汤:%s'tang)
print('甜点:%s'%tiandian)
chi(zhushi='大米',fushi='红烧肉',tang='紫菜蛋花汤',tiandian='蛋糕')
结果:
主食:大米
副食:红烧肉
汤:紫菜蛋花汤
甜点 :蛋糕

  结果是一样的.上面都是正确的演示,下面来一种错误的演示

def chi(zhushi,fushi,tang,tiandian):
print('主食:%s'%zhushi)
print('副食:%s'%fushi)
print('汤:%s'%tang)
print('甜点:%s'%tiandian)
chi('大米','红烧肉',tang='紫菜蛋花汤','蛋糕')
结果:
SyntaxError: positional argument follows keyword argument
报错:位置参数在关键字参数 之后

  再看另一种情况,形参中的位置参数和默认值参数

例子:比如我们要统计班级里学生的情况

def regist(name,age,sex):
print('name:',name)
print('age:',age)
print('sex:',sex)
regist('张三',19,'男')
regist('李四',20,'男')
regist('王小丽',18,'女')

  这是位置参数,我们可以看到,男学生比较多,那么就可以这样操作了:

def regist(name,age,sex='男'):
print('name:',name)
print('age:',age)
print('sex:',sex)
regist('张三',19)
regist('李四',20)
regist('王小丽',18,'女')

  把性别直接默认为男,女同学就直接传 '女'就可以了,男的就可以不用输入了.

  今天简单的认识一下函数,明天还会接着今天没写完的写!

Python入门-初始函数的更多相关文章

  1. Python入门篇-函数、参数及参数解构

    Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...

  2. Python入门之 函数

    Python入门之 函数 1.初识函数 1.1 什么是函数? <1> 将某个功能封装到一个空间中就是一个函数 <2> 减少重复代码 1.2 定义函数 def -- python ...

  3. python入门15 函数

    函数的主要作用是实现代码复用 1 python内置函数 2 匿名函数lambda 3 自定义函数 def functionname(arg):... #coding:utf-8 #/usr/bin/p ...

  4. Python入门之函数的装饰器

    本章目录: 装饰器: 一.为什么要用装饰器 二.什么是装饰器 三.无参装饰器 四.装饰器语法糖 五.认证装饰器实现 六.叠加多个装饰器 七.带参装饰器 ======================== ...

  5. Python入门-初始面向对象

    之前我们代码基本上都是面向过程的,今天我们就来初始一下python中一个重要的内容:面向对象 一.面向对象和面向过程(重点理解) 1.面向过程: 一切以事物的流程为核心. 核心是"过程&qu ...

  6. python入门总结-函数

    函数形式: def functionname(paramlist): function body 局部变量不改变实参的值,如果需要改变,声明global.比如,global x 可以给函数默认值,注意 ...

  7. python入门之函数

    为什么要用函数 python的函数是由一个新的语句编写,即def ,def是可执行的语句--函数并不存在,知道python运行了def后才存在. 函数是通过赋值函数传递的,参数通过赋值传递给函数. d ...

  8. Python入门之函数的嵌套/名称空间/作用域/函数对象/闭包函数

    本篇目录: 一.函数嵌套 二.函数名称空间与作用域 三.函数对象 四.闭包函数 ============================================================ ...

  9. Python入门day04_函数与装饰器

    一.函数入门 什么是函数: # 函数:函数是一系列代码的集,用来完成特定功能的代码块,类似于工具,可以重复不但的去使用 为什么要有函数: # 优点:# 1. 避免代码的冗余 # 2. 让程序代码结构更 ...

随机推荐

  1. 串口通信n

    1.USART_Init(参数1,参数2) 串口配置步骤 1.串口时钟使能,GPIO使能 2.串口复位 3.端口模式设置GPIO_Init() 4.串口参数初始化USART_Init() 5,使能串口 ...

  2. 洛谷 P3204 [HNOI2010]公交线路

    题面 luogu 题解 矩阵快速幂\(+dp\) 其实也不是很难 先考虑朴素状压\(dp\) \(f[i][S]\) 表示最慢的车走到了\(i\),\([i, p+i-1]\)的覆盖情况 状态第一位一 ...

  3. ABP相关网站

    ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 系列文章 ...

  4. python创建目录并更改权限的代码

    如下代码段是关于python创建目录并更改权限的代码. import os os.mkdir("foo", 0666)

  5. 分分钟钟学会Python - 数据类型(int、bool、str)

    第三天学习内容 今日内容 1.整型(int) 2.布尔类型(bool) 3.字符串(str) 内容详细 1.整型 Python中的整型用int表示. 1.python2中: 在32位机器上,整数的位数 ...

  6. C#的datatable使用

    // 构造datatable DataTable dt = new DataTable("test_table"); dt.Columns.AddRange(new DataCol ...

  7. 批处理 进行svn代码拉取,vs编译,dotfuscator混淆

    Dotfuscator的使用:https://www.cnblogs.com/aitong/p/10684004.html 从拉取代码,编译到最后的混淆步骤很多.这时就可以使用批处理来进行自动化. 用 ...

  8. ASP.NET实现数据绑定

    一.数据绑定语法 数据绑定表达式包含在“<%#”和“%>”分隔符之内,并使用Eval方法和Bind方法.Eval方法用于定义单向(只读)绑定,Bind方法用于定义双向(可更新)绑定. 语法 ...

  9. Visual Studio 2013复制项目

    在当前解决方案下复制项目的步骤: 1. 在硬盘存放代码的目录下将整个文件拷贝一份,修改文件夹名字,改成新的项目名称, 然后修改 *.csproj文件,名字必须与新项目名一致. 2. 在解决方案上右键 ...

  10. php的stristr()函数,查找字符

    1.用法,要传2个参数 stristr(string,search):查找并返还匹配后,剩下的部分字符串 查找过程不区分大小写,要区分大小写用 strstr(string,search)少一个字母i ...