Python经典题目100道题_第1页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、录Python基础习题 怎么计算2的3次怎么找出序列中的最最值? 怎么将字符列表转为字符串怎么快速打印出包含所有 ASCII 字(写和写)的字符串怎么让字符串居中怎么在字符串中找到串怎么让字符的字写,其他字写怎么清空列表内容怎么计算指定的元素在列表中出现了多少次? 怎么在列表末尾加其它元素extend 和列表相加的区别?怎么查找列表中某个元素第次出现的索引,从 0 开始怎么将个对象插到列表中怎么删除列表中元素怎么删除列表中指定元素怎么让列表按相反顺序排列? 怎么表示只包含个元素的元组怎么批量替换字符串中的元素怎么把字符串按照空格进拆分怎么去除字符串位的空格怎么给字典中不存在的key指定默认值怎

2、么快速求 1 到 100 所有整数相加之和怎么查出模块包含哪些属性?怎么快速查看某个模块的帮助档怎么快速启动浏览器打开指定站Python占位符怎么表示?怎么给函数编写档? 怎么定义私有法?怎么判断个类是否是另个类的类? 怎么从个空序列中随机选择个元素?怎么查出通过 from xx import xx导的可以直接调的法? 花括号 是集合还是字典?怎么求两个集合的并集? 求两个集合的交集求两个集合中不重复的元素? 求两个集合的差集?从个序列中随机返回 n 个不同值的元素怎么成两个数之间的随机实数怎么在等差数列中随机选择个数怎么在件写字符?怎么读取件内容?怎么把程序打包成 exe 件怎么把程序打包称

3、 Mac 系统可运的 .app 件怎么获取路径下所有录名称?Python 环境下怎么执操作系统命令? 怎么将当前时间转为字符串?怎么将秒数转为时间数组将时间元组转换为从新纪元后的秒数怎么将字符串转为时间元组怎么随机打乱列表的顺序Python进阶习题怎么for循环实现把字符串变成Unicode码位的列表 怎么列表推导式实现把字符串变成Unicode码位的列表 打印出两个列表的笛卡尔积可迭代对象拆包时,怎么赋值给占位符Python3 中,什么式接收不确定值或参数切讲对象倒序怎么查看列表的 ID可变序列*=(就地乘法)后,会创建新的序列吗? 不可变序列*=(就地乘法)后,会创建新的序列吗? 关于+=

4、的道谜题sort() 和 sorted() 区别怎么通过 reverse 参数对序列进降序排列numpy 怎么把维数组编程维数组快速插元素到列表头部字典的创建法通过次查询给字典不存的键赋予新值怎么统计字符串中元素出现的个数?列表去重求m中元素在n中出现的次数新建个Latin-1字符集合,该集合的每个字符的Unicode名字都有“SIGN”这个单词,集合推导式完成。查询系统默认编码式修改编码式递归实现阶乘 all()的输出结果是多少? any()的输出结果是多少? 怎么判断对象是否可被调? 怎么列出对象的所有属性怎么得到类的实例没有函数有的属性列表函数中,不想持数量不定的定位参数,但是想持仅限关

5、键字参数,参 数怎么定义怎么给函数参数和返回值注解不使递归,怎么效写出阶乘表达式Python什么时候执装饰器? 判断下语句执是否会报错?怎么强制把函数中局部变量变成全局变量闭包中,怎么对数字、字符串、元组等不可变元素更新Python2 怎么解决访问外部变量报错的问题测试代码运的时间怎么优化递归算法,减少执时间较两个对象得值(对象中保存的数据)是否相等较两个对象得内存地址 id 是否相等怎么格式化显示对象?复制个序列并去掉后 n 个元素Python中怎么定义私有属性。怎么随机打乱个列表元素的顺序怎么判断某个对象或韩式是个已知的类型怎么打印出分数+ 和 += 区别怎么列出个录下所有的件名和件 名怎

