python练习题4

1.将字符串“老男孩”转换成UTF-8编码的字节类型

s = "老男孩"
bytes(s,'utf8')
s.encode('utf8')

2.简述globals(),locals()的作用

答:globals()获取所有的全局变量

  locals()获取所有局部变量

3.利用内置函数zip(),实现功能

l1 = ["alex",22,33,44,55]     l2 = ["is",22,33,44,55]

l3 = ["good",22,33,44,55]     l4 = ["guy",22,33,44,55]

请获取字符串 s = "alex_is_good_guy"

l1 = ["alex",22,33,44,55]
l2 = ["is",22,33,44,55]
l3 = ["good",22,33,44,55]
l4 = ["guy",22,33,44,55]
print("_".join(list(zip(l1,l2,l3,l4))[0]))

4.书写执行结果

a.

name = "苍老师"
def outer(func):
    name = 'alex'
    func()
def show():
    print(name)
outer(show)

输出结果为:苍老师

b.

name = "苍老师"
def outer():
    name = "波多"
    def inner():
        print(name)
    return inner()
ret = outer()
print(ret)

输出结果为:波多  None

c.

name = "苍老师"
def outer():
    name = "波多"
    def inner():
        print(name)
    return inner
ret = outer()
ret()
print(ret)
result = ret()
print(result)

输出结果为:波多   <function outer.<locals>.inner at 0x000002383F865598>    波多   None

d.

def outer(func,z,y)
    return func(z)  #若无return 则输出None
def show(x)
    return x*x
ret = outer(show,9,23)
print(ret)

输出结果为:81

e.

def outer(func,z,y):
    return func(z,y) #若无return 则输出None
f1 = lambda x,y:x+y
ret = outer(f1,11,22)
print(ret)

输出结果为:33

5.利用递归实现1*2*3*4*5*6*7=5040

def num(n,a = 1):
    if n == 1:
        return a
    a *= n
    res = num(n-1,a)
    return res
print(num(7))
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,8)))
print(reduce(lambda x,y:x*y,[i for i in range(1,8)])) #列表解析
def f(n):
    if n == 1:
        return 1
    return n*f(n-1)
a = f(7)
print(a)

6.利用with实现同时打开两个文件(一读,一写,并将读取到的内容写入到写入模式的文件中)

with open('a.txt','r',encoding='utf8') as x,
        open('b.txt','w',encoding='utf8') as y:
    y.write(x.read())

7.有一筐桃子,猴子每天吃一半加一个,吃到第十天只剩一个,问一筐桃子原来有多少个?

1.递归法:
def
f(day,a): if day == 1: return a a = (a+1)*2 day -= 1 res = f(day,a) return res sum = f(10,1) print(sum)
2.函数法:
sum = 1
func = lambda x:(x+1)*2
for i in range(9):
  sum = func(sum)
print(sum)

输出结果为:1534

原文地址:https://www.cnblogs.com/zhangsenzhen/p/9385663.html