python的使用技巧整理

Python 是一门功能强大且易于学习的编程语言

前言

Python 广泛应用于数据科学、Web开发、自动化脚本等领域。Python的主要作用和部分应用领域:

1. 数据科学与分析

Python在数据科学和数据分析领域占据重要地位。常用的库包括:

  • NumPy:用于数值计算,支持多维数组和矩阵运算。
  • Pandas:用于数据操作和分析,提供数据结构和数据分析工具。
  • MatplotlibSeaborn:用于数据可视化,生成图表和图形。
  • Scikit-learn:用于机器学习和数据挖掘,提供各种算法和工具。

2. Web开发

Python广泛用于Web开发,主要框架包括:

  • Django:一个高级Web框架,提供快速开发和简单、实用的设计。
  • Flask:一个轻量级Web框架,灵活性高,适合小型项目和微服务。

3. 人工智能与机器学习

Python是人工智能(AI)和机器学习(ML)领域的首选语言,常用库包括:

  • TensorFlowKeras:用于深度学习的框架,支持构建和训练神经网络。
  • PyTorch:另一个流行的深度学习框架,广泛用于研究和生产。
  • OpenAI Gym:用于开发和比较强化学习算法的工具包。

4. 自动化与脚本编写

Python非常适合编写脚本和自动化任务,包括:

  • 自动化系统任务:如文件操作、系统监控和批处理任务。
  • Web抓取:使用库如BeautifulSoupScrapy进行数据抓取和网页解析。
  • 自动化测试:使用pytestunittest进行单元测试和集成测试。

5. 科学计算与工程

Python在科学计算和工程领域也有广泛应用:

  • SciPy:用于科学计算的库,提供数值积分、优化、信号处理等功能。
  • SymPy:用于符号数学的库,支持代数、微积分、离散数学等领域的符号计算。
  • Astropy:用于天文学计算和数据分析的库。

以下是一些使用 Python 的技巧和最佳实践,帮助你更高效地编写代码。


一、编码风格

遵循PEP 8:PEP 8是Python的编码风格指南,涵盖了代码布局、空格使用、命名约定等方面。

def my_function(param1, param2):if param1 > param2:return param1else:return param2

使用有意义的变量名:避免使用xy等无意义的变量名。使用描述性的名称。

total_price = price_per_item * number_of_items

适当的注释:注释应该清晰简洁,解释代码的意图而不是代码本身。

# 计算总价
total_price = price_per_item * number_of_items

二、调试技巧

使用内置的pdb模块pdb是Python的调试器,可以逐步执行代码并检查变量。

import pdb; pdb.set_trace()

使用print语句调试:在关键点打印变量值,检查程序状态。

print(f"Total price: {total_price}")

使用断点:在IDE(如PyCharm、VSCode)中设置断点,可以暂停程序并检查变量。

三、性能优化

避免不必要的循环:尽量减少循环次数,使用Python的内置函数和库函数。

# 使用列表推导
squares = [x*x for x in range(10)]

使用生成器:生成器比列表推导更节省内存,适合处理大数据集。

def generate_squares(n):for i in range(n):yield i * i

尽量使用局部变量:局部变量访问速度比全局变量快。

def compute():local_var = 10for i in range(10000):local_var += ireturn local_var

使用多线程和多进程:对于I/O密集型任务,使用多线程;对于CPU密集型任务,使用多进程。

import threadingdef task():print("Task executed")thread = threading.Thread(target=task)
thread.start()
from multiprocessing import Processdef task():print("Task executed")process = Process(target=task)
process.start()

四、常用库和工具

numpypandas:用于数值计算和数据处理的高效库。

import numpy as np
import pandas as pddata = np.array([1, 2, 3])
df = pd.DataFrame(data, columns=["Numbers"])

matplotlibseaborn:用于数据可视化的强大工具。

import matplotlib.pyplot as plt
import seaborn as snssns.set(style="darkgrid")
tips = sns.load_dataset("tips")
sns.scatterplot(x="total_bill", y="tip", data=tips)
plt.show()

requests:用于HTTP请求的简单易用的库。

import requestsresponse = requests.get("https://api.example.com/data")
print(response.json())

