1.函数的定义

  def  func():

2.函数的调用

  func()

3.函数的返回值

  1. #1.没有返回值
  2. # (1)不写return
  3. # (2)只写return后面的代码不在继续执行,返回空,代表结束一个函数,跳到整个函数外面
  4. # break 只是跳出函数内的循环内容
  5. # (3)return None 结束 这个不常用
  6. # 2.返回一个值
  7. # (1) 可以返回任何数据类型
  8. # (2)只要返回了,就可以接收了
  9. # (3)如果一个程序有多个return 只返回一个
  10. # 3.返回多个值
  11. # 多个返回值用多个变量接收,有多少返回值,就用多少变量接收
  12. # 用一个变量接收,返回元组
  1. # def func():
  2. # l = ['金老板','二哥']
  3. # for i in l:
  4. # if i == '金老板':
  5. # return None
  6. # print('==========')
  7. # ret = func()
  8. # print(ret)
  9. #
  10. #
  11. #
  12. # def func():
  13. # #return [1,2,3,4]
  14. # return False
  15. # print(func())
  16. #
  17. # def func2():
  18. # return 1,2
  19. # print(func2())
  20. #
  21. # r1,r2 = func2()
  22. # print(r1,r2)

3.函数的参数

函数定义和调用的时候

  1. 位置参数,*args,默认参数,**kwargs
  1. 1.没有参数,定义和调用函数时,括号内都不写内容
    2.1个参数,传什么就是什么
    3.多个参数
    站在实参角度长
    位置参数
    按照关键字传
    位置传和关键字传可以混用,必须先按照位置传参,然后按照关键字
    ret = my_sum(a = 5,2)是不对的
    不能给同一个变量传多个值
    站在形参的角度上
    位置参数:必须传,且有几个参数传几个,多传和少传都报错,
    4.动态参数
    *args接收按照位置传参的值,组织成一个元组
    **args接收按照关键字传参的值,组织成一个字典
    可以接收任意多个参数
    *args 加*变成动态参数,参数名之前加*,习惯参数名用args
    按照关键字传不行
    如果有多个关键字参数需要调用,虚参用**kwargs
    5.顺序 必须先定义位置参数,然后定义args,最后定义位置参数
    参数名之前加**,习惯参数名kwargs
  1. # def my_sum(a,b):
  2. # res = a + b
  3. # return resd
  4. # ret = my_sum(1,2)
  5. # print(ret)
  6. # ret = my_sum( 3,b = 6)
  7. # print(ret)
  8. # def classmate(name,sex = '男'): #默认参数,如果不传就用默认参数,如果传了,就传递传的值+
  9. # #只有调用函数的时候
  10. # #按照位置传: 直接写参数的值
  11. # #按照关键字: 关键字 = 值
  12. # #定义函数的时候:
  13. # #位置参数:直接定义参数
  14. # #默认参数:关键字参数: 参数名 = ’默认值'-0
  15. # #定义函数的时候,必须先定义位置参数,后定义默认参数
  16. # print('{0}同学是{1},我爱{0}'.format(name,sex))
  17. # classmate('二哥')
  18. # classmate('苍','女')
  19.  
  20. # *args 动态参数
  21. def sum(*args):
  22. n = 0
  23. for i in args:
  24. n += i
  25. print(n)
  26. sum(1,2)
  27. sum(1,2,3)
  28. sum(1,2,3,4)
  29.  
  30. #########
  31. def func(**kwargs):
  32. print(kwargs)
  33.  
  34. func(a = 1,b = 2,c = 4)
  35.  
  36. def func(*args,default = 2,**kwargs): #先位置参数,后关键字参数,即args必须在kwargs之前
  37. print(args,kwargs)
  38. func(1,2,3,4,5,default = 1, va = 'asdkfj;als',b = 'dsfjl')

  

  1. 动态参数的另外一种传参方式
  1. def func(*args): #站在形参的角度上,给变量加上*,就是组合所有传来的值
  2. print(args)
  3. func(1,2,3,4,5)
  4. l = [1,2,3,4,5]
  5. func(*l) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散
  6.  
  7. def func(**kwargs):
  8. print(kwargs)
  9. func(a = 1,b = 2)
  10. d = {'a' : 1,'b' : 2}
  11. func(**d)
  1. 函数的注释
  1. def func():
  2. '''
  3. 这个函数实现了什么功能
  4. 参数1:
  5. 参数2:
  6. :return:是字符串或者列表的长度
  7. '''
  8.  
  9. #默认参数的陷阱问题

