pattern = r'.*er\B' s = '123 oaerp' v = re.match(pattern, s) print(v)
老师,问一下这里\B是匹配边界不是'er'的,为什么运行结果输出的时候直到'er',而后面的'p'却不输出
import time class Decorater(): __cache = {} def __init__(self,func): self.func = func def __call__(self, *args, **kwargs): if self.func.__name__ in Decorater.__cache: return Decorater.__cache[self.func.__name__] else: result = self.func(*args,**kwargs) Decorater.__cache[self.func.__name__] = result return result def costtime(func): def infunc(*args,**kwargs): start = time.time() result = func(*args,**kwargs) end = time.time() print(f"{end-start}") return end-start return infunc @costtime @Decorater def long_time(): print("start") time.sleep(4) print("end") return 999 if __name__ == "__main__": r1 = long_time() r2 = long_time() print(r1) print(r2)
请问老师,这里我输出的结果没有返回值999是什么原因啊
这里的警告按了自动修正格式的快捷键后还是有什么原因 ?
代码可以正常跑 但是代码区域右上角会有黄色三角感叹号标识
def foo(): print("start") i = 0 while i<4: temp = yield i print(f"temp:{temp}") i=i+1 print("end") g = foo() for a in g: print(a) print(a) print(next(g)) print(g.send(99)) print("*" * 20) print(next(g))
老师,这个函数调用我不太清楚为什么只有开始的时候有start。
是不是print(a)的时候只返回函数foo()的值,并不算调用函数。当next(g)和g.send的时候才算调用函数foo(),那为什么这时候并没有打印“start”出来呢但是有temp。
或者说是调用next(g)时是接着上一次的yeild i 才开始继续,到下个yeild i 又跳出,实际上函数的循环中还没结束?那么temp的None又是怎么来的,是因为yield返回的吗
s = '<html><h1>我是一号字体</h1><html>' pattern = r'<(?P<key1>.+)><(?P<key2>.+)>.+</(?P=key2)></(?P=key1)>' v = re.match(pattern, s) print(v)
E:\project\pythonProject\venv\Scripts\python.exe E:/project/pythonProject/program_testing/RegularExpression/test6.py None Process finished with exit code 0
老师,我这是哪里出问题了吗?运行结果怎么总是为None呢?
class AAA(): def __init__(self,func): # print("我是AAA.init()") self.__func=func # TypeError: 'AAA' object is not callable def __call__(self, *args, **kwargs): self.addFunc() self.__func() def addFunc(self): print("用户权限验证") print("日志系统处理") @AAA # TypeError: __init__() takes 1 positional argument but 2 were given # test1=AAA(test1) def test1(): print("我是功能1") test1()
请问老师,这个__call__是干嘛的
视频中.c文件是用keil打开的嘛?
请问老师缓存那个类 cache字典为什么是私有模式 我觉得不私有也可行吧 老师能提醒一下什么情况可以用私有什么情况可以不用?
老师一个\w这样的字符是只能匹配一个单词字符吗??????????比如add,是匹配到add还是a???????????要匹配多个是要多个\w吗??视频里匹配手机号就是多个\d
按照老师的步骤走的,但是还是没法查看python的帮助文档
def outer(): print("outer") a = 20 def inner(): print("inner") nonlocal a print(f'a={a}') return innera = outer()a()
问:a = outer()为什么只执行outer方法?
a()是执行了inner方法吗?
import re pattern = r"\\\n\d{3,}" s=r"\\\n123" print(s) v=re.match(pattern,s) print(v)
老师,这里如果s也用r标识原始字符串,则返回None,这里怎么理解?
老师,为什么现在的代码都要加上#coding utf-8?
def fun00(f): try: e = open(r'generator.e.txt', 'a', encoding='utf-8') e.write(f.__name__) e.write('\t') except: print('File is error !') finally: e.close() def one(num9): print('first run') fun00(one) def two(num8): fun00(two) print('two run.') return num8 + num9 return two p = one(1) p(1)
为什么传不过去呢?程序哪里不对啊?
# 匹配座机 电话号码 区间号-电话号 import re #pattern = r'\d{3,4}-[1-9]\d{4,7}$' pattern = r'(\d{3,4})-([1-9]\d{4,7})$' s = '029-77365892' v = re.match(pattern,s) print(v) print(v.group(0)[2]) print(v.group(1)[2]) print(v.group(2)[0])
老师这里
print(v.group(0)[2]) # 这两个输出结果一直 验证后发现(0)和(1) 都是指区号 029 呀 print(v.group(1)[2])
我需要这样理解么 : # 不带括号匹配的就是一个整体为一组,就是group(0),里面按元组序列访问, #带上括号后分为group(0) 这里的0和1访问的一样, group(2)
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2026百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637