python开发编程基础:函数定义,返回值,参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python开发编程基础:函数定义,返回值,参数相关的知识,希望对你有一定的参考价值。

一,函数的定义

1,函数mylen叫做函数名
  #函数名
  #必须由字母下划线数字组成,不能是关键字,不能是数字开头
  #函数名还是要有一定的意义能够简单说明函数的功能
2,def是关键字 (define)
3,():必须写
4,函数体内尽量写注释,方便查看代码
5,函数的调用:函数名+括号

 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 
 4 def mylen():  #函数名
 5     ‘‘‘
 6     计算字符串长度的函数  这里写的是注释,方便查看代码
 7     ‘‘‘
 8     s = hello world
 9     length = 0
10     for i in s:
11         length += 1
12     return length        #函数的返回值
13 leng = mylen() #函数的调用 14 print(leng)

二,函数的返回值 return

1,函数返回值可以是任意的数据类型
2,如果有返回值:必须要用变量接收才会有效果

1 #!/usr/bin/env python
2 #_*_coding:utf-8_*_
3 
4 def func():
5     b = [1,2,3]
6     return b   #可以是任何数据类型
7 ret = func()    #有返回值,就需要用变量来接收
8 print(ret)

3,函数可以没有返回值,默认返回给None
      函数的返回值为None有三种情况
      1.不写返回值
      2.只写一个return
      3.return None (几乎不用)

4,return的作用:结束一个函数的执行

5,函数的返回值不为None,有返回值
     返回一个值(一个变量)
     返回多个值(多个变量),多个值之间用逗号区分
     接收:可以用一个变量接收,以元组的形式返回
     也可以用多个变量接收,返回几个就用几个变量去接收 相当于解压式接收

 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 
 4 def func6():
 5     ‘‘‘返回一个值‘‘‘
 6     a =123
 7     return a
 8 
 9 def func7():
10     ‘‘‘返回多个值‘‘‘
11     a = 123
12     b = abc
13     return a,b
14 
15 ret = func7()
16 print(ret)
17 m,n,k = func7()

 三,函数的参数

  1 #!/usr/bin/env python
  2 #_*_coding:utf-8_*_
  3 
  4 #函数的参数
  5 #实参和形参
  6 #实参:函数调用的时候传入的参数值
  7 #形参:是函数定义的时候定义的参数名
  8 #参数可以是任意的数据类型
  9 #可以传递0个或多个参数
 10 
 11 def mylen(s):  #参数接收:形式参数,形参
 12     ‘‘‘
 13     计算字符串长度的函数        ——函数的功能
 14     参数s:接收要计算的字符串   ——参数的信息
 15     return:要计算的字符串长度  ——返回值的信息
 16     ‘‘‘
 17     length = 0
 18     for i in s:
 19         length += 1
 20     return length
 21 length = mylen(hello world)  #参数传入:实际参数,实参
 22 print(length)
 23 
 24 
 25 #调用函数时传参数:
 26     #按照位置传参
 27     #按照关键字传参
 28 #位置参数:按顺序定义参数
 29 #站在传参的角度上
 30 #按照位置传参数
 31 def my_max(a,b):  #定义:位置参数
 32     ‘‘‘返回两个值之间的最大值‘‘‘
 33     print(a,b)
 34     if a > b:
 35         return a
 36     else:
 37         return b
 38 print(my_max(10,20))
 39 print(my_max(30,20))
 40 
 41 #按照关键字传参数,可以不按顺序传参数,
 42 def my_max(a,b):  #定义:关键字参数
 43     ‘‘‘返回两个值之间的最大值‘‘‘
 44     print(a,b)
 45     if a > b:
 46         return a
 47     else:
 48         return b
 49 print(my_max(b = 10,a = 20))
 50 
 51 #登陆小程序
 52 def login(user,pwd):
 53     if user == egon and pwd == somebody:
 54         return True
 55     else:
 56         return False
 57 ret = login(egon,pwd=somebody)
 58 if ret:
 59     print(登录成功)
 60 
 61 #默认参数:
 62 #不要设置可变数据类型的默认参数
 63 #对于变化小的参数可以设置默认参数
 64 #默认参数可以不传,不传的时候用的就是默认值
 65 #如果传,会覆盖默认值
 66 #默认的值是在定义函数的时候就已经确定了的
 67 
 68 #默认参数
 69 def stu_info(name,sex = male):  #默认参数,有一个默认值
 70     print(name:%s,sex:%s%(name,sex))
 71 stu_info(李淑旗) #默认参数可以不传值
 72 stu_info(海燕,female) #如果传值了,覆盖默认值
 73 
 74 #关于默认参数流程
 75 s = male
 76 def stu_info(name,sex=s):  #默认参数,有一个默认值
 77     print(name:%s,sex:%s%(name,sex))
 78 s = female #不影响定义时sex的值
 79 print(stu_info("李淑旗"))
 80 #打印出来的就是male   因为开始sex=x=male,然后s是新开辟的一个空间存储female
 81 
 82 #不要设置可变数据类型为默认参数
 83 b = []
 84 def func(a = []):
 85     a.append(1)
 86     print(a)
 87 # func()....打印下去你会发现这个[]列表一直在追加
 88 
 89 #位置参数、默认参数顺序问题
 90 def my_max(a,b=5):#位置参数在默认参数之前
 91     if a>b:
 92         return a
 93     else:
 94         return b
 95 print(my_max(5,6)) #按照位置传和按照关键字传
 96 
 97 
 98 #动态参数
 99 #*args  #按位置传参数
100 def func(a,b,*c):   #*c接收的是5,5,5,5并且输出一个元祖包含这个4个5 *args代表把散列的元素拼成元组
101     my_sum = a+b
102     for i in c:
103         my_sum += i
104     return my_sum
105 print(func(3,2,5,5,5,5))
106 
107 
108 #**kwargs   #按照关键字传参数
109 def fun(a,b,**kwargs):
110     print(a,b,kwargs)
111 fun(a = 10,b = 20,cccc= 30,dddd = 50)
112 
113 #形式参数括号里面的位置顺序
114 def f(a,b,*args,defult=6,**kwargs):
115     #位置参数,*args,默认参数,**kwargs
116     print(a,b,args,defult)
117 #传参数的时候:必须先按照位置传参数,再按照关键字传参数
118 f(1,2,7,8,defult=10)
119 
120 
121 #在传参的时候,针对列表,元祖的话,有个*t参数,避免手动传参
122 def fun2(*args):#*args代表把散列的元素拼成元组
123     print(args)
124 t = (1,2,3,4)
125 l = [1,2,3,4]
126 # fun2(t[0],t[1],t[2],t[3])
127 fun2(*t)  #*代表把一个元组、列表拆了
128 fun2(*l)  #*代表把一个元组、列表拆了
129 
130 #针对字典有个**d参数,避免手动传参
131 def fun3(**kwargs):#*args代表把按关键字传来的参数拼成字典
132     print(kwargs)
133 fun3(a = 10, b = 20)
134 d = {a: 10, b: 20}
135 fun3(**d)  #*代表把一个字典拆了

 


















以上是关于python开发编程基础:函数定义,返回值,参数的主要内容,如果未能解决你的问题,请参考以下文章

函数式编程

Python基础:函数基础

python编程基础之三十三

python基础--函数式编程

python基础 函数定义 返回值 参数

python全栈开发从入门到放弃之函数基础