2024年最新7 年 Python 的我,总结了这 90 条写 Python 程序的建议,上海大厂Python面试经历

简介: 2024年最新7 年 Python 的我,总结了这 90 条写 Python 程序的建议,上海大厂Python面试经历

(1)两者之间的目标不同:str主要面向客户,其目的是可读性,返回形式为用户友好性和可读性都比较高的字符串形式;而repr是面向Python解释器或者说Python开发人员,其目的是准确性,其返回值表示Python解释器内部的定义

(2)在解释器中直接输入变量,默认调用repr函数,而print(var)默认调用str函数

(3)repr函数的返回值一般可以用eval函数来还原对象

(4)两者分别调用对象的内建函数 __str__ ()和 __repr__ ()

建议35:分清静态方法staticmethod和类方法classmethod的使用场景

4. 库的使用

建议36:掌握字符串的基本用法

建议37:按需选择sort()和sorted()函数

sort()是列表在就地进行排序,所以不能排序元组等不可变类型。

sorted()可以排序任意的可迭代类型,同时不改变原变量本身。

建议38:使用copy模块深拷贝对象,区分浅拷贝(shallow copy)和深拷贝(deep copy)

建议39:使用Counter进行计数统计,Counter是字典类的子类,在collections模块中

建议40:深入掌握ConfigParse

建议41:使用argparse模块处理命令行参数

建议42:使用pandas处理大型CSV文件

Python本身提供一个CSV文件处理模块,并提供reader、writer等函数。

Pandas可提供分块、合并处理等,适用于数据量大的情况,且对二维数据操作更方便。

建议43:使用ElementTree解析XML

建议44:理解模块pickle的优劣

优势:接口简单、各平台通用、支持的数据类型广泛、扩展性强

劣势:不保证数据操作的原子性、存在安全问题、不同语言之间不兼容

建议45:序列化的另一个选择JSON模块:load和dump操作

建议46:使用traceback获取栈信息

建议47:使用logging记录日志信息

建议48:使用threading模块编写多线程程序

建议49:使用Queue模块使多线程编程更安全

5. 设计模式

建议50:利用模块实现单例模式

建议51:用mixin模式让程序更加灵活

建议52:用发布-订阅模式实现松耦合

建议53:用状态模式美化代码

6. 内部机制

建议54:理解build-in对象

建议55:__init__ ()不是构造方法,理解 __new__ ()与它之间的区别

建议56:理解变量的查找机制,即作用域

局部作用域

全局作用域

嵌套作用域

内置作用域

建议57:为什么需要self参数

建议58:理解MRO(方法解析顺序)与多继承

建议59:理解描述符机制

建议60:区别 __getattr__ ()与 __getattribute__ ()方法之间的区别

建议61:使用更安全的property

建议62:掌握元类metaclass

建议63:熟悉Python对象协议

建议64:利用操作符重载实现中缀语法

建议65:熟悉Python的迭代器协议

建议66:熟悉Python的生成器

建议67:基于生成器的协程和greenlet,理解协程、多线程、多进程之间的区别

建议68:理解GIL的局限性

建议69:对象的管理和垃圾回收

7. 使用工具辅助项目开发

建议70:从PyPI安装第三方包

建议71:使用pip和yolk安装、管理包

建议72:做paster创建包

建议73:理解单元测试的概念

建议74:为包编写单元测试

建议75:利用测试驱动开发(TDD)提高代码的可测性

建议76:使用Pylint检查代码风格

代码风格审查

代码错误检查

发现重复以及不合理的代码,方便重构

高度的可配置化和可定制化

支持各种IDE和编辑器的集成

能够基于Python代码生成UML图

能够与Jenkins等持续集成工具相结合,支持自动代码审查

建议77:进行高效的代码审查

建议78:将包发布到PyPI

8. 性能剖析与优化

建议79:了解代码优化的基本原则

建议80:借助性能优化工具

建议81:利用cProfile定位性能瓶颈

建议82:使用memory_profiler和objgraph剖析内存使用

建议83:努力降低算法复杂度

建议84:掌握循环优化的基本技巧

减少循环内部的计算

将显式循环改为隐式循环,当然这会牺牲代码的可读性

在循环中尽量引用局部变量

关注内层嵌套循环

建议85:使用生成器提高效率

建议86:使用不同的数据结构优化性能

建议87:充分利用set的优势

建议88:使用multiprocessing模块克服GIL缺陷

建议89:使用线程池提高效率

建议90:使用Cythonb编写扩展模块

读者福利:知道你对Python感兴趣,便准备了这套python学习资料

👉[[CSDN大礼包:《python安装包&全套学习资料》免费分享]]安全链接,放心点击

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。

二方面是可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,Python自动化测试学习等教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论
  • ④ 20款主流手游迫解 爬虫手游逆行迫解教程包
  • ⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解
  • ⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解
  • ⑦ 超300本Python电子好书,从入门到高阶应有尽有
  • ⑧ 华为出品独家Python漫画教程,手机也能学习
  • ⑨ 历年互联网企业Python面试真题,复习时非常方便

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。


相关文章
|
2天前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
8 3
|
4天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
10 3
|
7天前
|
存储 人工智能 数据挖掘
Python编程入门:构建你的第一个程序
【10月更文挑战第22天】编程,这个听起来高深莫测的词汇,实际上就像搭积木一样简单有趣。本文将带你走进Python的世界,用最浅显的语言和实例,让你轻松掌握编写第一个Python程序的方法。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们一起开始这段奇妙的编程之旅吧!
13 3
|
12天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
23天前
|
IDE 开发工具 Python
Python 编程入门:打造你的第一个程序
【10月更文挑战第6天】编程,这个听起来高大上又充满神秘感的领域,其实就像学习骑自行车一样。一开始你可能会觉得难以掌握平衡,但一旦你学会了,就能自由地穿梭在广阔的道路上。本文将带你走进 Python 的世界,用最简单的方式让你体验编写代码的乐趣。不需要复杂的理论,我们将通过一个简单的例子——制作一个猜数字游戏,来实践学习。准备好了吗?让我们开始吧!
|
26天前
|
存储 JSON 安全
面向企业应用程序的 Python 配置管理
面向企业应用程序的 Python 配置管理
25 9
|
26天前
|
人工智能 数据挖掘 程序员
Python 编程入门:打造你的第一个程序
【10月更文挑战第3天】编程,这个看似高深莫测的技能,实际上就像学骑自行车一样,一旦掌握,便能开启全新的世界。本文将带领初学者步入Python编程的殿堂,从基础语法到编写实用程序,一步步解锁编程的乐趣。
|
21天前
|
存储 开发者 Python
Python编程入门:构建你的第一个程序
【10月更文挑战第8天】本文旨在为初学者提供一个简单的Python编程入门指南。我们将从安装Python环境开始,逐步介绍如何编写、运行和理解一个简单的Python程序。文章将通过一个实际的代码示例来展示Python的基本语法和结构,帮助读者快速上手Python编程。
|
21天前
|
存储 程序员 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第8天】在数字时代的浪潮中,编程已成为一项基础技能。本文旨在引导初学者步入编程世界,通过Python语言的简洁与强大,轻松打造个人的第一个程序。我们将一起探索变量、数据类型、控制结构等概念,并通过实际代码示例,解锁编程的乐趣。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们开始吧,用代码书写你的数字梦想!
|
22天前
|
Java Python
如何通过Java程序调用python脚本
如何通过Java程序调用python脚本
22 0