当前位置: 首页 > news >正文

Python技巧

Python,现如今非常热门的一种编程语言,在人工智能中大放异彩。做任何事都需要技巧,这可以大大提高效率,学习Python,同样如此!

第一个就是assret语句,让我们看下面一个关于折扣的例子:

def dicountT(price,discount):    price1=price*discount    assert 0<=price1<=price    return price1
print(dicountT(130,0.75))print(dicountT(1300,7.5))
结果:97.5Traceback (most recent call last):  File "E:/3-10/tril.py", line 7, in <module>    print(dicountT(1300,7.5))  File "E:/3-10/tril.py", line 3, in dicountT    assert 0<=price1<=priceAssertionError

很明显,加入断言后,程序在结果不合常理的状况下报错了,从而避免了卖家损失。这个例子很简单,但要说明的是这在测试程序时非常有用,尤其是一些大型复杂的程序。

这里,你可能会有疑问,为什么我们不用异常语句呢?其实,断言是为了告诉开发人员程序中发生了不可恢复的错误,对于一些可以预料的错误,用户可以予以纠正和重试,断言并不是为此而生。

记住,断言是用于内部自检,是一种调试辅助功能,不是用来处理运行错误的机制,目的是让开发者更快找到可能导致bug的根本原因。

下一个就是with语句,with语句非常有用,有助于编写更加清晰易读的Python代码

with open("one.txt",'w') as f:    f.write("onetwo")

这样,我们完成了打开文件并写入内容的功能,同时,with语句确保了打开的文件描述符在程序执行离开with语句的上下文后自动关闭。当然,下面程序也是等同的

f=open("one.txt",'w')try:    f.write("onetwo")finally:    f.close()

这也是可行的。但下面这种一定要避免:

f=open("one.txt",'w')f.write("onetwo")f.close()

虽然从逻辑上非常非常合理,但一旦调用f.write()时发生异常,这段代码并不能保证文件最后被关闭。

总的来说,with语句不仅可以让处理系统资源的代码更易读,更不会忘记清理或释放资源,因此可以避免bug或资源泄露

1  交换变量

不使用另一个变量,实现变量交换。

x=1 y=2 x,y=y,x print(x) print(y) 21

2  链式赋值

如果需要让多个变量引用同一个对象,则可以使用链式赋值:​​​​​​​

>>> x = y = z = 1>>> x, y, z(1, 1, 1)

3  多重赋值​​​​​​​

>>> x, *y, z = 2, 4, 8, 16>>> x2>>> y[4, 8]>>> z16

4   利用python集合元素的唯一性去重

​​​​​​​

>>> x = [1, 2, 1, 4, 8]>>> y = set(x)>>> y{8, 1, 2, 4}>>> z = list(y)>>> z[8, 1, 2, 4]

5   字符串倒序

​​​​​​​

>>> str1="qqaabb">>> str2=str1[::-1]>>> sttr2'bbaaqq'

 6  运算符:or and not

7   合并字典

合并两个字典的方法之一就是将它们解包到一个新的字典中:

​​​​​​​

>>> x = {'u': 1}>>> y = {'v': 2}>>> z = {**x, **y, 'w': 4}>>> z{'u': 1, 'v': 2, 'w': 4}

8  学会使用装饰器

相关文章:

Python技巧

Python&#xff0c;现如今非常热门的一种编程语言&#xff0c;在人工智能中大放异彩。做任何事都需要技巧&#xff0c;这可以大大提高效率&#xff0c;学习Python,同样如此&#xff01; 第一个就是assret语句&#xff0c;让我们看下面一个关于折扣的例子&#xff1a; def dic…...

几种常见的CSS三栏布局?介绍下粘性布局(sticky)?自适应布局?左边宽度固定,右边自适应?两种以上方式实现已知或者未知宽度的垂直水平居中?

几种常见的CSS三栏布局 流体布局 效果&#xff1a; 参考代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…...

箭头函数 - JavaScript的新宠儿

&#x1f4e2; 鸿蒙专栏&#xff1a;想学鸿蒙的&#xff0c;冲 &#x1f4e2; C语言专栏&#xff1a;想学C语言的&#xff0c;冲 &#x1f4e2; VUE专栏&#xff1a;想学VUE的&#xff0c;冲这里 &#x1f4e2; CSS专栏&#xff1a;想学CSS的&#xff0c;冲这里 &#x1f4…...

操作系统期末复习知识点

目录 一.概论 1.操作系统的介绍 2.特性 3.主要功能 4.作用 二.进程的描述与控制 1.进程的定义 2.特性 3.进程的创建步骤 4.基本状态转化 5.PCB的作用 6.进程与线程的比较 三.进程同步 1.同步的概念&#xff08;挺重要的&#xff09; 2.临界区 3.管程和进程的区…...

