当前位置: 移动技术网 > IT编程>脚本编程>Python > python 入门 Day 10

python 入门 Day 10

2020年07月20日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网