python学习9 函数的基础知识的更多相关文章

  1. python学习(一) 基础知识

    开始学习<Python基础教程> 1.2 交互式解释器 按照书上的例子敲了个最简单的print函数,居然报错: >>> print "fsdfs"Sy ...

  2. python学习第一天 计算机基础知识

    目录 什么是编程语言 什么是编程? 为什么要编程? 计算机5大组成分别有什么作用? qq启动的流程? 建议相关学习 课外 什么是编程语言 什么是编程语言? python和中文.英语一样,都是一门语言, ...

  3. Python学习二:词典基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

  4. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  5. Python专题三字符串的基础知识

    Python专题三字符串的基础知识 在Python中最重要的数据类型包括字符串.列表.元组和字典等.该篇主要讲述Python的字符串基础知识. 一.字符串基础 字符串指一有序的字符序列集合,用单引号. ...

  6. python爬虫之Beautiful Soup基础知识+实例

    python爬虫之Beautiful Soup基础知识 Beautiful Soup是一个可以从HTML或XML文件中提取数据的python库.它能通过你喜欢的转换器实现惯用的文档导航,查找,修改文档 ...

  7. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  8. Python学习一:序列基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7858473.html 邮箱:moyi@moyib ...

  9. python学习8—函数之高阶函数与内置函数

    python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...

随机推荐

  1. vagrant + virtualbox安装centos环境+docker安装

    1. 下载vagrant 并安装,安装完成后,输入vagrant回车查看是否安装成功 2. 下载virtualbox.box并安装,安装完成后. 3. 创建虚拟机文件夹,例如.F:/vmimg/fir ...

  2. 记一次 Billu_b0x渗透

    目录: 0x01 寻找ip 1.这边我们是使用的nmap来寻找我们的靶机IP地址,开始Ip是1,结束是254,153是我kali的ip,所以158就是我们的靶机的ip地址了. 2. 查看端口服务 这边 ...

  3. 1. mac 手动安装nodejs搭建vue环境

    为什么选择手动安装nodejs呢? 因为使用mac自动安装还要更新homebrew,还要安装xcode tool, 太费劲了,不如手动安装, 卸载起来也方便 再一个, 我是后台开发者, 对前端页面, ...

  4. MDN All In One

    MDN All In One https://github.com/mdn/ https://wiki.mozilla.org/MDN MDN 要凉了 https://developer.mozill ...

  5. 你不知道的 JS (系列丛书) - 第二版

    你不知道的 JS (系列丛书) - 第二版 You Don't Know JS (book series) - 2nd Edition https://github.com/learning-js-b ...

  6. Vue 组件之间通信 All in One

    Vue 组件之间通信 All in One 组件间通信 1. 父子组件之间通信 https://stackblitz.com/edit/vue-parent-child-commutation?fil ...

  7. js type automatic conversion

    js type automatic conversion String & Number `255` < 16; false `15` < 16; true `25` < 1 ...

  8. WiFi & QR Code

    WiFi & QR Code https://github.com/bndw/wifi-card https://wifi.dev.bdw.to/ 扫码登录 WIFI:T:WPA;S:free ...

  9. CSS3 Animation & linear-gradient & css3 var & @keyframes

    CSS3 Animation & linear-gradient & css3 var & @keyframes https://www.zhangxinxu.com/word ...

  10. Flutter: random color

    import 'dart:math' as math; import 'package:flutter/material.dart'; void main() => runApp(App()); ...