牛客网专项练习30天Pytnon篇第25天

本文深入探讨了Python中的函数内部与外部变量作用域,详细解释了如何使用`global`关键字以及递归函数的工作原理。通过示例代码,阐述了函数返回值、局部与全局变量的交互,以及递归计算阶乘的问题。同时,强调了未初始化变量在函数内的使用可能导致的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Python3执行以下程序,输出结果为:(C

def outer():
	def inner():
		print('inner',end=" ")
	print('outer',end = " ")
	return inner
outer()

A.inner outer   

B.inner   

C.outer   

D.outer inner

解析:

       调用函数outer,会输出outer并且返回值是inner函数,inner并没有调用,因此不会执行inner函数的语句块。


2..Python3如下代码,执行结果为:(A)

def f(x):
	if x == 0:
		return 0
	elif x == 1:
		return 1
	else:
		return (x*f(x-1))

print(f(5))

A.120 

B.720 

C.24 

D.64

解析:

       Python的递归题,解题思路一样的,求5的阶乘,也就是5!=5*4*3*2*1=120


3..Python3执行下面代码,请问输出结果为(A

name = "顺顺"
def f1():
	print(name)
def f2():
	name = "丰丰"
f1()
f1()
f2()

A.顺顺 顺顺 

B.丰丰  丰丰 

C.顺顺 丰丰 

D.丰丰  顺顺

解析:

       首先f1()相当于调用两次f1()函数,由于f1()函数体内没有局部变量name,所以引用全局变量name,故打印两次“顺顺”;f2()函数体内有局部变量name所以f2()函数体内优先使用局部变量name,因f2()函数内没有打印输出,所以不会打印f2()结果。


4..Python3执行下面代码,请问输出结果为:(D)

counter = 1
def number():
	global counter
	for i in (1, 2, 3):
		counter += 1
number()
print(counter)

A.1

B.2

C.3

D.4

解析:

       在变量前加global代表修改的是全局变量, 原counter=1,三次循环+1故=4, 函数执行完,全局变量被修改=4。


5..Python3执行以下代码,结果输出为:(A

num = 1
def fn():
	num += 1
	return lambda:print(num)
x = fn()
x()

A.报错 

B.1

C.None 

D.2

解析:

       虽然在函数外部声明num 为全局变量,但若函数体内对num变量重新赋值,其结果会使得函数内部屏蔽了外面的全局变量num,此时语句num += 1就会抛出异常,即num变量没有先赋值就直接引用。


877322c68c67414eaa561e26b340cd4f.jpeg

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漫步桔田

编程界的一枚小学生!感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值