1.初始函数

这样确实可以实现len方法的效果,但是总感觉不是那么完美?为什么呢?

首先,之前只要我们执行len方法就可以直接拿到一个字符串的长度了,现在为了实现相同的功能我们把相同的代码写了好多遍 —— 代码冗余

其次,之前我们只写两句话读起来也很简单,一看就知道这两句代码是在计算长度,但是刚刚的代码却不那么容易读懂 —— 可读性差

len()    #字符串的长度
s = 'hello word'  #计算'hello word'的长度
i = 0
for k in s:           #使用for循环来计算'hello word'的长度i += 1
print(i)print(len(s))   #字符串的长度

2.函数的定义与调用

s1 = 'sole'
def my_len():    #函数的定义def   my_len()是一种习惯性写法i = 0for k in s:i += 1print(i)            #没有返回长度,只是单纯的打印
my_len()                     #函数定义了之后,可以在任何需要它的地方调用

def  :   关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。

   def 是固定的,不能变。

   空格 为了将def关键字和函数名分开。

   函数名:函数名类似于变量,只能包含字符串、下划线和数字且不能以数字开头。

   括号:是必须加的。

注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。

调用:就是 函数名() 要记得加上括号。

3.函数的返回值

s1 = 'sole'
def my_len():i = 0for k in s1:i += 1return i                    #函数的返回值
length = my_len()
print(length)
len()                                #内置函数

1.不能变,只能计算s1字符串的长度
2.只是输出了结果

返回值分为三种情况

返回值的三种情况:

没有返回值 默认返回None

不写return:结束一个函数

def  func():l = ['aaaa','sole']for i in l:print(i)

只写return

def  func():l = ['aaaa','sole']for i in l:print(i)return

遇到一个return后面就不执行,一旦遇到return,结束整个函数。

return None:和上面的两种情况一样,我们一般不这样写。

返回一个值       可以返回任何数据类型,只要返回了就可以接收到。

ef func():return[1,2,3,4]return 1 #如果在一个程序中有多个return,只执行第一个
print(func())

返回多个值

a,b,c = (1,2,3)
a,b,c = ['a','b','c']
a,b = {'k':'v','k1':'v1'}
def func()return 1,2
r1,r2 = func()     #多个返回值用多个变量接受,有多少返回值就用多少变量接收。
print(r1,r2)            #     可以用一个变量接受,得到的是元祖

4.函数的参数

没有参数

  定义函数和调用函数时括号里都不写内容。

有一个参数

  传什么就是什么。

有多个参数

  位置参数站在实参的角度上:按照位置传参按照关键字传参混着用可以,但是必须先按照位置传参在按照关键字传参不能给同一个变量传多个值。

def my_len(s)#自定义函数只需要0个参数,接受参数,形式参数,形参
ret = my_len(s)  #传递参数:传参,实际参数,实参
def my_sum(a,b):   #  实参res = a+b   #result(结果)return res
my_sum(1,2)  my_sum(b=2,a=1)      #形参
print(ret)  站在形参的角度上:

位置参数:必须传,且有几个参数就传几个值默认参数:可以不传,如果不传就是默认的参数,      只有调用函数的时候按照位置传:直接写参数的值按照关键字:关键字=值定义函数的时候:        位置参数:直接定义参数        默认参数,关键字参数:参数名='默认的值'        动态参数:可以接收任意多个参数             参数名之前加*,习惯参数名args             *args:接收的是按照位置传参的值,组织成一个元祖             **kwargs:接收的是按照关键字传参的值,组织成字典             args必须在kwargs之前##顺序:必须先定义位置参数,*args,默认参数,**kwargs
def classmate(name,sex):print('%s:%s'%(name,sex))
classmate('sole','男')
classmate(sex='男',name='sole')
classmate('aaa','女')def classmate(name,sex='男'):               #设置一个默认值print('%s:%s'%(name,sex))
classmate('aaa','女')
classmate('aaa',sex='女')
#动态参数
def  sum(*args):n = 0for i in args:n += ireturn n
print(sum(1,2))
print(sum(1,2,3))
print(sum(1,2,3,4))def func(*args):print(args)
func()def func(**kwargs):print(kwargs)
func(a = 1,b = 2,c =3)
func(a = 1,b = 2)
func(a = 1)def func(*args,**kwargs):print(args,kwargs)
func(1,2,3,4,5,a = 'aaaa',b='bbbb')#动态参数的另一种传参方式
def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值print(args)func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*1) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散def func(**kwargs):print(kwargs)func(a=1,b=2)
d = {'a':1,'b':2}  #定义一个字典d
func(**1)

5.函数的注释

