初学者必知的Python中优雅的用法 - 菜鸟教程

文章推薦指數: 80 %
投票人數:10人

如果我们除以一个整数,即使结果是一个浮点数,Python 2(校注,这里我添上了版本号)依旧会给我们一个整数。

为了规避这个问题,我们需要这样做: result = 1.0/2. 菜鸟教程--学的不仅是技术,更是梦想! 首页 笔记首页 Android ES6教程 排序算法 Hadoop Zookeeper Verilog 编程技术 程序员人生 首页 Android ES6 逗乐 Search 初学者必知的Python中优雅的用法 分类编程技术 枚举 之前我们这样操作: i=0 foriteminiterable: printi,item i+=1 现在我们这样操作: fori,iteminenumerate(iterable): printi,item enumerate函数还可以接收第二个参数。

就像下面这样: >>>list(enumerate('abc')) [(0,'a'),(1,'b'),(2,'c')] >>>list(enumerate('abc',1)) [(1,'a'),(2,'b'),(3,'c')] 字典/集合解析 你也许知道如何进行列表解析,但是可能不知道字典/集合解析。

它们简单易用且高效。

就像下面这个例子: my_dict={i:i*iforiinxrange(100)} my_set={i*15foriinxrange(100)} #Thereisonlyadifferenceof':'inboth #两者的区别在于字典推导中有冒号 强制浮点除法 如果我们除以一个整数,即使结果是一个浮点数,Python2(校注,这里我添上了版本号)依旧会给我们一个整数。

为了规避这个问题,我们需要这样做: result=1.0/2 但是现在有一种别的方法可以解决这个问题,甚至在之前我都没有意识到有这种方法存在。

你可以进行如下操作: from__future__importdivision result=1/2 #print(result) #0.5 瞧,现在你不需要在数据上附件".0"来获得准确答案了。

需要注意的是这个窍门只适用于Python2。

在Python3中就不需要进行import操作了,因为它已经默认进行import了。

简单服务器 你是否想要快速方便的共享某个目录下的文件呢?你可以这么做: #Python2 python-mSimpleHTTPServer #Python3 python3-mhttp.server 这样会为启动一个服务器。

对Python表达式求值 我们都知道eval函数,但是我们知道literal_eval函数么?也许很多人都不知道吧。

可以用这种操作: importast my_list=ast.literal_eval(expr) 来代替以下这种操作: expr="[1,2,3]" my_list=eval(expr) 我相信对于大多数人来说这种形式是第一次看见,但是实际上这个在Python中已经存在很长时间了。

脚本分析 你可以很容易的通过运行以下代码进行脚本分析: python-mcProfilemy_script.py 对象自检 在Python中你可以通过dir()函数来检查对象。

正如下面这个例子: >>>foo=[1,2,3,4] >>>dir(foo) ['__add__','__class__','__contains__', '__delattr__','__delitem__','__delslice__',..., 'extend','index','insert','pop','remove', 'reverse','sort'] 调试脚本 你可以很方便的通过pdb模块在你的脚本中设置断点。

正如下面这个例子: importpdb pdb.set_trace() 你可以在脚本的任何地方加入pdb.set_trace(),该函数会在那个位置设置一个断点。

if结构简化 如果你需要检查几个数值你可以用以下方法: ifnin[1,4,5,6]: 来替代下面这个方式: ifn==1orn==4orn==5orn==6: 字符串/数列逆序 你可以用以下方法快速逆序排列数列: >>>a=[1,2,3,4] >>>a[::-1] [4,3,2,1] #Thiscreatesanewreversedlist. #Ifyouwanttoreversealistinplaceyoucando: a.reverse() 这总方式也同样适用于字符串的逆序: >>>foo="yasoob" >>>foo[::-1] 'boosay' 优美地打印 你可以通过以下方式对字典和数列进行优美地打印: frompprintimportpprint pprint(my_dict) 这种方式对于字典打印更加高效。

此外,如果你想要漂亮的将文件中的json文档打印出来,你可以用以下这种方式: catfile.json|python-mjson.tool 三元运算 三元运算是if-else语句的快捷操作,也被称为条件运算。

这里有几个例子可以供你参考,它们可以让你的代码更加紧凑,更加美观。

[on_true]if[expression]else[on_false] x,y=50,25 small=xifx



請為這篇文章評分?