菜鸟零基础学习笔记】Day19-第三次作业讲解(二)

18、书写执行结果(禁止运行代码)

第一个:

a = 'oldboy %'
print(a)

输出:
oldboy %

第二个:

a = 'oldboy %d %%' %(12,)
print(a)

输出:
oldboy 12 %

 

19、简述对象和类的关系

如果值是某类型,那这个值就是这个类的对象

 

20、书写执行结果(禁止运行代码)

def func(a1):
    return a1 + 100
func = lambda a1:a1+200
ret = func(10)
print(ret)

输出:
210

匿名函数那一句把func变量覆盖了

 

21、内置函数all和any的区别

all:如果是空的,返回True,如果非空,返回False,全真为真否则为假

any:有一个真就为真

 

22、简述文件打开模式“r”和“rb”的区别

r是只读模式打开,默认utf-8格式

rb是以二进制格式打开

 

23、将字符串“老男人”转换成utf-8编码的字节类型

内存里只有一种编码(unicode),字节是在磁盘和传输的过程才有意义

方法一:

s = '老男人'
print(bytes(s,'utf-8'))

输出:
b'\xe8\x80\x81\xe7\x94\xb7\xe4\xba\xba'

方法二:

s = '老男人'
print(s.encode('utf-8'))

输出:
b'\xe8\x80\x81\xe7\x94\xb7\xe4\xba\xba'

 

24、略

 

25、简述内置函数globals(),locals()作用

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

locals() 获取所有局部变量

 

26、利用内置函数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]))

输出:
alex_is_good_guy

27、略

 

28、书写执行结果(禁止运行代码)

namelist = ['alex','eric']
def func():
    namelist = 123
    global namelist
func()
print(namelist)

输出:
SyntaxError: name 'namelist' is assigned to before global declaration

(global声明要写在前面才行)

 

29、书写执行结果(禁止运行代码)

第一个:

name = 'root'
def func():
    name = 'seven'
    def outer():
        name = 'eric'
        def inner():
            global name
            name = '懵逼了吧'
        print(name)
    print(name)
ret =func()
print(ret)
print(name)

输出:
seven
None
root

第二个:

name = 'root'
def func():
    name = 'seven'
    def outer():
        name = 'eric'
        def inner():
            global name
            name = '懵逼了吧'
        print(name)
    o = outer()
    print(o)
    print(name)
ret =func()
print(ret)
print(name)


输出:
eric
None
seven
None
root

第三个:

name = 'root'
def func():
    name = 'seven'
    def outer():
        name = 'eric'
        def inner():
            global name
            name = '懵逼了吧'
        print(name)
        inner()
    o = outer()
    print(o)
    print(name)
ret =func()
print(ret)
print(name)


输出:
eric
None
seven
None
懵逼了吧

第四个:略

 

30、书写执行结果并解释每一步操作

第一个:
 

name = 'canglaoshi'
def outer(func):
    name = 'alex'
    func()   #函数名字可以作为参数传递
def show():
    print(name)
outer(show)


输出:
canglaoshi

把show传入outer函数之后,func()和show()指向同一块函数体,也就是print(name)

 

第二个:

name = 'canglaoshi'
def outer():
    name = 'boduo'
    def inner():
        print(name)
    return inner() #在这里执行没有意义
ret = outer()
print(ret)


输出:
boduo
None

第三个:

name = 'canglaoshi'
def outer():
    name = 'boduo'
    def inner():
        print(name)
    return inner
ret = outer()
ret()   #boduo
print(ret)   #<function outer.<locals>.inner at 0x000001719D9F3620>
result = ret()
print(result)


输出:
boduo
<function outer.<locals>.inner at 0x000001719D9F3620>
boduo
None

inner被复制给了变量ret

 

第四个:

name = 'canglaoshi'
def outer():
    name = 'boduo'
    def inner():
        print(name)
    return inner   #返回内存地址
ret = outer()
print(ret)
result = ret()  #执行inner函数,打印boduo
print(result)   #inner无返回值,打印的是None


输出:
<function outer.<locals>.inner at 0x0000025F44221620>
boduo
None

 

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

第一种:

#利用递归实现1*2*3*4*5*6*7=5040(我自己写的代码)
def func(end,s=1,begin=1):
    if begin>end:
        return s
    s *=begin
    begin +=1
    return func(end,s,begin)
print(func(7))


输出:
5040

第二种:(上一种方法写的不好,因为传一个参数其实就够了)

def f(n):
    if n==1:
        return 1
    return n*f(n-1)
print(f(7))

输出:
5040

第三种:
(reduce+lambda写法)

from functools import reduce
print(reduce(lambda x,y:x*y,[x for x in range(1,8)]))

输出:
5040

 

35、写程序

a.文件操作时with的作用?
with 打开文件执行完毕后自动关闭

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

原文件内容:

文件a:

123
abc

文件b:

456
efg

运行代码:

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

运行后的文件:

文件a:

123
abc

文件b:

123
abc

 

37、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个,第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个,到第十天刚好剩下一个。

问猴子第一天摘了多少个桃子?

s=1
for i in range(9):
    s = (s+1)*2
print(s)

输出:
1534

或者用匿名函数:

s=1
func = lambda x:(x+1)*2
for i in range(9):
    s = func(s)
print(s)

输出:
1534

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值