模块二 函数和模块考核

一、简答题【口述,每道1分钟】
1. 绝对路径与相对路径的区别?
– 绝对路径是从根目录符号"/“开始的路径;
– 相对路径是指路径不以根目录符号”/"开头,而以当前目录的下一级子目录名打头的路径。

2. 路径转义的方法?
– 再加上一个反斜杠,将斜杠转义为"",如"D:\cdsn\python.txt";
– 在路径字符串前面加上r,如r"D:\cdsn\python.txt";
– 将每一个"“转换为”/",如"D:/cdsn/python.txt"。

3. 函数参数的形式有哪些?
– 默认参数
– 实际参数
– 动态参数 *(元组) **(字典)
– 形式参数

4. 函数作用域的顺序?
– 优先在局部作用域中寻找,如果没有则去上级作用域中寻找。

5. 什么是装饰器?
– 装饰器就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能。
二、代码题
1. 说出下列三元表达式的结果?

a = 1>2 or 0 or False or 'False' and 1
print(a)

# 输出:1

2. 下面代码中两个print分别为

a=1
def function(a):
    a = 1
    a += 4
    print(a)
function(a)
print(a)

# 输出:
2
1

3. 使用列表推导式筛选出100内的偶数且是3的倍数。

print([i for i in range(101) if i % 6 == 0])

# 输出:[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96]

4. 使用生成器写个斐波那契数列

# 方法一
def fib(n):
    a,b = 0,1
    i = 0
    while i < n:
        a, b = b, a+b
        yield a
        i += 1

result = fib(5)
for i in result:
    print(i)

# 输出:
输出:
1
1
2
3
5
# 方法二
def fib(max_count):
    first = 1
    second = 0
    count = 0
    while count < max_count:
        next_value = first + second
        first = second
        second = next_value
        yield next_value
        count += 1

count = input("请输入要生成斐波那契数列的个数:")
count = int(count)
fib_generator = fib(count)
for num in fib_generator:
    print(num)

# 输出:
请输入要生成斐波那契数列的个数:5
1
1
2
3
5

5. 请设计一个装饰器,它可以作用于任何函数上,打印函数执行时间。

import time
import functools

def time_func(func):
    @functools.wraps(func)
    def inner(*args, **kwargs):
        start_time = time.time()
        res = func(*args, **kwargs)
        end_time = time.time()
        print(end_time-start_time)
        return res
    return inner

@time_func
def data():
    for i in range(5):
        time.sleep(0.5)
        print(i)

data()

# 输出:
0
1
2
3
4
2.5352702140808105
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Supersuper※

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值