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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 牛客网专项练习30天Pytnon篇第25天

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变量没有先赋值就直接引用。


相关文章
|
Python
牛客网专项练习30天Pytnon篇第01天
牛客网专项练习30天Pytnon篇第01天
68 1
|
安全 Python
牛客网专项练习30天Pytnon篇第30天
牛客网专项练习30天Pytnon篇第30天
154 0
|
Python
牛客网专项练习30天Pytnon篇第07天
牛客网专项练习30天Pytnon篇第07天
89 0
|
索引 Python
牛客网专项练习30天Pytnon篇第14天
牛客网专项练习30天Pytnon篇第14天
71 0
|
Serverless Python
牛客网专项练习30天Pytnon篇第20天
牛客网专项练习30天Pytnon篇第20天
66 0
|
Python
牛客网专项练习30天Pytnon篇第23天
牛客网专项练习30天Pytnon篇第23天
89 0
|
Python
牛客网专项练习30天Pytnon篇第28天
牛客网专项练习30天Pytnon篇第28天
110 0
|
Java 索引 Python
牛客网专项练习30天Pytnon篇第11天
牛客网专项练习30天Pytnon篇第11天
102 0
|
Python
牛客网专项练习30天Pytnon篇第26天
牛客网专项练习30天Pytnon篇第26天
124 0
|
机器学习/深度学习 索引 Python
牛客网专项练习30天Pytnon篇第06天
牛客网专项练习30天Pytnon篇第06天
67 0