iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python编程建议有哪些
  • 419
分享到

Python编程建议有哪些

2023-06-02 05:06:55 419人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python编程建议有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python编程建议有哪些”吧! 项目文件事先做好归档每次开始一个新工作的时候,以前的我总是贪图方便,C

本篇内容主要讲解“python编程建议有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python编程建议有哪些”吧!

项目文件事先做好归档

每次开始一个新工作的时候,以前的我总是贪图方便,Code、Data、文档都集中放在一个文件夹内,看起来很乱,一度让回溯过程十分痛苦,或者是换了部电脑,文件全都运行不行了,需要自行修改路径,十分痛苦。

经过自己一番探索,大家可以大致将项目分成几个子文件夹,code放在主文件夹里:

Python编程建议有哪些

永远不要手动修改源数据并且做好备份 ✍️

我们需要对源数据进行好备份,方便我们下一次进行回溯,可以进行下一步的操作或者是对中间步骤的修改,而且,对代码等其他文件也是需要做好备份的,以免出现意外丢失。

这里来自良许linux 的一篇文章,推荐了4个工具

  • git版本控制系统

  • Rsync文件备份

  • Dropbox云存储

  • Time Machine时光机器

更多的工具介绍和使用我这边就不展开,大家可以去自行了解呗。

做好路径的正确配置

很多同学在写路径的时候都很喜欢直接用绝对路径,虽然一般情况下不会有什么问题,但如果代码共享给其他人学习或者运行的时候,问题就来了,很多情况下都不能直接跑通,

这里建议:

  • 使用相对路径:脚本位于主目录下,其他资源(如数据、第三方包等)在其同级或低级目录下,如 ./data/processed/test1.csv

  • 全局路径配置变量:

# 设置主目录HOME_PATH = r'E:ML90615- PROJECT1'# 读取数据data = open(HOME_PATH+'/data/processed/test1.csv')data = pd.read_csv(data)data.head()

代码必要的地方做好备注与说明

这个我相信大多数人都感同身受了,不信?拿回一个月前自己写的代码看看吧,看一下能看懂多少(如果没有做好备注说明的话)

加速你的Python循环代码 ⚡️

这里推荐 云哥(Python与算法之美)的一篇文章:24式加速你的python

收藏起来,多看多几次,养成好习惯呗,这样子你写代码才会越来越快~

可视化你的循环代码进度

这里介绍一个Python库,tqdm,先安装一下:pip install tqdm

这个是一个可以显示循环进度的库,有了它就可以更加运筹帷幄了。

大家可以看下面的例子:

Python编程建议有哪些

使用高效的异常捕获工具

异常bug定位,以前的我经常也是一条print()函数走到底,虽然说也没什么问题,但效率上还是会比较慢,后来发现了一个叫PySnooper的装饰器,仿佛发现了新大陆。

我们一般debug,都是在我们可能觉得会有问题的地方,去打印输出,看下实际输出了什么,然后思考问题所在,这需要我们去改code,非常细致地改,相比较直接加个装饰器,是十分麻烦的。

大家可以看看Example:

import pysnooper@pysnooper.snoop('./file.log')def number_to_bits(number): if number: bits = [] while number: number, remainder = divmod(number, 2) bits.insert(0, remainder) return bits else: return [0]number_to_bits(6)

我们把函数每一步的输出都保存为file.log,我们可以直接去看到底哪里出了问题。

Python编程建议有哪些

要多考虑代码健壮性

何为代码的健壮性,顾名思义,就是可以抵挡得住各种异常场景的测试,异常处理工作由“捕获”和“抛出”两部分组成。“捕获”指的是使用 try ... except 包裹特定语句,妥当的完成错误流程处理。而恰当的使用 raise 主动“抛出”异常,更是优雅代码里必不可少的组成部分,下面总结几点供大家参考:

1)知道要传入的参数是什么,类型,个数 (异常处理,逻辑判断)

def add(a, b): if isinstance(a, int) and isinstance(b, int): return a+b else: return '参数类型错误'print(add(1, 2))print(add(1, 'a'))

2)只做最精准的异常捕获

我们有的时候想着让脚本work才是王道,所以不管三七二十一就搞一个大大的try...except把整块代码包裹起来,但这样很容易把原本该被抛出的 AttibuteError 吞噬了。从而给我们的 debug 过程增加了不必要的麻烦。

所以,我们永远只捕获那些可能会抛出异常的语句块,而且尽量只捕获精确的异常类型,而不是模糊的 Exception。

from requests.exceptions import RequestExceptiondef save_WEBsite_title(url, filename): try: resp = requests.get(url) except RequestException as e: print(f'save failed: unable to get page content: {e}') return False# 这段正则操作本身就是不应该抛出异常的,所以我们没必要使用 try 语句块# 假如 group 被误打成了 grop 也没关系,程序马上就会通过 AttributeError 来# 告诉我们。obj = re.search(r'<title>(.*)</title>', resp.text)if not obj: print('save failed: title tag not found in page content') return Falsetitle = obj.group(1)try: with open(filename, 'w') as fp: fp.write(title)except IOError as e: print(f'save failed: unable to write to file {filename}: {e}') return Falseelse: return True

3)异常处理不应该喧宾夺主

像上一条说到的异常捕获要精准,但如果每一个都很精准的话,其实我们的代码里就会有很多try...except语句块,以至于扰乱核心代码,代码整体阅读性。

这里,我们可以利用上下文管理器来改善我们的异常处理流程,简化重复的异常处理逻辑。