def func():'''这个函数实现了什么功能参数1:参数2::return:是字符串或者列表的长度'''

#函数的陷阱
def qqxing(k,l = {}):# l.append(1)l[k] = 'v'print(l)qqxing(1)     #[1]
qqxing(2)     #[1,1]
qqxing(3)     #[1,1,1]
# 如果默认参数的值是一个可变数据类型,
# 那么每一次调用函数的时候,
# 如果不传值就公用这个数据类型的资源

函数
1.函数的定义 def
2.函数的调用
3.函数的返回值 return
4.函数的参数
形参:
位置参数:必须传
*args:可以接收任意多个参数
默认参数:可以不传
**kwargs:可以接收多个关键字参数
实参:按照位置传参,按照关键字传参

转载于:https://www.cnblogs.com/soleZ/p/8117597.html

python基础 函数相关推荐

  1. Python基础-函数,高阶函数

    Python基础-函数 1.函数的定义和函数的执行流程: """ 函数学习 """print('程序开始') a = 10 # 在内存中申请 ...

  2. 第三章:Python基础の函数和文件操作实战

    本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...

  3. python基础函数及用法意思_Python基础之函数基本用法与进阶详解

    本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数 ...

  4. Python基础函数学习笔记(一)

    今天晚上学习的内容是Python的一些基础函数及其应用.参考书籍--<Python计算域编程实践-多媒体方法>第二章. 主要函数有print def ord abs pickAFile m ...

  5. python基础函数大全pdf,python函数大全及使用

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

  6. python基础--函数

    #python中函数的定义:函数是逻辑结构化和过程化的一种编程方法,用来实现某些特定的功能.#python中函数简单定义的方法# def test(x):# "this is new fun ...

  7. Python 基础 函数

    python 什么是函数 Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. python 函数的调用 Python内置了很多有用的函数,我们可以直接调用. 要调用一个 ...

  8. Python基础(函数)

    函数就是把具有独立功能的代码块封装成一个小模块,可以直接调用,从而提高代码的编写效率以及重用性, 需要注意的是, 函数需要被调用才会执行, 而调用函数需要根据函数名调用 函数的定义格式: def 函数 ...

  9. 打卡day07 python基础—函数

    def 和 return 是关键字(keyword)python 就是靠识别这些特定的关键字来明白用户的意图 # 1.创建和调用函数 """ 我们创建了一个函数,但是从来 ...

  10. Python基础——函数(二)

    文章目录 函数和过程 函数变量的作用域 局部变量 全局变量 global关键字 内嵌函数(内部函数) 闭包(closure) lambda表达式 两个常用BIF:filter()和map() 函数和过 ...

最新文章

  1. Java开发字符串JSON处理
  2. adb安装apk是出现INSTALL_FAILED_INSUFFICIENT_STORAGE
  3. ABAP [div '/'] 的区别与妙用
  4. linux 网络服务器 源码下载,linux下 各类tcp网络服务器的实现源代码.doc
  5. 用Python模拟浏览器操作
  6. 【CF1230E】Kamil and Making a Stream【GCD性质】【暴力vector】
  7. 判断输入的字符串总字节数是否超出限制
  8. 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) - 4.28
  9. 数学家眼里的相同与不同
  10. 苹果cms V8模板 黑色自适应电影模板
  11. 消消乐实现下坠_手把手教你如何实现iOS消消乐小游戏Demo
  12. Echarts数据可视化series-pie饼图,开发全解+完美注释
  13. 自定义char类型字段
  14. 非线性控制1.0——自适应控制和鲁棒控制
  15. win10创建局域网服务器
  16. 程序猿的创业故事:一个游走于计算机编程、高中数学、高中物理、爱好木工的全栈工程师,转行做高中教学的亲生经历!
  17. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句...
  18. H3C路由器清空ARP表
  19. PHP解决某些特殊汉字符或汉字转码后成乱码或者空白的问题
  20. 关于Win10创意者更新之后蓝屏的修复办法

热门文章

  1. php地址地区选择器,区域选择 - 按大区及省市多选区域,可自定义用于其它业务 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
  2. python中的多态用法_Python面向对象之多态原理与用法案例分析
  3. 蓝桥每日真题之时间显示
  4. mysql lock not wait_【MySQL】关于MySQL出现lock wait timeout exceeded 的解决方案
  5. SparkSql性能测试案例
  6. OpenCV基本图形绘制之绘制直线
  7. iOS 代码触发button点击事件
  8. 面向对象封装的web服务器
  9. Jenkins使用FTP进行一键部署及回滚(Windows)
  10. 活动目录系列之十二:活动目录的修复(下)