欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python 入门 Day 10

程序员文章站 2022-08-18 08:21:49
Day 10一、文件修改的两种模式二、函数的基本使用1、什么是函数​具备某一功能的工具============>函数​工具的使用:​事先准备好工具===========>函数的定义​遇到应用场景拿来就用======>函数的调用2、为何要有函数​2.1程序的组织结构不清晰,可读性差​2.2如果要用到重复功能,只能拷贝功能的实现代码,造成代码冗余​2.3可扩展性差3、如何使用函数​3.1定义函数申请内存空间把函数体代码...

Day 10

一、文件修改的两种模式

二、函数的基本使用

1、什么是函数

​ 具备某一功能的工具============>函数

​ 工具的使用:

​ 事先准备好工具===========>函数的定义

​ 遇到应用场景拿来就用======>函数的调用

2、为何要有函数

​ 2.1 程序的组织结构不清晰,可读性差

​ 2.2 如果要用到重复功能,只能拷贝功能的实现代码,造成代码冗余

​ 2.3 可扩展性差

3、如何使用函数

​ 3.1 定义函数

申请内存空间把函数体代码保存下来,然后把内存地址绑定给函数名,函数名=函数的内存地址

def sayhai():
	print("你好孙悟空!")
	print("你好猪八戒!")

​ 3.2 调用函数

函数名() ===>函数的内存地址(), 会触发函数体代码的运行

sayhai()
你好孙悟空!
你好猪八戒!

思考

  • 能否将 函数调用 放在 函数定义 的上方?
    • 不能!
    • 因为在 使用函数名 调用函数之前,必须要保证 Python 已经知道函数的存在
    • 否则控制台会提示 NameError: name 'f' is not defined (名称错误:f这个名字没有被定义)

三、定义函数的三种格式

​ 3.1 无参函数

def sayhai():
	print("你好孙悟空!")
	print("你好猪八戒!")

​ 3.2 有参函数

def sayhai(i):
	print("你好%s!" % i)

​ 3.3 空函数

 def func():
     pass

四、函数调用的三种格式

return

函数可以后三种形式的返回值

  1. return值:返回的就是该值的本身
  2. return值1, 值2, 值3 返回一个元祖
  3. 没有return 默认返回None
4.1 语句形式

单纯的调用一下函数就好了

def sayhi(s,n):
s = '-'
n = 20
print(s*n)
print('hello')

print(s*n)
4.2 表达式形式
def max2(x,y):
if x > y:
return x
else:
return y

res=max2(11,22) * 12
4.3 可以吧函数的调用当做值传给两外一个函数
print(max(12, 11))

总结:

函数的使用一定要用两个阶段去看:

1、定义阶段:只检测与法,不执行代码

2、调用阶段: 执行函数体代码

如果发生的语法错误,定义阶段会马上检测出来

如果发生的不是语法错误,而是逻辑错误,只能在调用阶段检测到

函数的参数分为两大类:

一、形参:

在定义函数时,括号内定义的变量名,称之为形式参数,简称形参(变量名)

def func(x,y):
	x=1
	y=2
print(x)
print(y)

二、实参:

在调用函数是,括号内代入的值,称之为实际参数,简称实参(变量值)

在python中参数的种类

1、形参变量只有在被调用时才分配内存单元,在调用结束时,就会释放出所分配的内存单元。所以,形参只能在函数内部才有效

2、实参是:常量、变量、表达式、函数等,实参是何种类型的量,当开始在进行函数调用时,都必须有确定的值;

3、实参和形参在数量,类型上和顺序上必须严格一致,不然就会发生类型不匹配。

4、在一般传值调用的机制中只能把实参传送给形参,因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。

在python中参数的种类

1、位置参数:

(1)位置形参:

在函数定义阶段按照从左到右的顺序依次定义形参(变量名),称之为位置参数

​ 特点:必须被传参

def func(x,y):
	print(x,y)

func(1,2)
func(1) # 少一个不行
func(1,2,3) # 多一个也不行
(2)位置实参:

在函数调用阶段按照从左到右的顺序依次定义实参(传入的变量值),称之为位置实参。

​ 特点:按照位置传值,一 一对应

def dept_emp(department, employees):
     dept_emp = department + '**** '+employees
     return dept_emp
dept_emp('marketing','lisan')

2、关键字实参:

​ 在函数调用阶段按照key:value的形式为指定的形参名传值,该形式称之为关键字实参

为了避免位置参数带来的混乱,调用参数时可以指定对应参数的名字,甚至可以采用与函数定义不同的顺序调用:

​ 特点:在传值时可以完全打乱顺序,但是仍然能够指名道姓地为指定的形参传值

​ 注意:

​ 1、位置实参必须放在关键字实参的前面

​ 2、不能为同一个形参重复赋值

# 1、
def func1(name, age, gender):
    print(name)
    print(age)
    print(gender)


func1("sss", age=18, "male")  # positional argument follows keyword argument

# 2、
func1("sss", age=18, age=22, gender="male")  # SyntaxError: keyword argument repeated

3、默认形参:

​ 在函数定义阶段就已经为某个形参赋值,该形参称之为有默认值的形参,简称默认形参。

​ 特点:定义阶段就已经被复制意味着在函数调用阶段可以不用为其赋值

​ 注意:

​ 1、默认形参应该放在位置形参的后面

​ 2、默认形参的值通常是不可变类型

def f(x, k=5, b=6):
    print("x:{} k:{} b:{}".format(x, k, b))
    y = k * x + b
    return y


f(x=5, k=5, b=6)

本文地址:https://blog.csdn.net/A1L__/article/details/107428911

相关标签: Python study python