pytest:强大的测试框架,支持单元测试和功能测试。

def test_example():assert func(3) == 4

五、编码加密类

hex编码,使用hex(‘a’)是不行的,如果想要对字符串hex编码可以:

print 'a'.encode('hex')

base64编码解码需要导入base64的库

import base64
print base64.b64encode('a')
# 如果要解码改成decode即可

URL编码,导入库实现

from urllib import quote
print quote('select user from users#')

ASCII编码

print map(ord,'<?php phpinfo() php>')

六、常用快捷键

使用Python开发时,掌握常用快捷键可以大大提高开发效率。以下是一些常用的Python IDE和编辑器(如PyCharm、VSCode)中的快捷键:

PyCharm 常用快捷键

编辑
  • 复制行Ctrl + D (Windows/Linux) 或 Cmd + D (Mac)
  • 删除行Ctrl + Y (Windows/Linux) 或 Cmd + Delete (Mac)
  • 移动行Shift + Alt + Up/Down (Windows/Linux) 或 Shift + Cmd + Up/Down (Mac)
  • 注释/取消注释Ctrl + / (Windows/Linux) 或 Cmd + / (Mac)
  • 格式化代码Ctrl + Alt + L (Windows/Linux) 或 Cmd + Alt + L (Mac)
导航
  • 转到定义Ctrl + B (Windows/Linux) 或 Cmd + B (Mac)
  • 查找用法Alt + F7 (Windows/Linux) 或 Cmd + Alt + F7 (Mac)
  • 文件搜索Ctrl + Shift + N (Windows/Linux) 或 Cmd + Shift + O (Mac)
  • 方法搜索Ctrl + Alt + Shift + N (Windows/Linux) 或 Cmd + Shift + O (Mac)
运行和调试
  • 运行当前文件Shift + F10 (Windows/Linux) 或 Ctrl + R (Mac)
  • 调试当前文件Shift + F9 (Windows/Linux) 或 Cmd + D (Mac)
  • 添加断点Ctrl + F8 (Windows/Linux) 或 Cmd + F8 (Mac)
  • 步过F8
  • 步入F7
  • 恢复程序F9

VSCode 常用快捷键

编辑
  • 复制行Shift + Alt + Down (Windows/Linux) 或 Shift + Option + Down (Mac)
  • 删除行Ctrl + Shift + K (Windows/Linux) 或 Cmd + Shift + K (Mac)
  • 移动行Alt + Up/Down (Windows/Linux) 或 Option + Up/Down (Mac)
  • 注释/取消注释Ctrl + / (Windows/Linux) 或 Cmd + / (Mac)
  • 格式化文档Shift + Alt + F (Windows/Linux) 或 Shift + Option + F (Mac)
导航
  • 转到定义F12
  • 查找引用Shift + F12
  • 打开文件Ctrl + P (Windows/Linux) 或 Cmd + P (Mac)
  • 打开符号Ctrl + Shift + O (Windows/Linux) 或 Cmd + Shift + O (Mac)
运行和调试
  • 运行当前文件F5
  • 调试当前文件F5
  • 添加断点F9
  • 步过F10
  • 步入F11
  • 继续运行F5

Jupyter Notebook 常用快捷键

命令模式(按 Esc 进入)
  • 运行当前单元格并跳转到下一单元格Shift + Enter
  • 运行当前单元格并插入新的单元格Alt + Enter
  • 将单元格标记为代码Y
  • 将单元格标记为MarkdownM
  • 剪切选中单元格X
  • 复制选中单元格C
  • 粘贴单元格V
  • 撤销操作Z
编辑模式(按 Enter 进入)
  • 运行当前单元格并跳转到下一单元格Shift + Enter
  • 插入新行Alt + Enter
  • 撤销Ctrl + Z (Windows/Linux) 或 Cmd + Z (Mac)
  • 重做Ctrl + Y (Windows/Linux) 或 Cmd + Y (Mac)
  • 缩进Tab
  • 取消缩进Shift + Tab

其他技巧

虚拟环境:使用venvvirtualenv创建虚拟环境,隔离项目依赖。

python -m venv myenv
source myenv/bin/activate  # 激活虚拟环境