6、么返回 1 到 10 的阶乘列表怎么快速拼接字符串和序列形成新的列表进度条显示推荐个具,是个对 Python 运原理进可视化分析的具,Python Tutor, 点击 Next 按钮就会根据执步骤显示原理,对新理解代码运原理有很帮助。举个简单的例,sort() 式和 sorted()的区别。可以明显看到 sort() 会就地在原序列上排序,sorted() 新建了个新的序列。Python基础习题怎么计算2的3次解法1:直接运算符 * 2*3 8解法2:函数 pow pow(2,3) 8怎么找出序列中的最最值?内置函数 max 和 min l = (123, 888, 666) max(l) 8

7、88 min(l) 123怎么将字符列表转为字符串 join 法,合并序列的元素 l = Python, Circle, is, ok j = .join(l) jPython Circle is ok怎么快速打印出包含所有 ASCII 字(写和写)的字符串 string 模块的法 import string string.ascii_letters abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ怎么让字符串居中字符串中的 center 法,他会在两边动填充字符(默认为空格),让字符串居中 k = 更多精彩,请关注公众号Python知识

8、圈 k.center(50)更多精彩,请关注公众号Python知识圈 k.center(50, *)*更多精彩,请关注公众号Python知识圈*怎么在字符串中找到串 find 法,如果找到,就返回串的第个字符的索引,否则返回 -1 ss = I Love Python ss.find(I) 0 ss.find(Python) 7怎么让字符的字写,其他字写 title 法 ss = i love python ss.title() I Love Python解法2: string 模块的 capwords 法。 import string ss = i love python string.ca

9、pwords(ss) I Love Python怎么清空列表内容解法1: clear 法 l = 1, 2, 3 l.clear() l 解法2:切赋值的法 k = 1, 2, 3 k: = k 怎么计算指定的元素在列表中出现了多少次? count 法 l = i, am, ok, ok l.count(ok) 2怎么在列表末尾加其它元素 extend 法 l = 1, 2, 3 j = 4, 5, 6 l.extend(j) l1, 2, 3, 4, 5, 6两者看起来效果致 l = 1, 2, 3 j = 4, 5, 6 l + j1, 2, 3, 4, 5, 6extend 是直接在 l

10、 列表加元素,相加会成个新元素,并不会对 l 做修改。怎么查找列表中某个元素第次出现的索引,从0 开始 index 法 l = are, you, ok l.index(you) 1怎么将个对象插到列表中解法1: insert 法 num = 1, 2, 4, 5 num.insert(2, three) num1, 2, three, 4, 5解法2:切的式插 num = 1, 2, 4, 5 num2:2 = three num1, 2, three, 4, 5怎么删除列表中元素pop 法可以删除指定元素,不指定位置的话默认删除最后个元素 num = 1, 2, 4, 5 num.pop(

11、) 5 num 1, 2, 4 num.pop(1) 2 num 1, 4怎么删除列表中指定元素 remove 法 num 1, 4 num = 1, 2, 4, 5, 4 num.remove(4) num1, 2, 5, 4remove 法只会删除第次出现的元素怎么让列表按相反顺序排列?解法1: reverse 法 num = 1, 22, 45, 99, 49 num.reverse() num49, 99, 45, 22, 1解法2:切的式 num = 1, 22, 45, 99, 49 num:-149, 99, 45, 22, 1怎么表示只包含个元素的元组1个元素的元组,必须在唯的

12、元素后加上逗号,否则不是元组 t= (1) type(t) t= (1,) type(t)怎么批量替换字符串中的元素 replace 法 i love Python.replace(o, ee) i leeve Pytheen怎么把字符串按照空格进拆分 split 法,括号为空的情况下默认以空格拆分 i love Python.split() i, love, Python怎么去除字符串位的空格 strip 法 i lovePython.strip()i lovePython怎么给字典中不存在的key指定默认值 d = age: 42, name: g d.get(aa, N/A) N/A怎么

