【python】python语法糖

article/2025/9/17 21:36:39

python 语法糖

1. 什么是语法糖🍬

语法糖是由编程语言提供的一种可以让我们写出来的代码在不影响语句执行的功能的条件下,能够让我们的代码看起来更简洁和美观的一种语法。

很多人刚开始接触语法糖的时候,总会说这样一句:“最讨厌语法糖,不好好说话”,当学会使用了语法糖之后:
在这里插入图片描述

要说语法糖这东西,其实可以联想到C语言大神,能把宏定义玩出花来,被玩出花来的宏我愿称之为自创语法糖。

2. 经典的 a 和 b

当我们需要交换两个数字的值的时候,相信很多人都写过这句代码

a, b = 10, 20
t = a
a = b
b = t
print(a, b)

python给我们提供了一种交换a 和 b的值的语法糖

a, b = 10, 20
a, b = b, a
print(a, b)

程序输出为:

20 10

实际上,在python内部,这句a, b = b, a在使用了之后,内存空间的变化如下:

刚开始:
在这里插入图片描述

交换后:
在这里插入图片描述

学习C语言指针从入门到入坟的人:DNA动了😂

3. 数字用下划线间隔

当我们需要一个很大很大的整数的时候,比如一百亿,我们采用以下写法

>>> a = 10000000000
>>> a
10000000000

啊,个,十,百,千,万,十万,百万,千万,亿,十亿,百亿……

这里可以使用科学计数法,但是还有另外一种方法让我们看清这个数字更加的容易,当然,记不住千,百万,亿……等跳跃性单位的人还是要一个一个数的,只是变得好数了一点。

>>> a = 10_000_000_000
>>> a
10000000000

使用下划线可以在编写数字的时候把数字划分开,方便我们阅读(悦读)

4. 数字大小的比较

当我们需要判断一个学生的成绩在80到90,学生的成绩为良的时候,在某些语言中,我们需要这么写:

在这里插入图片描述

if (grade >= 80 && grade < 90)
{printf("%s\n","good");//cout << "good" << endl;
}

这判断条件看的眼睛都花了,,

python就比较善解人意了,只需要这样写,和我们做数学题的时候表示区间范围一模一样~简单易懂

if 80 <= grade < 90:print('良')

除了以上这个,我们在判断很多变量之间的大小关系的时候,再也不用两两比对了,而是可以写为下面这种:

>>> x = 1
>>> y = 2
>>> z = 3
>>> n = 4
>>> m = 5
>>> if x < y < z < n < m:print('life is short, we need python!')

程序输出为:

life is short, we need python!

5. 列表相加

我们有两个列表,现在我们需要把两个列表合并,按照传统的某些语言的写法,我们需要一个一个元素挪,但是python不用,我们直接相加就好

>>> lis1 = [1, 2, 3, 4, 5]
>>> lis2 = [6, 7, 8, 9, 0]
>>> print(lis1 + lis2)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

我测试过元组,也可以输出结果,但是元组属于不可更改对象,所以不建议元组相加。

6. 列表切片

现在我们拥有一个列表,我们需要把列表中的一块内容取下,按照某些编程语言的逻辑,我们需要得到需要的内容的首元素下标和截至元素的下标,然后使用一个循环获取,不难,但是麻烦,python就提供了列表切片的语法,字符串,元组也同样适用

>>> list1 = [2, 4, 6, 8, 10]
>>> list1[:5]
[2, 4, 6, 8, 10]
>>> list1[3:5]
[8, 10]
>>> list1[1:4]
[4, 6, 8]

我们可以在中括号内输入我们获取的列表中的元素的首地址和截至元素的地址,切片语法有几个重点

  • list[start : end]获取我们需要的范围
  • start默认为0,end 默认为列表的长度
  • 切片的区间为左闭右开区间,也就是list[start]能够取到,list[end]不能取到

7. 三元表达式

当我们使用C/C++语法的时候需要写if-else 语句的时候,我们可以使用三元表达式替换if-else语句,

int a;
int b;
int max;
if (a > b) {max = a;
} else {max = b;
}

这里是简单的三元表达式,当我们使用C/C++中的三元运算符简化的时候

int a;
int b;
int max;
max = a > b ? a : b;//等价以上的if-else语句

python也提供相似的功能

_max = a if a > b else b

三元表达式语法可以表达为:

