你需要改掉的Python开发习惯(一)
1、手动字符串格式化:
def manual_string_formatting(name, fans):if fans> 1000:print("Wow " + name + "! you have " + str(fans) + " fans!")else:print("Haha " + name + " that's not many fans")
使用f字符串具有更好可读性,易于编写代码。
def manual_string_formatting(name, fans):if fans> 1000:# print("Wow " + name + "! you have " + str(fans) + " fans!")print(f"Wow {name}! you have {fans} fans!")else:# print("Haha " + name + " that's not many fans")print(f"Haha {name} that's not many fans")
2、手动关闭文件:
def manually_close_file(filename):f = open(filename, "W")f.write("hello\n") #如果这个地方失败了,就会抛出异常,那下面关闭文件的操作就永远都不会执行。f.close()
如果wirte接口调用失败,抛出了异常,那close接口就永远都不会被调用。而如果使用with语句,可以确保抛出异常了也能关闭文件。
def manually_close_file(filename):with open(filename, "W") as f:f.write("hello\n")
3、同第二条,try-finally也可以做同样的处理
def internet_connect(host, port):s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:s.connect((host, port))s.sendall(b'Hello, world')finally:s.close()
上面的代码其实没有问题,其他语言开发也是这么用的,但是我建议用with语句,它会自动调用close。
def internet_connect(host, port):with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:s.connect((host, port))s.sendall(b'Hello, world')
4、使用正确的异常捕获
def catch_exception():while True:try:num = input("Input a number: ")breakexcept:print("pls try again!")
上面的代码是在不停的接收一个从键盘输入的数字,但如果不小心输入ctrl+c,也会被异常捕获。最好的方式是使用正确的异常捕获类型。
def catch_exception():while True:try:num = input("Input a number: ")breakexcept ValueError: #这里像ctrl+c的异常就不会被捕获print("pls try again!")
5、幂的操作符
def exponentiation(x, p):return x ^ p
其实它是一个按位操作,正确的幂的操作符如下
def exponentiation(x, p):return x ** p
你需要改掉的Python开发习惯(一)相关推荐
- 你需要改掉的Python开发习惯(五)
1.使用import *: form itertools import *count() 使用"import *"会和带有变量的命名空间重合,使程序报错,建议需要使用什么接口就im ...
- 你需要改掉的Python开发习惯(三)
1.对于用if bool 和 if len做判断,其实是很多余的. def function(x):if bool(x):passif len(x) != 0:pass 可以直接用对x进行判断就行: ...
- 你需要改掉的Python开发习惯(四)
1.怎么去创建自己的索引计数器变量: def create_index_counter():l = [1, 2, 3]i = 0for x in l:# do some operationsi += ...
- 你需要改掉的Python开发习惯(二)
1.使用默认可变参数的使用需要注意的地方: def append(n, l=[]):l.append(n)return lprint(append(0)) # [0] print(append(1)) ...
- 对比了上百个python程序员的开发习惯,这10个方法最节省时间!
前言 观察了100个python的开发习惯,从中做出对比,精选初10个最节省时间的方法,在此送上: 为以后不管是学习还是工作中提高效率 Python 是一个美丽的语言,可以激发用户对它的爱.所以如果你 ...
- vscode使用教程python-用VScode配置Python开发环境
前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...
- vs code python_用VScode配置Python开发环境
前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...
- vscode python环境配置_用VScode配置Python开发环境
前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...
- 用VScode配置Python开发环境引用
引用:用VScode配置Python开发环境 - 简书 前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生 ...
最新文章
- 【Zookeeper进阶】大白话解释Zookeeper的选举机制
- VMware vSphere
- [Enterprise Library]Configuration类设计分析
- 一起用ipython
- 【Canal】互联网背景下有哪些数据同步需求和解决方案?看完我知道了!!
- statusbar 尺寸 显示图标_移动端页面设计规范尺寸大起底 - 椰树飘香
- mysql多大_洞悉MySQL底层架构:游走在缓冲与磁盘之间
- Weblogic 10.3.2 安装过程中出现致命错误的处理方法
- 改开源项目的一些心得
- 人生第一个深入理解的DFS题 HDU 1016
- 安装k8s,高可用3 master安装脚本
- 关于如何提高代码可测试性的一些看法
- html2张图片垂直居中,任意图片实现垂直居中的三种方法(兼容性还不错)
- oracle ogg trail 空间,查找OGG trail file中是否存在相关记录的命令
- Java平台划分-J2EE,J2SE,J2ME
- 单双面打印价格一样吗_正式合同应该打印单面还是双面?
- 数据库锁机制和CAS概念
- 微控制器STM32L412RBT6,STM32L412CBU6(128KB)MCU+FPU,规格
- 微信公众号通过a标签打开小程序
- Linux printf Class.this git rebase Persistent Bugger