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开发习惯(一)相关推荐

  1. 你需要改掉的Python开发习惯(五)

    1.使用import *: form itertools import *count() 使用"import *"会和带有变量的命名空间重合,使程序报错,建议需要使用什么接口就im ...

  2. 你需要改掉的Python开发习惯(三)

    1.对于用if bool 和 if len做判断,其实是很多余的. def function(x):if bool(x):passif len(x) != 0:pass 可以直接用对x进行判断就行: ...

  3. 你需要改掉的Python开发习惯(四)

    1.怎么去创建自己的索引计数器变量: def create_index_counter():l = [1, 2, 3]i = 0for x in l:# do some operationsi += ...

  4. 你需要改掉的Python开发习惯(二)

    1.使用默认可变参数的使用需要注意的地方: def append(n, l=[]):l.append(n)return lprint(append(0)) # [0] print(append(1)) ...

  5. 对比了上百个python程序员的开发习惯,这10个方法最节省时间!

    前言 观察了100个python的开发习惯,从中做出对比,精选初10个最节省时间的方法,在此送上: 为以后不管是学习还是工作中提高效率 Python 是一个美丽的语言,可以激发用户对它的爱.所以如果你 ...

  6. vscode使用教程python-用VScode配置Python开发环境

    前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...

  7. vs code python_用VScode配置Python开发环境

    前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...

  8. vscode python环境配置_用VScode配置Python开发环境

    前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...

  9. 用VScode配置Python开发环境引用

    引用:用VScode配置Python开发环境 - 简书 前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生 ...

最新文章

  1. 【Zookeeper进阶】大白话解释Zookeeper的选举机制
  2. VMware vSphere
  3. [Enterprise Library]Configuration类设计分析
  4. 一起用ipython
  5. 【Canal】互联网背景下有哪些数据同步需求和解决方案?看完我知道了!!
  6. statusbar 尺寸 显示图标_移动端页面设计规范尺寸大起底 - 椰树飘香
  7. mysql多大_洞悉MySQL底层架构:游走在缓冲与磁盘之间
  8. Weblogic 10.3.2 安装过程中出现致命错误的处理方法
  9. 改开源项目的一些心得
  10. 人生第一个深入理解的DFS题 HDU 1016
  11. 安装k8s,高可用3 master安装脚本
  12. 关于如何提高代码可测试性的一些看法
  13. html2张图片垂直居中,任意图片实现垂直居中的三种方法(兼容性还不错)
  14. oracle ogg trail 空间,查找OGG trail file中是否存在相关记录的命令
  15. Java平台划分-J2EE,J2SE,J2ME
  16. 单双面打印价格一样吗_正式合同应该打印单面还是双面?
  17. 数据库锁机制和CAS概念
  18. 微控制器STM32L412RBT6,STM32L412CBU6(128KB)MCU+FPU,规格
  19. 微信公众号通过a标签打开小程序
  20. Linux printf Class.this git rebase Persistent Bugger

热门文章

  1. 好易听(英语听力)----发布
  2. dumpbin的使用方法_Dumpbin 工具的使用-阿里云开发者社区
  3. 马化腾内部信透露新音乐集团由腾讯控股
  4. 通过url下载文件保存到指定的不存在目录下
  5. 赋值语句的返回值为永真?
  6. vue自定义指令(详解)
  7. UML在软件开发各个阶段的应用
  8. 【小程序】模板与配置
  9. 静态内部类实现单例模式及其线程安全相关原理
  10. mysql中平方米显示不出来_MySQL - 添加外键