老师,您好。下面是关于本章作业(用生成器来实现 斐波那契数列的前n项)。 问题:我的代码运行出来,第三个数字不是 ‘1’。想请教一下,怎么解决?
#斐波那契数列:第0项是0,第1项是1,。。。。每一项都是前两项之和。 #由于其数列中,第n位置的数很可能不是n,则应该引入计数器count #因为要求使用生成器,则将每次生成的数 用yield存储,便于生成 #先设定前两个数设出来,则会方便求第3个数、第4个数、第5个数....... def Fob(n): count = 0 num1 = 0 num2 = 1 while count<n: res = num1 num1 = num2 num2 = num1 + num2 count += 1 yield res f = Fob(10) for x in f: print(x)
# coding=utf-8 import sys class AA: def __init__(self): print("构造函数!!!") def __del__(self): print("对象被系统回收之前被调用的方法!!!") def func(aaa): print("引用两次!!!") a = AA() print(f"被调用的次数:{sys.getrefcount(a)}") func(a) print(f"被调用的次数:{sys.getrefcount(a)}")
老师为什么结果还是2呢
''' 1.闭包:在不修改源码的基础上增加新的功能 2.装饰器 与闭包关联紧密,很多时候,二者结合使用 ''' import time def writelog(func): try: file = open('log.txt','a',encoding='utf-8') file.write(func.__name__) file.write('\t') file.write(time.asctime()) file.write('\n') except Exception as e: print(e) finally: file.close() def funcout(func): def funcin(): #添加新的功能 writelog(func) func() return funcin() @funcout #装饰器的名字就是闭包外部函数名,不能随意写函数名 def func1(): print("我是功能1") @funcout def func2(): print("我是功能2") #func1 = funcout(func1) #func2 = funcout(func2) func1() func2()
老师。d代码能运行,日志文件也能正常运行,但是每次运行就会报这个错,麻烦您帮忙看看
这两个方法是在原字符串对象上操作,还是会生成一个新的字符串对象
老师这里%g和d是什么意思???。。。。。。。。。。。。。。。。。。。。。
一个实现了iter方法的对象,称为"可迭代对象,我理解是iter方法是将对象变为可迭代对象;需再配上next方法才能称为迭代器;
为何使用iter方法可以将列表,元祖等可迭代对象变为迭代器?
MyNumber类内部实现了__iter__方法和__next__,说明他已经是一个可迭代对象,为什么后面的myclass还要用iter转化一下?
如果前面的已用闭包开发了新功能,那后面又要增加新功能,那如何再用闭包来开发呀?
import sys class AA(): # 创建对象开辟内存时调用 def __new__(cls, *args, **kwargs): print('开辟内存空间') return super(AA, cls).__new__(cls) # 初始化方法 def __init__(self): print('创建对象at:%s' % hex(id(self))) # 对象被系统回收之前调用该方法 def __del__(self): print('%s say bye bye' % hex(id(self))) def test1(aaa): print('aaa') print('a的引用计数为:%d' % sys.getrefcount(a)) a = AA() print('a的引用计数为:%d' % sys.getrefcount(a)) b = a print('a的引用计数为:%d' % sys.getrefcount(a)) list1 = [a] print('a的引用计数为:%d' % sys.getrefcount(a)) test1(a) print('a的引用计数为:%d' % sys.getrefcount(a)) print('-'*50) b = 100 print('a的引用计数为:%d' % sys.getrefcount(a)) list1.remove(a) print('a的引用计数为:%d' % sys.getrefcount(a)) print('-'*20+'程序结束'+'-'*20)
老师,这个后面好几个引用a的,这里函数的执行顺序有点理不清了,麻烦老师讲解一下
老师,视频中创建sleep函数时为什么要指定self。是因为这个函数是给子类Dog创建的?。不知道self,为什么有会报错
老师,您好。我想请教您一下。 静态方法 和 类方法 这两种方法的其他区别 和 各自所发挥的实际用处 是什么?
(目前只知道 前者不能填加 cls self 参数 ,后者可以)
怎么打开python环境啊
为什么这几次课都没文档了。。。。
def outfunc(func): def infunc(): print("日志记录。。。。") func() return infunc def fun1(): #fun1()作为自由变量传到了infunc中 print("使用功能1") def fun2(): print("使用功能2") fun1 = outfunc(fun1) #无返回结果 fun1() #实现增加功能 fun2 = outfunc(fun2) #无返回结果 fun2()
在infunc里的func()是不是相当调用fun1/fun2
# coding=utf-8 ''' 表示边界 ''' import re # 实例1 匹配qq邮箱 5-10 @qq.com pattern = r'[1-9]\d{4,9}@qq.com$' s = '595514860@qq,com' # 请问老师为何qq.com写成qq,com仍然可以被识别出? v = re.match(pattern,s) print(v)
请问老师,为何在s里面写@qq,com 逗号能被识别到? 上面pattern部分是用的点 qq.com
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637