代码格式化工具:使用blackflake8等工具自动格式化代码。

black my_script.py

类型注解:使用类型注解提高代码可读性和可维护性。

def add(x: int, y: int) -> int:return x + y

总结

希望这些技巧和最佳实践能帮助你更好地使用Python。快捷键可以帮助你更高效地进行Python开发,熟练掌握后将大大提升你的工作效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高考志愿填报:选好专业还是选好学校?

目录 引言 专业解析 工科类专业 文科类专业 医药类专业 商科类专业 名校效应分析 名校声誉的影响 教育资源和研究机会 学术氛围和创新能力 就业优势 好专业和好学校的权衡 职业目标的判断 行业需求的考量 教育质量的比较 结论 引言 2024年高考帷幕落下&#xff…

七天速通javaSE:第四天 java方法

文章目录 前言一、什么是方法&#xff1f;二、方法的定义与调用1. 方法的定义2. 方法的调用3. 练习&#xff1a;定义比大小方法并调用 三、方法的重载四、递归五、可变参数拓展&#xff1a;命令行传递参数 前言 本章将学习java方法。 一、什么是方法&#xff1f; java方法是用…

uniapp 微信小程序端使用百度地图API

1、登录百度地图开放平台 https://lbsyun.baidu.com/&#xff08;没有账号则先去创建一个百度账号&#xff09; 2、进入百度地图开放平台控制台&#xff08;导航栏“控制台”&#xff09;&#xff0c;点击“应用管理”-“我的应用” 3、选择“创建应用”&#xff0c;应用模块选…

机器学习辅助的乙醇浓度检测(毕设节选)

目录 1.为什么要机器学习 2. 神经网络一般组成 3.BP神经网络工作过程 4.评价指标 5.实操代码 1.为什么要用机器学习 人工分析大量的谐振模式&#xff0c;建立各种WGM的响应与未知目标之间的关系&#xff0c;是一个很大的挑战。机器学习(ML)能够自行识别全谱的全部特征。作为…

【PythonWeb开发】Flask自定义模板路径和静态资源路径

在大型的 Flask 项目中&#xff0c;确实可能会有多个子应用&#xff08;Blueprints&#xff09;&#xff0c;每个子应用可能都有自己的静态文件和模板。为了更好地管理和组织这些资源&#xff0c;可以使用static_folder 和template_folder 属性来统一管理。必须同时设置好主应用…

期货交易记录20240626

文章目录 期货交易系统构建第一步、选品第二步、心态历练第三步、开仓纪律第四步、持仓纪律第五步、接下来的计划 2024年6月26号&#xff0c;开始写期货交易的第四篇日记。 交易记录&#xff1a;做了一笔纯碱的多单&#xff0c;在回撤了400个点左右后&#xff0c;看到企稳信号后…

LLM文本数据集775TB:覆盖32个领域,444个数据集

大语言模型在各领域展现出巨大潜力&#xff0c;其性能在很大程度上依赖于训练和测试所用的数据集。然而&#xff0c;目前在如何构建和优化这些数据集方面&#xff0c;尚缺乏统一的认识和方法论。下面从五个方面整合和分类了LLM数据集的基本内容&#xff1a;预训练语料库、指令微…

day38动态规划part01| 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

**理论基础 ** 无论大家之前对动态规划学到什么程度&#xff0c;一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目&#xff0c;看我讲的理论基础&#xff0c;会有感觉 是不是简单题想复杂了&#xff1f; 其实并没有&#xff0c;我讲的理论基础内容&#xff0c;…

【TB作品】MSP430G2553,单片机,口袋板, 烘箱温度控制器

题3 烘箱温度控制器 设计一个基于MSP430的温度控制器&#xff0c;满足如下技术指标&#xff1a; &#xff08;1&#xff09;1KW 电炉加热&#xff0c;最度温度为110℃ &#xff08;2&#xff09;恒温箱温度可设定&#xff0c;温度控制误差≦2℃ &#xff08;3&#xff09;实时显…

如何创建一个vue项目

