30个Python最佳实践和技巧你值得拥有~.docx

上传人:A*** 文档编号:142725078 上传时间:2020-08-22 格式:DOCX 页数:25 大小:2.56MB
返回 下载 相关 举报
30个Python最佳实践和技巧你值得拥有~.docx_第1页
第1页 / 共25页
30个Python最佳实践和技巧你值得拥有~.docx_第2页
第2页 / 共25页
30个Python最佳实践和技巧你值得拥有~.docx_第3页
第3页 / 共25页
30个Python最佳实践和技巧你值得拥有~.docx_第4页
第4页 / 共25页
30个Python最佳实践和技巧你值得拥有~.docx_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《30个Python最佳实践和技巧你值得拥有~.docx》由会员分享,可在线阅读,更多相关《30个Python最佳实践和技巧你值得拥有~.docx(25页珍藏版)》请在金锄头文库上搜索。

1、30个Python最佳实践和技巧,你值得拥有全文共8869字,预计学习时长26分钟来源:Pexels1.使用Python3温馨提示:官方宣布自2020年1月一日起将不再支持Python2。这份指南里的大多数例子也只在Python3中适用。如果您还在使用Python2.7,赶快更新吧。如果您使用的是苹果电脑,可以使用Homebrew轻松升级。2. 检查Python的最低要求版本您可以直接使用代码来查看Python版本,确保将来不会出现脚本和Python版本不兼容的情况发生。请看示例:ifnot sys.version_info (2, 7): # berate your user for run

2、ning a 10 year # python versionelifnot sys.version_info = (3, 5): # Kindly tell your user (s)he needs to upgrade # because youre using 3.5 featuresviewrawcheck_python_version.pyhosted with byGitHub3. 使用IPython作者截图实际上,IPython是一个增强的shell。自动完成功能已足以令人惊叹,但它还有更多功能。我非常喜欢内置的魔术命令。以下是一些例子: %cd -用于更改当前工作目录 编辑-

3、打开编辑器,并执行您在关闭编辑器后键入的代码%env 展示当前环境变量%pip install pkgs 在交互环境下安装包%time和%timeit 计算Python代码的执行时间另一个有用的功能是引用前一个命令的输出。In和Out是实际的对象。您可以通过使用Out3来进行第三个命令的输出。下载Python命令安装Ipython:pip3install ipython4. 列表推导列表推导可以替换丑陋的用于填充列表的for循环。列表推导的基本语法是:expression for item in list if conditional 这是一个最基本的例子,使用数字序列填充列表:mylist

4、= i for i inrange(10)print(mylist)# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9viewrawlist_comprehensions_1.pyhostedwith byGitHub同时你还可以用这种表达进行数学运算:squares = x*2for x inrange(10)print(squares)# 0, 1, 4, 9, 16, 25, 36, 49, 64, 81viewrawlist_comprehensions_2.pyhostedwith byGitHub甚至额外创建一个新函数:defsome_function(a): retur

5、n (a +5) /2my_formula = some_function(i) for i inrange(10)print(my_formula)# 2, 3, 3, 4, 4, 5, 5, 6, 6, 7viewrawlist_comprehensions_3.pyhostedwith byGitHub最终,你可以使用“if”来过滤列表。在这个例子中,只保留了能被2整除的值filtered = i for i inrange(20) if i%2=0print(filtered)# 0, 2, 4, 6, 8, 10, 12, 14, 16, 18viewrawlist_comprehe

6、nsions_4.pyhosted with byGitHub5.检查对象的内存使用使用 sys.getsizeof(),可以检查对象的记忆内存:import sysmylist =range(0, 10000)print(sys.getsizeof(mylist)# 48viewrawcheck_memory_usage_1.pyhostedwith byGitHub为什么这样一个巨大的列表仅占48字节内存?这是因为range函数返回的类只表现为一个列表。范围比使用实际的数字列表更节省内存。你可以自己使用列表推导创建同一范围内的实际数字列表:import sysmyreallist = x

7、for x inrange(0, 10000)print(sys.getsizeof(myreallist)# 87632viewrawcheck_memory_usage_2.pyhosted with byGitHub6. 返回多个值来源:PexelsPython中的函数可以返回多个变量,而无需字典、列表或类。它的工作原理如下:defget_user(id): # fetch user from database # . return name, birthdatename, birthdate = get_user(4)viewrawreturn_multiple_variables.p

8、yhosted with byGitHub对于有限数量的返回值,这是可以的。但是任何超过3个值的内容都应该放到一个(data)类中。7. 使用数据类从3.7版开始,Python提供了数据类。与常规类或其他替代方法(如返回多个值或字典)相比,有几个优点: 一个数据类需要最少的代码 可以比较数据类,因为已经实现了_eq_ 您以轻易打印一个数据类进行调试,因为也实现了_repr_ 数据类需要类型提示,减少了出错几率下面是一个数据类的例子:from dataclasses import dataclassdataclassclassCard: rank: str suit: strcard = Car

9、d(Q, hearts)print(card = card)# Trueprint(card.rank)# Qprint(card)Card(rank=Q,suit=heartsviewrawdataclass.pyhosted with byGitHub点击这里查看高阶指南。8. 变量交换一个小技巧就可以省略数行代码。a =1b =2a, b = b, aprint (a)# 2print (b)# 1viewrawin_place_variable_swapping.pyhosted with byGitHub9. 合并字典(Python3.5+)自Python3.5 以来,合并字典更为简

10、便dict1 = a: 1, b: 2 dict2 = b: 3, c: 4 merged = *dict1, *dict2 print (merged)# a: 1, b: 3, c: 4viewrawmerging_dicts.pyhostedwith byGitHub如果有重叠的值,来自第一个字典的值将被覆盖。10. 标题大小写这只是其中一种有趣的玩法:mystring =10 awesome python tricksprint(mystring.title()10 Awesome Python Tricksviewrawstring_to_titlecase.pyhosted wit

11、h byGitHub11. 切割字符串至列表来源:Pexels可以将字符串拆分为字符串列表。在下例中,根据空格切割mystring =The quick brown foxmylist = mystring.split( )print(mylist)# The, quick, brown, foxviewrawstring_to_list.pyhosted with byGitHub12. 从字符串列表中创建一个字符串与上一个技巧正好相反,在本例中,从字符串列表中创建一个字符串,并在单词间输入空格:mylist = The, quick, brown, foxmystring = .join(

12、mylist)print(mystring)# The quick brown foxviewrawlist_to_string.pyhostedwith byGitHub你或许在想为什么不用mylist.join( ),好问题!归根结底,String.join()函数不仅可以连接列表,还可以连接任何可迭代的列表。将它放在String中会阻止在多个位置实现相同的功能。13. 表情表情要么是欢喜,要么是讨厌,这依表情而定。更重要的是,这在分析社交媒体数据时尤其有用。首先,下载表情模块pip3install emoji下载完之后,就可以按如下操作:import emojiresult = emoj

13、i.emojize(Python is :thumbs_up:)print(result)# Python is ?# You can also reverse this:result = emoji.demojize(Python is ?)print(result)# Python is :thumbs_up:viewrawemoji.pyhosted with byGitHub访问表情包页面查看更多描述和示例14. 制作列表切片列表切片的句法:astart:stop:stepStart,stop和step都是可选项. 如果未设置,默认值会是Start值为0End为字符串末尾step值为1以下是一个例子:# We can easily create a new list from# the first two elements of a list:first_two = 1, 2, 3, 4, 50:2print(first_two)# 1, 2# And if we use a step value of 2,# we can

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号