【经验分享】30个使用Python编程的实践、建议和技巧
2020年,你立了什么新的 Flag?无论如何,只要在学编程,在用Python,我们都是一家人!我们先为大家准备 30 个非常优秀的 Python 实践技巧。希望这些诀窍能在实际工作中帮助大家,并且学到一些有用的知识。
1、使用 python 3
由于官方从2020年1月1日起就停止了对python2.7的更新支持,因此本教程的大部分例子都只能在python 3环境下运行。如果你仍然在使用2.7版本,请先升级到python 3。
2、检查并使用满足需求的最小python版本
你可以在代码中检查Python 版本,以确保你的代码使用者没有使用不兼容的版本运行脚本。使用以下代码进行简单的检查:
if not sys.version_info > (2, 7): # berate your user for running a 10 year# python version
elif not sys.version_info >= (3, 5): # Kindly tell your user (s)he needs to upgrade# because you're using 3.5 features
3、使用IPython
IPython 基本上是一个增强的shell,仅仅是为了自动补全功能,IPython也是值得使用的,但其实它还有更多作用,包括内建的Magic命令,这里列举了一些:
%cd:改变当前的工作目录
%edit:打开编辑器并在关闭编辑器后执行键入的代码
%env:显示当前的环境变量
%pip:install [pkgs] 在不离开交互式shell的情况下安装功能包
%time 和 %timeit:类似于python中的time模块,可以为代码运行计时
IPython的另一个有用功能是可以使用之前任意一行代码的输出,代码的输入和输入实际上都是对象,例如可以通过 Out[3] 来使用第三次运行代码的输出对象。安装IPython的指令是:
pip3 install ipython
4.列表解析式
列表解析式可以用来替换通过loop来填充列表的丑陋方法,其基本语法是:
[ expression for item in list if conditional ]
一个非常基础的例子,用于生成包含连续数字的列表:
mylist = [i for i in range(10)] print(mylist) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
由于可以使用表达式,因此可以通过更复杂的数学方法来生成列表:
squares = [x**2 for x in range(10)] print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
甚至也可以调用外部函数:
def some_function(a): return (a + 5) / 2 my_formula = [some_function(i) for i in range(10)] print(my_formula) # [2, 3, 3, 4, 4, 5, 5, 6, 6, 7]
最后,也可以用if作为生成条件来对列表进行过滤。在下面的例子中,只有偶数被保留:
filtered = [i for i in range(20) if i%2==0] print(filtered) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
5、检查对象的内存占用情况
通过sys.getsizeof(object)命令可以查看任何对象的内存使用情况:
import sysmylist = range(0, 10000) print(sys.getsizeof(mylist)) # 48
这是因为range函数返回的是一个类对象,这个类对象表现为一个列表。因此使用range函数比使用实际的包含一万个数字的列表要更加节省内存。可以通过上面第四条中提到的列表解析式创建一个同样大小的实际列表:
import sysmyreallist = [x for x in range(0, 10000)] print(sys.getsizeof(myreallist)) # 87632
实际内存占用87632字节,远高于通过range函数生成的对象。
6、返回多个值
Pyhon中的函数都可以返回多个变量,而不需要字典,列表或者类作为返回对象。方法如下:
def get_user(id): # fetch user from database# ....return name, birthdatename, birthdate = get_user(4)
对于有限数量的返回值,这是可以的。但是任何超过3个值的内容都应该放到一个(data)类中。
7、使用 data 类
从3.7版本开始,python提供了 data 类。与常规类或其他替代方法(如返回多个值或字典)相比,有以下几个优点:
数据类需要至少一定数量的代码
可以通过 eq 方法来比较不同的data类对象
可以 repr 通过很容易地打印一个数据类来进行调试
数据类需要类型提示,因此减少了 bug
一个data类的例子如下:
from dataclasses import dataclass@dataclass class Card:rank: strsuit: strcard = Card("Q", "hearts") print(card == card) # Trueprint(card.rank) # 'Q'print(card)
Card(rank='Q', suit='hearts')
8、就地变量交换
一个简洁的技巧,可以节省几行代码:
a = 1 b = 2 a, b = b, a print (a) # 2
print (b) # 1
9、字典合并(Python 3.5+)
从python 3.5开始,字典的合并变得更简单了:
dict1 = { 'a': 1, 'b': 2 }
dict2 = { 'b': 3, 'c': 4 }
merged = { **dict1, **dict2 } print (merged) # {'a': 1, 'b': 3, 'c': 4}
10、将字符串转化为标题格式
在标题格式中,非介词的首字母会大写。可以通过.title()方法实现:
mystring = "10 awesome python tricks"
print(mystring.title()) '10 Awesome Python Tricks'
11、将字符串分离并存储到列表中
可以按任意字符来分割字符串,并存储到列表中,例如按空格来分割字符串:
mystring = "The quick brown fox" mylist = mystring.split(' ') print(mylist) # ['The', 'quick', 'brown', 'fox']
12、将列表中的字符串合并到一起
与上一条的功能正好相反,从列表中创建字符串,并在两个单词间插入空格:
mylist = ['The', 'quick', 'brown', 'fox']
mystring = " ".join(mylist) print(mystring) # 'The quick brown fox'
也许你会疑惑,为什么不使用mylist.join(" ")呢?归根结底,String.join()函数不仅可以连接列表,还可以连接任何可迭代的列表。将它放在String中会阻止在多个位置实现相同的功能。
13、Emoji
这些表情具有很强的表达能力,能给人留下深刻印象。更重要的是,这在分析社交媒体数据时尤其有用。首先通过以下命令安装emoji模块:
pip3 install emoji
可以按照以下方法使用表情:
import emoji
result = emoji.emojize('Python is :thumbs_up:') print(result) # 'Python is
【经验分享】30个使用Python编程的实践、建议和技巧相关推荐
- 如何系统地自学python~知乎_经验分享 | 如何系统地自学 Python?
是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓? 幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间 ...
- 学习Python编程的11个入门技巧
We are so excited that you have decided to embark on the journey of learning Python! One of the most ...
- python编程的基本方法有哪些_学习Python编程的11个入门技巧
我们非常激动,您决定开始学习Python的旅程!我们从读者那里收到的最常见问题之一是"学习Python的最佳方法是什么?" 我相信学习任何编程语言的第一步就是要确保您了解如何学习. ...
- python编程优化_掌握六大技巧,让python编程健步如飞!
有人跟我抱怨说python太慢了,然后我就将python健步如飞的六大技巧传授给他,结果让他惊呆了,你也想知道这个秘诀吗?这就告诉你: Python是一门优秀的语言,它能让你在短时间内通过极少量代码就 ...
- 如何使用python编程画图_建议收藏-超级详细的python画图教程
同切圆 视频中会详细介绍画图各种命令的用法,如果你学过scratch等图形化编程,想过渡到python编程,建议从这个视频入手.当然如果你打算从零开始学习python编程,也可以从这个视频入手,它的语 ...
- 15年经验分享:40个改变编程技能的小技巧
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法那些事 编程如何节省更多的时间,犯更少的错误 ...
- 全栈工程师15年经验分享:40个改变编程技能的小技巧
白交 发自 凹非寺 量子位 报道 | 公众号 QbitAI 编程如何节省更多的时间,犯更少的错误? 最近,这样一份「心得」火了.这位名叫Kesk Noren的软件工程师在Medium上分享了一篇博文 ...
- 30岁学python编程_朋友问我,你都30岁了学编程来得及吗
导语:"种一颗树最好的时间是十年前,其次是现在". 去年,A君看我跟一堆代码较劲的时候,忍不住问我:你都30岁了,学编程来得及吗? 我想了半天,最后用了一句知乎上面看到的话来回答: ...
- 30岁学python编程晚吗_已经30岁了,现在学编程还晚不晚
很多人都在纠结一个问题:现在学编程,晚么? 我要告诉大家的是,学习编程,任何时候都不晚. 咱们首先说工资,我一直认为,不看工资的岗位纯属耍流氓.如果你关注每年的薪资排行榜,金融和 IT 行业连续多年稳 ...
最新文章
- 瞧瞧,这样的代码才叫Pythonic
- linux 移动重命名 mv 命令简介
- jsf登录注册页面_您将在下一个项目中使用JSF吗?
- 【设计模式】—— 原型模式Prototype
- JavaScript 函数定义方式
- oracle数据库实例,数据库的理解
- [翻译]超炫列表动画的实现
- 基类显式继承接口,类继承基类时又继承同一接口,引发接口方法混乱(显式继承接口的弊端)...
- VS2017社区版离线下载办法
- 怎么用dos系统进入服务器,怎么用DOS命令方式启动系统服务
- 三相桥式全控整流电路simulink仿真_三相二极管桥式整流电路分析与仿真
- 【附白皮书下载】专家黄正杰:从微笑曲线出发,思考制造业数字化转型方向
- 创建套接字socket函数的详解(sock_stream和sock_dgram的分析)
- C语言自然数各自出现的次数,2010年计算机等考二级C语言上机考试练习(1)
- php发送邮件二种方法 php使用smtp发送邮件
- 2021年美容师(中级)考试资料及美容师(中级)新版试题
- P1217 [USACO1.5]回文质数 Prime Palindromes
- windows 录屏软件
- 句柄数、连接数、线程数等查询
- 数字电路和模拟电路-1基础知识
热门文章
- 转:SWOT分析法与职业生涯规划
- 优漫动游:如何解决Adobe XD无法拖入图片?
- Word打字很卡顿 Office打字时反应慢 延迟 Excel输入迟钝 PPT卡死的终极解决办法大全(24种方法)
- 电视直播加点播,800+直播频道全网影视资源
- ubuntu 18.04 解决网易云音乐图标不能打开的问题
- 鸿蒙os手机有哪些,华为正式发布鸿蒙手机操作系统 鸿蒙操作系统是什么?鸿蒙适用机型首曝光...
- 中央农村工作会议释放重要信号,AI 技术助力农业的十种路径,未来可期
- 轻松Git与Github入门
- 一个主机多显示器的操作方法
- 抖音视频上传 参数不合法 video/upload/