津爱改装车|你在滥用Python吗?初学者常会遇到的5个情景
全文共3398字 , 预计学习时长9分钟
6年前 , 在我掌握了一系列Java之后接触到Python时 , 经常发现自己在写Python代码时脑子里还想着Java 。 作为一个新手 , 我没有充分利用Python的优点 , 甚至在某些情况下 , 我滥用了它 。
现在 , 我仍然看到一些初学者在没有先花时间阅读最佳实践和建议的情况下就开始用Python写代码 。 为解决这个问题 , 我列出了下面5个滥用Python的情景 , 并给出了相关改进建议 。
1.使用列表时
列表允许存储各种数据类型的元素且不限制大小 , 尽管这种灵活性使列表成为收集数据的首选 , 但实际上仍有一些使用和不使用它的最佳实践情景 。
思考下面的物品列表 。 这个列表并不包含单一性质的项目 , 开发人员无法确定该列表是否包含房屋部件、尺寸或其他东西 , 因此他应该分别处理不同的项目:
list_of_things=['Door',2,'Window',True,[2.3,1.4])]思考下面的水果列表和分数列表 。 从前两个项目中 , 你很容易推断出第一个列表会始终包含水果名字 , 而第二个列表始终包含分数值:
list_of_fruits=['apple','orange','pear','cherry','banana']list_of_scores=[80,98,50,55,100]在存储具有不同含义或数据类型的项目时 , 使用元组更合适 。 元组不具备在不创建新对象的情况下 , 提供存储不受限项目的灵活性(因为元组是不可变的) 。
2.迭代连接字符串时
假设你想在一个字符串中生成整个字母表 。 因为字符串是不可变对象 , 所以每当使用“+”运算符连接字符串值时 , 就会得到一个新的对象 。
one_line_alphabet=''forletter_indexinrange(ord('a'),ord('z')):one_line_alphabet+=chr(letter_index)Join函数是连接字符串的首选方法 。 使用join函数可将计算时间缩短约3倍 。 在我做的一项测试中 , 迭代连接100万个字符串值耗时0.135秒 , 若使用join()函数则只需0.044秒 。
small_letters=[chr(i)foriinrange(ord('a'),ord('z')+1)]single_line_alphabet=''.join(small_letters)因此 , 需要连接字符串列表时请使用join函数 。 若使用join函数连接几个字符串 , 这并不会直观感受到性能的差异 。 若要连接几个字符串值 , 请使用.format而不是“+”运算符 。 例如:
name='John'surname='Doe'full_name='{name}{surname}'.format(name=name,surname=surname)3.读写文件时
若要使用Python读写文件 , 首先需要用内置的open函数打开文件 。 打开文件 , 读取或写入内容以及关闭文件 。 进行操作时 , 可能会出现一些问题 , 比如忘记关闭文件和异常处理失败 。
推荐阅读
- 津爱改装车|首部5G手机于10月份亮相!,苹果官宣:iPhone12延期几周发布
- 津爱改装车|伴我回家。,北斗导航
- 智能手机那点事|内行人较为喜爱,这四款你在用哪款?,几乎无差评的华为手机
- 津爱改装车|可能是地球已知最古老生物,科学家从海床中发现一亿年历史微生物
- Python|你在滥用Python吗?初学者常会遇到的5个情景
- 华为|送一单外卖赚4毛5,你在美团付的配送费,在帮这家公司上市?
- 大卫聊科技|你在其中吗?,马云再次预测!这3类工作很可能消失
- 侃有声有色|看你在古希腊的神中是哪个?,趣味测试:选择一个下面的能量球
- 科技达人说|让你在股市中失去理智,故事如何像病毒一样
- 吖有科技|用起来就越爽,目前充电最快的五款手机你在用吗?,手机充电越快