结果 = 选项一 if 条件 else 选项二

如果条件为真选前面的, 如果条件为假选后面的那个

8. 元素的打包和解包

当我们有一个元组,里面用来存一个空间中的坐标,比如:

(1, 3, 5)

现在我们需要把三个元素拿出来,一般的写法是:

>>> zi = (1, 3, 5)
>>> x = zi[0]
>>> y = zi[1]
>>> z = zi[2]
>>> x, y, z
(1, 3, 5)

其实不用,我们只需要这样写

>>> x, y, z = zi
>>> x
1
>>> y
3
>>> z
5
>>> 

用这种方法匹配一个元组,我们用来直接匹配的数字和元组元素的数量一定要一模一样,多了少了都不行,同样,列表也同样可以一键匹配,并且反向打包也可以

#接上
>>> lis = x, y, z
>>> lis
(1, 3, 5)

9. 列表推导式

列表推导式应该是所有语法糖中最常用的了,甚至我们还能在列表推导式后面加判断条件

>>> list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list3 = [x for x in list2]
>>> list3
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list4 = [x for x in list2 if x % 2 == 0]#加判断条件
>>> list4
[2, 4, 6, 8]

虽然叫做列表推导式,但是我们集合,字典也能够使用

集合:

>>> list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> set1 = {x for x in list2}
>>> set1
{1, 2, 3, 4, 5, 6, 7, 8, 9}

字典:

>>> list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> dict1 = {i : i + 100 for i in list2 if i % 2 == 0}
>>> dict1
{2: 102, 4: 104, 6: 106, 8: 108}

http://chatgpt.dhexx.cn/article/1KpmqW0U.shtml

相关文章

Java 中的语法糖,真甜。

我把自己以往的文章汇总成为了 Github &#xff0c;欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 我们在日常开发中经常会使用到诸如泛型、自动拆箱和装箱、内部类、增强 for 循环、try-with-resources 语法、lambda 表达式等&#xff0c;我们只觉得用的很爽&…

Python语法糖系列

语法糖说明 语法糖&#xff08;Syntactic sugar&#xff09;&#xff1a;计算机语言中特殊的某种语法这种语法对语言的功能并没有影响对于程序员有更好的易用性能够增加程序的可读性简而言之&#xff0c;语法糖就是程序语言中提供[奇技淫巧]的一种手段和方式而已。 通过这类方…

什么是语法糖?Java中有哪些语法糖?

本文从 Java 编译原理角度&#xff0c;深入字节码及 class 文件&#xff0c;抽丝剥茧&#xff0c;了解 Java 中的语法糖原理及用法&#xff0c;帮助大家在学会如何使用 Java 语法糖的同时&#xff0c;了解这些语法糖背后的原理 1 语法糖 语法糖&#xff08;Syntactic Sugar&…

不了解这12个语法糖,别说你会Java!

阅读本文大概需要 10 分钟。 作者:Hollis 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理 语法糖 语法糖(Syntactic Sugar),也称糖衣语法,是由英…

什么是语法糖(Syntactic sugar)?

大学时没选修编译原理这门课&#xff0c;不知道什么是语法糖&#xff0c;最近看React的官方文档才接触语法糖的概念&#xff0c;简单查了下资料记录下&#xff0c;以下是来自百度百科的解释&#xff1a; 语法糖&#xff08;Syntactic sugar&#xff09;&#xff0c;也译为糖衣语…

el-steps分布展示页面

<template><div class"app-container automation"><el-steps :active"active" finish-status"success"><el-step title"步骤 1"></el-step><el-step title"步骤 2"></el-step>&l…

038_Steps步骤条

1. Steps步骤条 1.1. Steps步骤条引导用户按照流程完成任务的分步导航条, 可根据实际应用场景设定步骤, 步骤不得少于2步。 1.2. Steps Attributes 参数 说明 类型 可选值 默认值 space 每个step的间距, 不填写将自适应间距。支持百分比。 number / string 无 无 d…

更改el-steps颜色样式

原样式&#xff1a; 目标样式如下&#xff0c;也不追求完全一致&#xff0c;至少得看得过去。 <style scoped>::v-deep .el-step__head.is-success {color: rgb(52, 158, 250);border-color: rgb(52, 158, 250); } ::v-deep .el-step__title.is-success {font-weight: …

vue使用steps步骤条,自定义内容