目录 1.环境准备 2.检查node和npm版本&#xff0c;确定已安装nodejs 3.全局安装vue/cli、webpack、webpack-cli、vue/cli-init 4.检查vue版本,注意V是大写 5.创建vue项目 6.得到的vue项目目录结构如下&#xff1a; 1.环境准备 安装nodejs,或者安装nvm&#xff0c;并使用…

0101git服务器本地下载gogs源码-其他-版本管理

文章目录 1前言2操作3 建议 结语 1前言 公司接手维护甲方的项目&#xff0c;项目部署在阿里云服务器。但是甲方能提供的文档资料很有限&#xff0c;如果通过甲方去找之前开发项目的公司呢&#xff0c;首先很麻烦&#xff0c;然后也不一定能找到想要的项目源码。 然后项目4个主…

记录一次CMS的代码审计

本次代码审计使用了白加黑的手法&#xff0c;用黑盒的视角测试功能点&#xff0c;用白盒的方式作为验证。 0x1 XSS guestbook处&#xff0c;可以看到有一个留言板 idea搜索guestbook。发现代码如下&#xff0c;其中的getModel是获取数据的方法。Guestbook.class就是具体要获取…

Java源码解读之常量52429

文章目录 为什么有52429的常量呢&#xff1f;对于为什么选择52429?那么为什么不再选几位呢&#xff1f; 在JDK8源码中 java.lang.Integer有52429作为常量出现&#xff0c; 为什么有52429的常量呢&#xff1f; static void getChars(int i, int index, char[] buf) {int q, r;…

zkWASM:ZK+zkVM的下一站?

1. 引言 ZK技术具备极大通用性&#xff0c;也帮助以太坊从去中心化投资走向去信任化的价值观。“Don’t trust, Verify it!”&#xff0c;是ZK技术的最佳实践。ZK技术能够重构链桥、预言机、链上查询、链下计算、虚拟机等等一系列应用场景&#xff0c;而通用型的ZK协处理器就是…

【Docker】镜像

目录 1. 镜像拉取 2. 镜像查询 3. 镜像导出 4. 镜像上传 5. 镜像打标签 6. 镜像上推 7. 镜像删除 8. 镜像运行及修改 8.1 在registry 节点运行 mariadb 镜像&#xff0c;将宿主机 13306 端口作为容器3306 端口映射 8.2 查看容器ID 8.3 进入容器 8.4 创建数据库xd_d…

使用 onnxruntime-gpu 进行推理,运行时间久显存逐渐递增无法减少

背景 将 pytorch / tensorflow 模型转换为onnx后&#xff0c;推理速度相对变快。但是问题在于当请求量增加&#xff0c;onnx模型会无限制申请GPU资源。如果将onnx模型部署为一个接口&#xff0c;则这个接口会一直存在&#xff0c;申请的GPU资源也不会得到释放&#xff08;详细可…

SK Hynix 3D DRAM良率突破56.1%,开启存储新时代

根据韩国财经媒体Business Korea独家报道&#xff1a;在刚刚结束的VLSI 2024国际研讨会上&#xff0c;韩国半导体巨头SK Hynix公布了一项振奋人心的进展&#xff1a;其五层堆叠3D DRAM的制造良率已达到56.1%。此成果标志着3D DRAM技术在商业化道路上迈出了坚实的一步&#xff0…

mybatisplus多条件对象xml分页查询

不要用它自带的 selectPage方法&#xff0c;会有传参问题 controller import java.util.Set;RestController RequiredArgsConstructor RequestMapping("/deviceInfo" ) public class DeviceInfoController {private final DeviceInfoService deviceInfoService;/**…

JUC 队列

常见的阻塞队列 Queue接口 public interface Queue<E> extends Collection<E> {//添加一个元素&#xff0c;添加成功返回true, 如果队列满了&#xff0c;就会抛出异常boolean add(E e);//添加一个元素&#xff0c;添加成功返回true, 如果队列满了&#xff0c;返回…

docker的容器操作命令

容器命令 容器是什么 镜像运行起来就是容器 docker run docker ps 查看运行的容器状态 docker ps -a 查看所有的容器状态&#xff08;包括未运行的&#xff09; docker logs 查看容器的日志 docker rm 删除容器 启动容器 docker start 镜像名称/镜像id 停止容器 docker stop …