[英语学习][23][Word Power Made Easy]的精读与翻译优化

[序言] 译者的这次翻译, 完全直译, 生硬无比. [英文学习的目标] 提升自身的英语水平, 对日后编程技能的提升有很大帮助. 希望大家这次能学到东西, 同时加入我的社区讨论与交流英语相关的内容. [原著英文与翻译版对照][第22页] Knowledge is chiefly in the form of words…...

吉林大学19、21级计算机学院《计算机网络》期末真题试题

一、21级&#xff08;考后回忆&#xff09; 一、不定项选择&#xff08;一共10个选择题&#xff0c;一个两分&#xff0c;选全得满分&#xff09; 不定项&#xff1a;可以选择1~4个 考点有&#xff1a; ①协议、服务 ②码分多路复用通过接受码片序列&#xff0c;求哪个站点发送…...

python练习3【题解///考点列出///错题改正】

一、单选题 1.【单选题】 ——可迭代对象 下列哪个选项是可迭代对象&#xff08; D&#xff09;&#xff1f; A.(1,2,3,4,5) B.[2,3,4,5,6] C.{a:3,b:5} D.以上全部 知识点补充——【可迭代对象】 可迭代对象&#xff08;iterable&#xff09;是指可以通过迭代&#xff…...

LINUX服务器防火墙nf_conntrack问题一例

一、故障现象 业务反馈服务异常,无法响应请求&#xff0c;从系统日志 dmesg 或 /var/log/messages 看到大量以下记录&#xff1a;kernel: nf_conntrack: table full, dropping packet. 二、问题分析 业务高峰期服务器访问量大&#xff0c;内核 netfilter 模块 conntrack 相关参…...

经典八股文之RocketMQ

核心概念 NameServer nameserver是整个rocketmq的大脑&#xff0c;是rocketmq的注册中心。broker在启动时向所有nameserver注册。生产者在发送消息之前先从 NameServer 获取 Broker 服务器地址列表(消费者一 样)&#xff0c;然后根据负载均衡算法从列表中选择一台服务器进行消…...

Pandas之从sql库中导入数据的几种方法分析

1.使用mysql-connector-python库将SQL文件导入到Python中&#xff0c;并查询数据库中的表 确保已经安装mysql-connector-python库 #导入模块 import mysql.connector# 建立与MySQL数据库的连接 conn mysql.connector.connect(host"localhost",user"username&…...

18. Mysql 存储过程,实现动态数据透视

文章目录 概述常见操作创建存储过程存储过程局部变量定义和赋值查看存储过程删除存储过程调用存储过程 示例-动态数据透视详细讲解总结参考资料 概述 Mysql 存储过程是一组预先编译的 sql 语句集合&#xff0c;它们被存储在数据库中&#xff0c;并可以被多次调用执行。存储过程…...

VuePress部署到GitHub Pages

一、git push自动部署 1、创建用于工作流的文件 在项目根目录下创建一个用于 GitHub Actions 的工作流 .yml 文件 name: docson:# 每当 push 到 main 分支时触发部署push:branches: [main]# 手动触发部署workflow_dispatch:jobs:docs:runs-on: ubuntu-lateststeps:- uses: a…...

git 本地仓库

本地仓库 start.bat 启动...

Hive实战:分科汇总求月考平均分

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、创建分区的学生成绩表4、按分区加载数据5、查看分区…...

快速搭建知识付费小程序,3分钟即可开启知识变现之旅

明理信息科技知识付费saas租户平台 在当今数字化时代&#xff0c;知识付费已经成为一种趋势&#xff0c;越来越多的人愿意为有价值的知识付费。然而&#xff0c;公共知识付费平台虽然内容丰富&#xff0c;但难以满足个人或企业个性化的需求和品牌打造。同时&#xff0c;开发和…...

【计算机图形学划重点】第一讲-Pipeline and Introduction

基础知识 Vertex&#xff08;顶点&#xff09; define the location of primitives in space, and consists of vertex stream. 顶点用于定义空间中基本图形&#xff08;primitives&#xff09;的位置。它包含了一个顶点流&#xff08;vertex stream&#xff09;&#xff0c…...

面试题-DAG 有向无环图

有向无环图用于解决前后依赖问题&#xff0c;在Apollo中用于各个组件的依赖管理。 在算法面试中&#xff0c;有很多相关题目 比如排课问题&#xff0c;有先修课比如启动问题&#xff0c;需要先启动1&#xff0c;才能启动2 概念 顶点&#xff1a; 图中的一个点&#xff0c;比…...

vite + vue3引入ant design vue 报错

