【python基础】—函数def()的定义与调用、参数、return返回值及变量作用域


定义函数:def()语句

语法:

def 函数名(参数1,参数2,.....,参数n): 
	函数体 	
	return 语句

举例:

def hello(name):
	print(name+"Good morning!")
	return 

上面我们定义一个名字为hello的函数,括号内部是函数接收的参数name,紧接着就是函数的功能代码。


调用函数:输入函数名和参数对应的值

def hello(name):
	print(name+"Good morning!")
	return 
hello("lily")

在这里插入图片描述

多次调用

hello("lily,")
hello("Mike,")

在这里插入图片描述


参数

  • 位置参数
def menu(appetizer,course):
	print("一份开胃菜:"+appetizer)
	print("一份主食"+course)
menu("手拍黄瓜","大米饭")

在这里插入图片描述

这里的"手拍黄瓜"和"大米饭"是对应参数appetizer和course的位置顺序传递的,所以被叫作位置参数,这也是最常见的参数类型。

  • 默认参数
    注意: 默认参数必须放在位置参数之后
def menu(appetizer,course,dessert="西瓜"):
	print("一份开胃菜:"+appetizer)
	print("一份主食:"+course)
	print("一份甜品:"+dessert)
menu("手拍黄瓜","大米饭")

在这里插入图片描述

默认将"西瓜"传递给dessert,调用时无须再传递。

但是默认参数也会改变的,比如像下面python会自动将"银耳羹"传递给参数dessert。

menu("手拍黄瓜","大米饭","银耳羹")

在这里插入图片描述

  • 不定长参数:一个星号*加上参数名
def menu(*barbeque):
	print(barbeque)

menu("烤茄子","烤大肠","烤玉米")

在这里插入图片描述

barbeque输出的是数据类型是元组,可以用for循环来迭代输出。代码如下:

def menu(appetizer,course,dessert,*barbeque):
	print("一份开胃菜:"+appetizer)
	print("一份主菜:"+course)
	print("一份甜品:"+dessert)
	for i in barbeque:
		print("一份烤串:"+i)

menu("手拍黄瓜","大米饭","西瓜","烤茄子","烤大肠","烤玉米")

在这里插入图片描述


return 返回值

return是返回值,当你输入参数给函数,函数就会返回一个值给你。事实上每个函数都会有返回值。

def wqf_album(a):
	if a==1:
		return "太空人"
	elif a==2:
		return "册页一与一"
	elif a==3:
		return "马拉美的星期二"
	else:
		return "敬请期待吴青峰第四张专辑!"

wqf_album(1)

在这里插入图片描述

  • 1、如果不是立即要对函数返回值做操作,那么可以使用return语句保留返回值。

类似这种多个函数相互配合的代码中,我们就会非常需要return语句,来帮我们先保留某个函数的返回值,等要用到的时候再调出来用。

def face(name):
	return name+"!"
def body(congratulations):
	return congratulations+"~"

face("吴青峰")
body("祈愿你永远平安安康,自在快乐")	

print(face("吴青峰"),body("祈愿你永远平安安康,自在快乐"))

在这里插入图片描述

  • 2、需要多次调用函数时,可以再定义一个目标主函数main(),调用非主函数的返回值。

  • 3、return可以接受一次多个返回,而且多个返回值的数据类型就是元组。

def face(name):
	return name+"!"
def boby(congratulations):
	return congratulations+"~"
def main(mylover,mybless):
	return face(mylover),body(mybless)

print(main("吴青峰","祈愿你永远平安安康,自在快乐"))
print(main("anpu","也谢谢你愿意成为我们的歌手!"))

在这里插入图片描述

  • 4、没有return语句的函数会默认返回None值。
def fun():
    a = "I am wqf."
    
print(fun())

在这里插入图片描述

  • 5、一旦函数内部遇到return语句就会停止执行并返回结果。
def fun():
	return "I am wqf."
	return "I am not wqf."

print(fun())

在这里插入图片描述


变量作用域

定义一个函数时,理解函数中变量的作用域

  • 局部变量:在一个函数内定义的变量仅能在函数内部使用(局部作用域)。
  • 全局变量:在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域)。
x=wqf
def name():
	x=wqf
	print(x)

num()#调用函数内部变量

print(x)#调用全局变量

在这里插入图片描述

当变量处于被定义的函数内时,就是局部变量,只能在这个函数内被访问;当变量处于被定义的函数外时,就是全局变量,可以在程序中的任何位置被访问。注意: 尽量局部变量与全局变量不要同一个命名。

  • global语句,可以将局部变量转变为全局变量。
def name():    
    mylover = "wqf"
name()
print(mylover)   #会报错,不能在函数外部(全局作用域)使用函数内的局部变量

mylover = 108
def name():
   print(mylover)
name()           #函数内的局部作用域,可以访问全局变量

def name():    
    global mylover 
    mylover = 108
name()
print(mylover)   #global语句可以将局部变量声明为全局变量

运行结果1:
在这里插入图片描述
运行结果2:
在这里插入图片描述

运行结果3:
在这里插入图片描述

  • 14
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1. 打开文件: 要打开文件,可以使用内置的open()函数。它接受文件路径和打开模式作为参数,并返回一个文件对象。 ```python file = open('filename.txt', 'r') # 以只读模式打开文件 file = open('filename.txt', 'w') # 以写入模式打开文件 file = open('filename.txt', 'a') # 以追加模式打开文件 ``` 2. 读取文件: 可以使用文件对象的read()方法来读取文件内容。它将整个文件作为一个字符串返回。 ```python content = file.read() # 读取整个文件内容 ``` 也可以使用readlines()方法逐行读取文件内容,并将每行作为一个字符串存储在列表中。 ```python lines = file.readlines() # 逐行读取文件内容 ``` 3. 写入文件: 可以使用文件对象的write()方法来写入内容到文件中。 ```python file.write('Hello, World!') # 写入字符串到文件中 ``` 4. 函数函数是一段可重复使用的代码块,可以接受参数并返回一个值或执行一些操作。 ```python def greet(name): print('Hello, ' + name + '!') greet('Alice') # 调用函数,并传递参数 ``` 5. 函数参数: - 位置参数:按照定义时的顺序,依次传递给函数。 - 关键字参数:通过参数名来传递参数,可以不按照定义时的顺序传递。 - 默认参数:在定义函数时,给参数指定一个默认值。 - 参数返回值函数可以通过return语句返回一个值。 - 函数作用域变量作用域决定了其可见性和生命周期。 ```python def add(a, b): # 位置参数 return a + b def greet(name, message='Hello'): # 默认参数 print(message + ', ' + name + '!') def calculate(a, b=2): # 关键字参数和默认参数 return a * b result = add(3, 5) # 调用函数,返回8 greet('Alice') # 调用函数,输出"Hello, Alice!" greet('Bob', 'Hi') # 调用函数,输出"Hi, Bob!" result = calculate(4) # 调用函数,返回8 ``` 函数作用域包括全局作用域和局部作用域。在函数内部定义变量属于局部作用域,而在函数外部定义变量属于全局作用域。 ```python message = 'Hello' # 全局变量 def greet(name): message = 'Hi' # 局部变量 print(message + ', ' + name + '!') greet('Alice') # 输出"Hi, Alice!" print(message) # 输出"Hello" ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值