class raise_api_error:"""captures specified exception and raise ApiErrorCode instead:raises: AttributeError if code_name is not valid"""def __init__(self, captures, code_name): self.captures = captures self.code = getattr(error_codes, code_name)def __enter__(self): # 该方法将在进入上下文时调用 return selfdef __exit__(self, exc_type, exc_val, exc_tb): # 该方法将在退出上下文时调用 # exc_type, exc_val, exc_tb 分别表示该上下文内抛出的 # 异常类型、异常值、错误栈 if exc_type is None: return False if exc_type == self.captures: raise self.code from exc_val return False

在上面的代码里,我们定义了一个名为 raise_api_error 的上下文管理器,它在进入上下文时什么也不做。但是在退出上下文时,会判断当前上下文中是否抛出了类型为 self.captures 的异常,如果有,就用 APIErrorCode 异常类替代它。

使用上下文管理器后,简洁的代码如下:

def upload_avatar(request): """用户上传新头像"""with raise_api_error(KeyError, 'AVATAR_FILE_NOT_PROVIDED'): avatar_file = request.FILES['avatar']with raise_api_error(ResizeAvatarError, 'AVATAR_FILE_INVALID'), raise_api_error(FileTooLargeError, 'AVATAR_FILE_TOO_LARGE'): resized_avatar_file = resize_avatar(avatar_file)with raise_api_error(Exception, 'INTERNAL_SERVER_ERROR'): request.user.avatar = resized_avatar_file request.user.save()return HttpResponse({})

到此,相信大家对“Python编程建议有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python编程建议有哪些

本文链接: https://www.lsjlt.com/news/228872.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python编程建议有哪些
    本篇内容主要讲解“Python编程建议有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python编程建议有哪些”吧! 项目文件事先做好归档每次开始一个新工作的时候,以前的我总是贪图方便,C...
    99+
    2023-06-02
  • Python编程有哪些有用的建议
    这篇文章主要讲解了“Python编程有哪些有用的建议”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python编程有哪些有用的建议”吧! 项目文件事先做好归档每次开始一个新工作的时候,以前的...
    99+
    2023-06-02
  • 有哪些写Python程序的建议
    这篇文章主要介绍“有哪些写Python程序的建议”,在日常操作中,相信很多人在有哪些写Python程序的建议问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些写Python程序的建议”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • 改善Python程序的建议有哪些
    本篇内容介绍了“改善Python程序的建议有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1:引论建议1、理解Pythonic概念—-详...
    99+
    2023-06-02
  • 编写Java代码的建议有哪些
    这篇文章主要介绍“编写Java代码的建议有哪些”,在日常操作中,相信很多人在编写Java代码的建议有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写Java代码的建议有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • CSS编写规范的建议有哪些
    CSS编写规范的建议有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。避免过度约束作为一般规则,不添加不必要的约束。CSS Code复制...
    99+
    2024-04-02
  • Java编程中写出好代码的建议有哪些呐
    这篇文章给大家介绍Java编程中写出好代码的建议有哪些呐,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最近在做应用的性能优化,在review代码的过程中积累了一些规则和经验。做到这些规则的目的很简单,就是写出“优美”的...
    99+
    2023-06-17
  • Python性能优化的建议有哪些
    这篇文章主要介绍“Python性能优化的建议有哪些”,在日常操作中,相信很多人在Python性能优化的建议有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python性能优化的建议有哪些”的疑惑有所帮助!...
    99+
    2023-06-02
  • 高效编写CSS代码的建议有哪些
    这篇文章将为大家详细讲解有关高效编写CSS代码的建议有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 基本原则  1.1 把CSS放在HTML页面头...
    99+
    2024-04-02
  • Shell脚本编写的可靠建议有哪些
    今天就跟大家聊聊有关Shell脚本编写的可靠建议有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题去问...
    99+
    2023-06-09
  • 编写python程序的90条建议
    目录1. 首先2. 编程惯用法3. 基础用法4. 库的使用5. 设计模式6. 内部机制7. 使用工具辅助项目开发8. 性能剖析与优化1. 首先 建议1、理解 Pythonic 概念...
    99+
    2024-04-02
  • Java代码编写的30条建议分别有哪些
    Java代码编写的30条建议分别有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包...
    99+
    2023-06-17
  • 有哪些写SQL的好建议
    本篇内容主要讲解“有哪些写SQL的好建议”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些写SQL的好建议”吧!1. 在执行删除或者更新语句,尽量加上limi...
    99+
    2024-04-02
  • 学习linux的建议有哪些
    这篇文章主要介绍学习linux的建议有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、从基础开始   常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。例如:为什么我使用一个命令的时候,...
    99+
    2023-06-13
  • 创建jQuery插件的建议有哪些
    创建jQuery插件的建议有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开...
    99+
    2024-04-02
  • python编程规范有哪些
    本篇文章为大家展示了python编程规范有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。每个缩进层级使用4个空格。每行最多79个字符。顶层的函数或类的定义之间空两行。采用ASCII或UTF-8编...
    99+
    2023-06-04
  • Python编程方法有哪些
    本篇内容介绍了“Python编程方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 估算解决问题所需要的时间。不要怕,承认吧!我曾见过...
    99+
    2023-06-02
  • 有哪些Python编程窍门
    这篇文章主要讲解了“有哪些Python编程窍门”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些Python编程窍门”吧!1、正交性正交性是编程的一个重要原则。在设计优良的系统中,数据库代...
    99+
    2023-06-16
  • 有哪些Python编程风格
    这篇文章主要讲解了“有哪些Python编程风格”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些Python编程风格”吧!1.1 多余的空格以下函数赋值符合习惯:foo(a, b...
    99+
    2023-06-16
  • python编程规范系列--建议01~0
      本系列来自《编写高质量代码 改善python程序的91个建议》的读书笔记整理。 本书主要内容     1)容易被忽视的重要概念和常识,如代码的布局和编写函数的原则等;     2)编写python程序管用的方法,如利用assert语句...
    99+
    2023-01-30
    建议 系列 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作