npm install ant-design-vue --save下载插件并在main.ts 全局引入 报错 解决办法一&#xff1a; main.ts注释掉全局引入 模块按需引入 解决办法二 将package.json中的ant-design-vue的版本^4.0.0-rc.4改为 ^3.2.15版本 同时将将package-lock.json中的ant-design-vue的版本…...

使用EasyPoi导入数据并返回失败xls

添加依赖 <!-- https://mvnrepository.com/artifact/cn.afterturn/easypoi-base --> <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.4.0</version> </dependency> 工…...

机械配件移动商城课程概述

项目介绍 开发准备 任务 开源库介绍 框架搭建 工具类...

Ubuntu16.04服务器上从零部署LaneNet车道线检测:Tusimple数据集处理全流程避坑指南

Ubuntu 16.04服务器部署LaneNet车道线检测全流程实战 在自动驾驶和智能交通系统中&#xff0c;车道线检测是一项基础而关键的技术。本文将详细介绍如何在Ubuntu 16.04服务器环境下&#xff0c;从零开始部署LaneNet车道线检测模型&#xff0c;并处理Tusimple数据集的全流程。不同…...

Java笔记——JMM

在多线程编程中&#xff0c;共享变量的可见性、操作的原子性以及指令的重排序&#xff0c;常常成为导致程序出现诡异Bug的罪魁祸首。而Java之所以能够成为并发编程的首选语言之一&#xff0c;很大程度上归功于其强大的Java内存模型&#xff08;Java Memory Model, JMM&#xff…...

RAG开发

LangChain通用提示词模板&#xff1a;from langchain_core.prompts import PromptTemplate from langchain_community.llms import Tongyiprompt_template PromptTemplate.from_template("我的邻居姓{lastname},刚生了{gender}" )prompt_template.format(lastname …...

EdB Prepare Carefully:定制你的RimWorld完美开局体验

EdB Prepare Carefully&#xff1a;定制你的RimWorld完美开局体验 【免费下载链接】EdBPrepareCarefully EdB Prepare Carefully, a RimWorld mod 项目地址: https://gitcode.com/gh_mirrors/ed/EdBPrepareCarefully 是否厌倦了RimWorld随机生成的殖民者团队带来的不确定…...

【CPython 3.13无锁并发白皮书】:全球首批实测团队披露的4类典型崩溃场景与修复参数

第一章&#xff1a;Python 无锁 GIL 环境下的并发模型配置概览Python 的全局解释器锁&#xff08;GIL&#xff09;本质上限制了 CPython 中多线程对 CPU 密集型任务的并行执行能力。然而&#xff0c;“无锁 GIL 环境”并非指 GIL 被移除&#xff0c;而是指通过绕过 GIL 依赖的并…...

科研助手实战:OpenClaw驱动Qwen3.5-4B-Claude整理文献

科研助手实战&#xff1a;OpenClaw驱动Qwen3.5-4B-Claude整理文献 1. 为什么需要AI文献助手&#xff1f; 作为每周需要阅读数十篇论文的科研狗&#xff0c;我长期被三个问题困扰&#xff1a;一是PDF文献堆积如山却找不到关键结论&#xff1b;二是不同研究间的对比分析需要手动…...

基于springboot图书综合服务平台设计与开发(源码+精品论文+答辩PPT等资料)

博主介绍&#xff1a;CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...

OpenClaw技能开发入门:为百川2-13B量化模型定制自动化模块

OpenClaw技能开发入门&#xff1a;为百川2-13B量化模型定制自动化模块 1. 为什么选择OpenClaw开发技能&#xff1f; 去年冬天&#xff0c;我为了给团队搭建一个内部天气查询助手&#xff0c;尝试过至少三种不同的自动化方案。要么是API调用太复杂&#xff0c;要么是自然语言处…...

OpenClaw备份策略:GLM-4.7-Flash智能管理本地与云端存储

OpenClaw备份策略&#xff1a;GLM-4.7-Flash智能管理本地与云端存储 1. 为什么需要智能备份方案 上周我的移动硬盘突然罢工&#xff0c;导致三个月的项目文档全部丢失。这次惨痛经历让我意识到&#xff1a;传统备份方式已经无法满足现代工作需求。手动备份不仅耗时耗力&#…...

SOME/IP服务发现(SD)避坑指南:从FindService到SubscribeACK,一次讲透所有配置参数与常见故障

SOME/IP服务发现实战手册&#xff1a;从参数配置到故障排查的完整指南 在车载以太网开发中&#xff0c;服务发现&#xff08;Service Discovery&#xff09;机制如同交通信号灯&#xff0c;协调着各个ECU节点之间的通信秩序。想象一下&#xff0c;当一辆智能汽车启动时&#xf…...