13、快速求 1 到 100 所有整数相加之和 sum(range(1, 101)5050怎么查出模块包含哪些属性? dir 法 dir(requests)ConnectTimeout, ConnectionError, DependencyWarning, FileModeWarning, HTTPError, NullHandler, PreparedRequest, ReadTimeout, Request, RequestException, RequestsDependencyWarning, Response, Session, Timeout, TooManyRedirects, UR

14、LRequired, author , author_email , build , builtins , cached , cake , copyright , description , doc , file , license , loader , name , package , path , spec , title , url , version , _check_cryptography, _internal_utils, adapters, api, auth, certs, chardet, check_compatibility, codes, compat, cookie

15、s, delete, exceptions, get, head,hooks, logging, models, options, packages, patch,post, put, request, session, sessions, status_codes, structures, urllib3, utils, warnings怎么快速查看某个模块的帮助档 range. doc range(stop) - range objectrange(start, stop, step) - range objectReturn an object that produces a seque

16、nce of integers from start (inclusive)to stop (exclusive) by step.range(i, j) produces i, i+1, i+2,., j-1.start defaults to 0, and stop is omitted!range(4) produces 0, 1, 2, 3.These are exactly the valid indices for a list of 4 elements.When step is given, it specifies the increment (or decrement).P

17、rocess finished with exit code 0怎么快速启动浏览器打开指定站使 webbrowser 库import webbrowser webbrowser.open()Python占位符怎么表示? pass 占位,当你还没想好代码块的逻辑时,你需要运代码调试其他功能,需要加占位符,不然会报错if name = 明: print(听我的)elif name = 花:pass怎么给函数编写档?在 def 语句后把注释档放在引号(单引、双引、三引都可以)就,这个档可以通过 function. doc 访问。 def square(x): 返回平值 return x*x squa

18、re. doc 返回平值怎么定义私有法?在式名称前加两个下斜杠 class Person: def name(self):print(私有法) from module import * 导时不会导私有法。怎么判断个类是否是另个类的类? issubclass 法,2 个参数,如果第个参数是第个参数的类,返回 True, 否则返回 False class A: pass class B(A): pass issubclass(B, A) True怎么从个空序列中随机选择个元素? random 中的 choice 法 import random random.choice(1, two, 3, 肆)

19、 3怎么查出通过 from xx import xx导的可以直接调的法? all 法,这个法查出的是模块下不带_的所有法,可以直接调。 import random random. all Random, seed, random, uniform, randint, choice, sample, randrange, shuffle, normalvariate, lognormvariate, expovariate, vonmisesvariate, gammavariate, triangular, gauss, betavariate, paretovariate, weibullv

20、ariate, getstate, setstate, getrandbits, choices, SystemRandom花括号 是集合还是字典?字典 type()怎么求两个集合的并集?解法1: union 法 a = 6, 7, 8 b = 7, 8, 9 a.union(b)6, 7, 8, 9解法2:使按位或运算符 a = 6, 7, 8 b = 7, 8, 9 a | b6, 7, 8, 9求两个集合的交集解法1: a = 6, 7, 8 b = 7, 8, 9 a&b8, 7解法2: intersection 法 a = 6, 7, 8 b = 7, 8, 9 ersection(

21、b)8, 7求两个集合中不重复的元素? a = 6, 7, 8 b = 7, 8, 9 a b9, 6差集指的是两个集合交集外的部分解法1: 使运算符 解法2:使 symmetric_difference 法 a = 6, 7, 8 b = 7, 8, 9 a.symmetric_difference(b)9, 6求两个集合的差集?解法1:运算符 - a = 6, 7, 8 b = 7, 8, 9 a-b6解法2: difference 法 a = 6, 7, 8 b = 7, 8, 9 a.difference(b)6从个序列中随机返回 n 个不同值的元素 random 中的 sample

22、法 import random t = (2020, 7, 3, 21, 48, 56, 4, 21, 0) random.sample(t, 2)56, 0怎么成两个数之间的随机实数 random 中的 uniform 法 random.uniform(10, 20)11.717127223103947怎么在等差数列中随机选择个数 random 中的 randrange 法 random.randrange(0, 100, 10)70怎么在件写字符? open 函数,模式 w with open(bruce.txt, w) as f:f.write(hello world)11怎么读取件内容

23、? open 函数,模式 r(默认情况下是r) with open(bruce.txt, r) as f:f.read()hello world怎么把程序打包成 exe 件 Setuptools 的 py2exe 库怎么把程序打包称 Mac 系统可运的 .app 件安装py2apppip3 install py2appcd 到Demo.py件所在的录py2applet -make-setup Demo.py 完成显示成setup.py怎么获取路径下所有录名称? sys 下的 path 法,返回的是录名称的字符串列表 sys.path, /Users/brucepk/Documents, /us

24、r/local/Cellar/python/3.7.3/Frameworks/Python.framework/Version s/3.7/lib/python37.zip, /usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Version s/3.7/lib/python3.7, /usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Version s/3.7/lib/python3.7/lib-dynload, /usr/local/lib/python3.7

25、/site- packagesPython 环境下怎么执操作系统命令? os 模块下的 system 法 os.system(cd /Users/brucepk/Desktop & mkdir aaa.txt) 256怎么将当前时间转为字符串? time 模块的 asctime 法 import time time.asctime()Sat Jul4 17:36:00 2020怎么将秒数转为时间数组 time 模块的 localtime 法 import time time.localtime(1888888888)time.struct_time(tm_year=2029, tm_mon=1

26、1, tm_mday=9, tm_hour=11, tm_min=21, tm_sec=28, tm_wday=4, tm_yday=313, tm_isdst=0)将时间元组转换为从新纪元后的秒数 time 模块的 mktime 法 time.mktime(2020, 7, 3, 21, 48, 56, 4, 21, 0)1593784136.0怎么将字符串转为时间元组 time 模块的 strptime 法 import time time.strptime(Sun Jul5 08:29:51 2020) time.struct_time(tm_year=2020, tm_mon=7, t

27、m_mday=5, tm_hour=8, tm_min=29, tm_sec=51, tm_wday=6, tm_yday=187, tm_isdst=-1)怎么随机打乱列表的顺序 time 模块的 shuffle 法 import random t = list(range(20) t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,19 random.shuffle(t) t16, 3, 13, 7, 6, 12, 17, 4, 15, 2, 5, 8, 18, 10, 9, 19, 14, 0, 1,11Py

28、thon进阶习题 st = !#$%&* codes = for s in st: codes.append(ord(s) codes33, 64, 35, 36, 37, 94, 38, 42怎么for循环实现把字符串变成Unicode码位的列表 st = !#$%&* codes = ord(s) for s in st codes33, 64, 35, 36, 37, 94, 38, 42怎么列表推导式实现把字符串变成Unicode码位的列表很明显,列表推导式实现 for 循环加 append 更效简洁,可读性更好。打印出两个列表的笛卡尔积解法1:使成器表达式产笛卡尔积,可以帮忙省掉运

29、for 循环的开销。 colors = blacks, white sizes = S, M, L for tshirt in (%s %s%(c, s) for c in colors for s in sizes): print(tshirt)blacks S blacks M blacks L white S white M white L解法2:使 itertools 的 product 成器函数。 import itertools list(duct(blacks, white, S, M, L) (blacks, S), (blacks, M), (blacks, L), (whi

30、te, S), (white, M), (white, L)可迭代对象拆包时,怎么赋值给占位符我们经常 for 循环提取元组的元素,对于我们不想接收的元素,我们可以占位符 _ 接收。 player_infos = (Kobe, 24), (James, 23), (Iverson, 3) for player_names, _ in player_infos: print(player_names)Kobe James IversonPython3 中,什么式接收不确定值或参数 *args 的式,*args 位置可以在任意位置。 a, b, *c = range(8) a, b, c(0, 1

31、, 2, 3, 4, 5, 6, 7) a, *b, c, d = range(5) a,b,c,d(0, 1, 2, 3, 4) *a, b, c, d = range(5) a,b,c,d(0, 1, 2, 3, 4)切讲对象倒序 s = basketball s:-1llabteksab怎么查看列表的 ID l = 1, 2, 3 id(l) 4507638664可变序列*=(就地乘法)后,会创建新的序列吗?不会,可变序列*=(就地乘法)后,不会创建新的序列,新元素追加到元素 上,以列表为例,我们看下新列表的id,相等的。 l = 1, 2, 3 id(l) 4507939272 l *

32、= 2 l1, 2, 3, 1, 2, 3 id(l) 4507939272不可变序列*=(就地乘法)后,会创建新的序列吗?会,不可变序列*=(就地乘法)后,会创建新的序列,以元组为例,我们看下新元组的id,是不同的。 t = (1, 2, 3) id(t) 4507902240 t *= 2 t(1, 2, 3, 1, 2, 3) id(t) 4507632648所以,对不可变序列进重复拼接操作的话,效率会很低,因为每次都有个新对 象,解释器需要把原来对象中的元素先复制到新的对象,然后再追加新的元 素。关于+=的道谜题t = (1, 2, 30, 40)t2 += 50, 60到底会发下4种

33、情况中的哪种?a. t变成(1, 2, 30, 40, 50, 60)。b.因为tuple不持对它的元素赋值,所以会抛出TypeError异常。c.以上两个都不是。d. a和b都是对的。答案是d,请看下运结果。 t = (1, 2, 30, 40) t2 += 50, 60Traceback (most recent call last):File , line 1, in t2 += 50, 60TypeError: tuple object does not support item assignment t(1, 2, 30, 40, 50, 60)sort() 和 sorted() 区

34、别l = 1, 9, 5, 8j = l.sort() k = sorted(l)通过 Python Tutor 具我们可以看到,sort() 会就地在原序列上排序,sorted() 新建了个新的序列。list.sort法会就地排序列表,也就是说不会把原列表复制份。这也是这个法的返回值是None的原因,提醒你本法不会新建个列表。在这种情况下返回None 其实是Python的个惯例:如果个函数或者法对对象进的是就地改动,那它就应该返回None,好让调者知道传的参数发了变动,且并未产新的对象。怎么通过 reverse 参数对序列进降序排列reverse 参数般放在 sorted() 法,rever

35、se 默认值为 False,序列默认升序排列,降序排列的话需要将 reverse 值设置为 True。 l = 1, 9, 5, 8 j = sorted(l, reverse=True) j9, 8, 5, 1numpy 怎么把维数组编程维数组 a = numpy.arange(12) aarray( 0,1,2,3,4,5,6,7,8,9, 10, 11) a.shape = 3, 4 aarray( 0, 4, 8,1,2,5,6,3,7,9, 10, 11)快速插元素到列表头部可以通过切指定位置插,头部就是0:0 l = 1, 2, 3, 4, 5 l0:0 = Python lP,

36、y, t, h, o, n, 1, 2, 3, 4, 5还可以通过 insert() 法插,第个参数是位置的坐标,从 0 开始。 l = 1, 2, 3, 4, 5 l.insert(0, first) lfirst, 1, 2, 3, 4, 5在第个元素之前添加个元素之类的操作是很耗时的,因为这些操作会牵扯到移 动列表的所有元素。有没有更效的法?双向队列 deque 类。deque 类可以指定这个队列的,如果这个队列满员了,还可以从反向端删除过期的元素,然后在尾端添加新的元素。 from collections import deque dp = deque(range(10), maxle

37、n=15) dpdeque(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, maxlen=15) dp.appendleft(-1) dpdeque(-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, maxlen=15)字典的创建法Python中,你知道怎么创建字典吗a = dict(one=1, two=2, three=3)b = one: 1, two: 2, three: 3c = dict(zip(one, two, three, 1, 2, 3)d = dict(two, 2), (one, 1), (three, 3)e = dict(one: 1,

38、 two: 2, three: 3)字典推导(dictcomp)构建字典dial_code = (86, China),(91, India),(1, US),(55, Brazil),(7, Russia),(81, Japan)coutry_code = coutry:code for code, coutry in dial_code通过次查询给字典不存的键赋予新值setdefault法,只查询次,效果更快coutry_code = China: 86, India: 91, US: 1, Brazil: 55,Russia: 7, Japan: 81coutry_code.setdef

39、ault(china, ).append(86)如果下这种法,需要查询三次if china not in coutry_code: coutry_codechina = coutry_codechina.append(86)print(coutry_code)像k in my_dict.keys()这种操作在Python 3中是很快的,且即便映射类型对象很庞也没关系。这是因为dict.keys()的返回值是个“视图”。视图就像个集合,且跟字典类似的是,在视图查找个元素的速度很快。在“Dictionary view objects”可以找到关于这个细节的档。Python 2的dict.keys(

40、)返回的是个列表,因此虽然上的法仍然是正确的,它在处理体积的对象的时候效率 不会太,因为k in my_list操作需要扫描整个列表。怎么统计字符串中元素出现的个数?collections中的Counter法统计,返回的结果是对应元素和个数形成的键值对。ct = collections.Counter(adcfadcfgbsdcv)结果:Counter(d: 3, c: 3, a: 2, f: 2, g: 1, b: 1, s: 1,v: 1)怎么统计出排名前n的元素?most_common法,参数填n,如前两名的话ct.most_common(2)结果(d, 3), (c, 3)列表去重 l

41、 = A, B, A, B list(set(l) A, B求m中元素在n中出现的次数基础解法: m = A, B, C n = B, C, D found = 0 for i in m:if i in n:found += 1 found 2级解法: m = A, B, C n = B, C, D len(m & n) 2如果m和n不是集合的话,直接转换后再取交集 m = A, B, C n = B, C, D len(set(m) & srt(n) 2级解法的另种写法: m = A, B, C n = B, C, D len(set(m).intersection(n) 2 from un

42、icodedata import name chr(i) for i in range(32, 256) if SIGN in name(chr(i), ), %, #, +, , , , 新建个Latin-1字符集合,该集合的每个字符的Unicode名字都有“SIGN”这个单词,集合推导式完成。查询系统默认编码式 fp = open(test.txt, w) fp.encoding cp936修改编码式 fp = open(test.txt, w, encoding=utf-8) fp.encoding utf-8递归实现阶乘def factorial(n): :return n!retur

43、n 1 if n all()的输出结果是多少?True any()的输出结果是多少?False怎么判断对象是否可被调? Python 内置的函数 callable() 判断 callable(obj) for obj in (abs, str, 2) True, True, False怎么列出对象的所有属性使 dir 函数来或者对象的所有属性。 import requests dir(requests)ConnectTimeout, ConnectionError, DependencyWarning, FileModeWarning, HTTPError, NullHandler, Prep

44、aredRequest, ReadTimeout, Request, RequestException, RequestsDependencyWarning, Response, Session, Timeout, TooManyRedirects, URLRequired, author , author_email , build , builtins , cached , cake , copyright , description , doc , file , license , loader , name , package , path , spec , title , url ,

45、 version , _check_cryptography, _internal_utils, adapters, api, auth, certs, chardet, check_compatibility, codes, compat, cookies, cryptography_version, delete, exceptions, get, head, hooks, logging, models,options, packages, patch, post, put, pyopenssl, request, session, sessions, status_codes, str

46、uctures, urllib3, utils, warnings怎么得到类的实例没有函数有的属性列表创建个空的户定义的类和空的函数,计算差集,让后排序。 class C: pass obj = C() def func(): pass sorted(set(dir(func) - set(dir(obj) annotations , call , closure , code , defaults , get , globals , kwdefaults , name , qualname 函数中,不想持数量不定的定位参数,但是想持仅限关键字参数,参数怎么定义那就要在关键字参数前加个 *。

47、def f(a, *, b): return a, b f(1, b=2) (1, 2)这样的话,b 参数强制必须传实参,否则会报错。怎么给函数参数和返回值注解代码执时,注解不会做任何处理,只是存储在函数的 annotations 属性(个字典)中。def function(text: str, max_len: int 0 = 80) - str:函数声明中的各个参数可以在:之后增加注解表达式。如果参数有默认值,注解放在参数名和=号之间。如果想注解返回值,在)和函数声明末尾的:之间添加-和个表 达式。Python对注解所做的唯的事情是,把它们存储在函数的 annotations 属性。仅此已

48、,Python不做检查、不做强制、不做验证,什么操作都不做。换句话说, 注解对Python解释器没有任何意义。注解只是元数据,可以供IDE、框架和装饰器 等具使不使递归,怎么效写出阶乘表达式通过 reduce 和 operator.mul 函数计算阶乘 from functools import reduce from operator import mul def fact(n):return reduce(mul, range(1, n+1) fact(5) 120Python什么时候执装饰器?函数装饰器在导模块时即执,被装饰的函数只在明确调时运。这突 出了Python程序员所说的导时和运

49、时之间的区别。判断下语句执是否会报错? b = 3 def fun(a): print(a) print(b)b = 7 fun(2)会报错,Python编译函数的定义体时,先做了个判断,那就是 b 是局部变量,因为在函数中给它赋值了。但是执 print(b) 时,往上找不到 b 的局部值,所以会报错。Python 设计如此,Python 不要求声明变量,但是假定在函数定义体中赋值的变量是局部变量。2Traceback (most recent call last):File , line 1, in fun(2)File , line 3, in funprint(b)UnboundLoca

50、lError: local variable b referenced before assignment怎么强制把函数中局部变量变成全局变量 global 声明 b = 3 def fun(a): global b print(a) print(b)b = 7 b = 5 fun(2) 25闭包中,怎么对数字、字符串、元组等不可变元素更新我们知道,在闭包中,声明的变量是局部变量,局部变量改变的话会报错。 def make_averager(): count = 0total = 0def averager (new_value): count += 1total += new_valuere

51、turn total / countreturn averager avg = make_averager() avg(10)Traceback (most recent call last):File , line 1, in avg(10)File , line 5, in averager count += 1UnboundLocalError: local variable count referenced before assignment为了解决这个问题,Python 3引了 nonlocal 声明。它的作是把变量标记为由变量 def make_averager(): count

52、= 0total = 0def averager (new_value): nonlocal count, total count += 1total += new_valuereturn total / countreturn averager avg = make_averager() avg(10) 10.0Python2 怎么解决访问外部变量报错的问题测试代码运的时间 time 模块的 perf_counter 法。 t0 = time.perf_counter() for i in range(10000): pass t1 = time.perf_counter() t1-t0或者

53、,直接 time.time() import time t0 = time.time() for i in range(10000): pass t1 = time.time() t1-t0怎么优化递归算法,减少执时间使装饰器 functools.lru_cache() 缓存数据 import functools functools.lru_cache()def fibonacci(n): if n fibonacci(6) 8较两个对象得值(对象中保存的数据)是否相等 = 运算符较 a = 1, 2, 3 b = 1, 2, 3 a=bTrue较两个对象得内存地址 id 是否相等 is 较,ID定是唯的数值标注,且在对象的命周期中绝不会变 a = 1, 2, 3 b = 1, 2, 3 a is bFalse怎么格式化显示对象?可以内置的 format()函数和str.format()法。format(my_obj, format_spec)的第个参数,或者str.format()法的格式字符串,代换字段中冒号后的部分。 from datetime import datetime now = datetime.now() format(now, %

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论