函数初识

1. 函数定义:

def 函数名():
函数体 # def 关键字 -- 定义
# 函数名 -- 和变量定义规则一样
# () 必须要写格式 ,一会在盘他
# : 声明语句结束 内存中存放了一堆代码,如果不调用,里面不会变,不会开辟空间

2. 函数调用:

函数名 + ()   

def my_len():
s = "alex"
count = 0
for i in s:
count += 1
print(count)
my_len() #调用 显示4

3. 函数的返回值:

return:

def my_len():
s = "alex"
count = 0
for i in s:
count += 1
return count
print(my_len()) # 4 count的值给了my——len() lst = [1,3,5,7]
def li():
for i in lst:
lst.append(int(input(">>>")))
return lst
print(li()) # lst给了li() #总结:
return的内容返回给了函数的调用,可以返回任意类型
return下方的代码不执行,终止这个函数(不是终止循环)
return 返回多个内容的时候还是元组形式
return 没有写返回值的时候返回的是None,不写return返回的也是None

4. ()

形参:函数的定义中括号里的是形参
实参:函数的调用括号里的是实参
传参:将实参传递给形参的过程

4.1 位置传参:

​ 形参与实参必须一一对应,形参可以不用,但必须传参。

​ 形参是默认参数是,实参传递时可以不写,若写内容就会将形参的默认参数覆盖。

​ 位置参数 > 默认参数

def func(a,b,c):
print(a,b,c)
func(1,3,5) # 1 3 5 可以是任意数据类型 def func(a,b=2): #b=2 为默认参数,可以不用写实参
print(a,b)
func(1) #1 2 def func(a,b=2): #默认参数必须放最后
print(a,b)
func(1,3) # 1 3 位置参数 > 默认参数 b=3 形参与实参必须一一对应,形参可以不用,但必须传参

4.2 关键字传参:

def func(a,b,c):
print(a,b,c)
func(a=1,c=3,b=2) # 按a,b,c 传参, 1,2,3 def func(a,b,c=4):
print(a,b,c)
func(a=1,c=3,b=2) # 1 2 3 c=4被覆盖 #依次输出name,age,sex:
def userinfo(name,age,sex="男"):
print(name,sex,age)
while True:
name = input("name:")
age = int(input("age:"))
sex = input("sex(如果是男,直接回车!):")
if sex == "女":
userinfo(name,age,sex)
else:
userinfo(name, age)

4.3 混合传参:

​ 位置参数 > 关键字参数

#错误示例:
def func(a,b,c):
print(a,b,c)
func(1,b=3,5) # 位置参数跟随在关键字参数后,报错 def func(a,b,c):
print(a,b,c)
func(1,3,c=5) # 1 3 5 def func(a:int,b:str): # 只有提示作用,没有约束作用
print(a,b)
print(type(a)) # int
print(type(b)) # int
func(1,2)

最新文章

  1. Python 开源网上商城项目
  2. 从微软下载安装Windows10
  3. JAVA(IO流)文件复制
  4. 10Spring_AOP编程(传统编程)
  5. Java-Stack
  6. php根据身份证号码计算年龄
  7. [转]数据结构之Trie树
  8. container_of
  9. C#_Fileuploadify_notMvc
  10. nginx主配置文件 在那找怎么打开
  11. JavaScript js无间断滚动效果 scrollLeft方法 使用模板
  12. java文本编辑器5
  13. C#socket通信1
  14. mob分享
  15. java内存区域——深入理解JVM读书笔记
  16. CLR类型设计之参数传递
  17. 打造自己的 JavaScript 武器库(转自SegmentFault公众号)
  18. 【Linux基础】压缩和解压
  19. 关于 RESTful API 中 HTTP 状态码的定义
  20. Drools为什么没有规则流Flow Flie

热门文章

  1. Redis(五)--- Redis的持久化RDB与AOF
  2. 技术派-不用sqrt手工计算平方根
  3. [ PyQt入门教程 ] Qt Designer工具的使用
  4. nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
  5. 输出单链表倒数第K个结点值
  6. Vue 报错 listen EADDRINUSE :::8080
  7. 【iOS】Interface Builder 预览
  8. 泥瓦匠 5 年 Java 的成长感悟(下)
  9. 佳木斯集训Day1
  10. 【Java例题】5.5 映射类的使用