效果图 一、引入element ui steps <el-steps :active"caseHistoryData.length" finish-status"success" direction"vertical" ><el-step><template slot"description"></template></el-step> </el-…

steps.js 步骤条、时间轴

GitHub地址&#xff1a;https://github.com/fxss5201/steps 介绍 首先看一下目录&#xff1a; 1.0 文件夹和 2.0 文件夹非升级关系&#xff0c;两者仅是着重点方向不一致&#xff0c;1.0 主打双边显示&#xff0c;2.0 主打内容排序&#xff0c;一般功能的话两者均可满足。 …

CSS3中steps()动画的详解

原文作者&#xff1a;Joni Trythall 增修作者&#xff1a;Fegmaybe 一个是雪碧图的实现动画的steps效果。steps&#xff08;&#xff09;阶跃函数&#xff0c;是transition-timing-function和animation-timing-function两个属性的属性值&#xff0c;他是表示两个关键帧之间的动…

css【详解】steps()函数

steps(number, position)number 整数值&#xff0c;表示把动画分成了多少段。position 可选参数&#xff0c;表示动画跳跃执行是在时间段的开始还是结束。 —— start 在时间段的开头处跳跃 —— end 在时间段的结束处跳跃 动画效果见 https://demo.cssworld.cn/new/5/4-7.php…

steps函数--参数意思和用法

图片解释如下&#xff0c;参数意思和用法在代码的注释中 所引用图片共7帧&#xff0c;如下&#xff1a; 尺寸为200*1400&#xff0c;所以设置div为200*200&#xff0c;分为7帧&#xff0c;除去展示帧&#xff0c;需六次步骤跳转&#xff0c;原图如下&#xff1a; 代码&…

element的步骤条整合表单(steps+form)

先上效果图&#xff1a; element ui 组件库官网 使用步骤&#xff1a; 1、页面组合步骤 > 5步 定义出4个步骤&#xff08;看你自己需要几步&#xff09;定义form表单定义4个盒子对象active属性 > 1 到 4放置表单项设置上一步和下一步的按钮 <template>//第一步…

vue、Steps 步骤条、Steps 属性、vue Steps 所有步骤条样式、vue Steps 步骤条全部属性

vue、Steps 步骤条、Steps 属性、vue Steps 所有步骤条样式、vue Steps 步骤条全部属性 设计规则何时使用 代码演示1.基本用法2.迷你版3.带图标的步骤条4.步骤切换5.竖直方向的步骤条6.竖直方向的小型步骤条7.步骤运行错误8.点状步骤条9.自定义点状步骤条 APIStepsSteps.Step 设…

组件封装 - steps组件

首先, 我先来看看效果 steps 组件的封装和 tabs 组件还是相似的 都会去指定两个组件来完成(仿Element UI), 都会去使用 jsx 的语法 让其中一个组件去规定样式和排版, 另外一个组件去接收父组件传入的动态数据 但和面包屑组件还是有区别的(面包屑组件封装): 相同点都是使用两…

ElementUi Steps 步骤条的使用

效果&#xff1a; 实现&#xff1a; <el-steps :active"active" finish-status"success"><el-step title"步骤 1"></el-step><el-step title"步骤 2"></el-step><el-step title"步骤 3"&…

el-steps(步骤条)的入门学习

el-steps(步骤条)的入门学习 适用场景 在有步骤流程的情况下&#xff0c;可以设置步骤条&#xff0c;引导用户向下操作&#xff0c;如四六级的报考 知识点 el-steps嵌套el-step使用el-steps的active设置Number&#xff0c;从零开始el-steps的space设置Number&#xff0c;为…

Vue2步骤条(Steps)

Vue3步骤条&#xff08;Steps&#xff09; 可自定义设置以下属性&#xff1a; 步骤标题数组&#xff08;stepsLabel&#xff09;步骤描述数组&#xff08;stepsDesc&#xff09;步骤总数&#xff08;totalSteps&#xff09;&#xff0c;默认3当前选中的步骤&#xff08;curren…

Vue3步骤条(Steps)

Vue2步骤条&#xff08;Steps&#xff09; 可自定义设置以下属性&#xff1a; 步骤数组&#xff08;steps&#xff09;&#xff0c;类型&#xff1a;Array<{title?: string, description?: string}>&#xff0c;默认 [] 当前选中的步骤&#xff0c;设置 v-model 后&a…