Python 之语法糖

article/2025/9/17 21:31:30

目录

定义及意义

示例

赋值

索引与切片

条件表达式

map() 函数

with open()

format() 函数

匿名函数 lambda

推导式


        今天自学时听老师讲到“语法糖”,有点儿迷茫,赶紧忍住口水滴答的冲动,向度娘请教。

定义及意义

        语法糖(Syntactic sugar),也译为糖衣语法,由英国计算机科学家彼得·约翰·兰达发明的一个术语,指计算机语言中添加的某种语法。这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

        之所以叫“语法”糖,不只是因为加糖后的代码功能与加糖前保持一致,更重要的是,糖在不改变其所在位置的语法结构的前提下,实现了运行时的等价。可以简单理解为,加糖后的代码编译后跟加糖前一致。

        之所以叫语法“糖”,是因为加糖后的代码写起来更爽,包括但不限于:代码更简洁流畅,代码更语义自然……写着爽,看着爽,就像吃了糖😂。

        有人将语法糖归类为奇技淫巧,需要声明的是,“语法糖”这个词绝非贬义,它不是糖衣炮弹,更不是口蜜腹剑,它可以给编码带来实实在在的方便,也可以实实在在提高编码的效率,更重要的,在性能上也不会带来损失。

        可见,语法糖是约定俗成的,为编译器所认可的,可以带来方便快捷的,编程语法。一定程度上而言,语法糖可以呈现于书本,流通于码界,也可以诞生于指尖。窃以为,能够带来编码便利的语法,皆可称为糖😁。

        Python 中语法糖随处可见,宛如汉语中的成语和诗词,浩如星海,不胜枚举。本文仅取沧海数粟,供学习参考。

示例

赋值

a, b = b, a
a, b, c = 1, 2, 3

索引与切片

        索引和切片是 python 序列的拿手好戏,应用广泛。 

详见:Python 切片 [-1:],[:-1] 和 [::-1] 之理解适用序列的索引和切片操作https://blog.csdn.net/iprobobo/article/details/123456004

条件表达式

a if b else c

详见:Python 之条件表达式左?还是右?,true 是个问题https://blog.csdn.net/iprobobo/article/details/123537662

map() 函数

s = 'Shanghai'
l = list(map(str, s))

详见:Python map() 函数之举重若轻映射的魅力https://blog.csdn.net/iprobobo/article/details/122798133

with open()

with open(file_name, 'r', encoding='utf-8') as f:print(f.read())

format() 函数

format() 函数常用于格式化字符串,功能非常强大。

>>> '{1:.2f}, {0:.3f}'.format(3.1415926, 0.61803)
'0.62, 3.142'

详见:Python 字符串格式化之 .format()信手拈来https://blog.csdn.net/iprobobo/article/details/123584069 

匿名函数 lambda

        lambda 是一个很有特点的关键字,python 利用其来来创建匿名函数,活用该函数可以轻易解决很多问题。

        例如,将一个学校的学生(student)按年级(grade)、身高(height)逆序排列,只需要一行代码:

student.sort(key = lambda x: (['grade'], ['height']), reverse = True)

        再如将列表(list)对象排序,要求正数居前,负数殿后,且绝对值从小到大:

>>> list = [1, -2, 3, -4, 5, -6, 7, -8]
>>> list.sort(key = lambda x: (x < 0, abs(x)))
>>> list
[1, 3, 5, 7, -2, -4, -6, -8]

详见:Python 匿名函数之 lambda解 lambda 之惑,有这一篇就够了😁https://blog.csdn.net/iprobobo/article/details/123591952

推导式

        推导式是 Python 中常见的语法糖,其中最常见的为列表推导式,可用来过滤、处理列表中的子项并输出一个新的列表。 

>>> a = [i for i in range(10) if i % 2 != 0]
>>> print(a)
[1, 3, 5, 7, 9]

详见:Python 之推导式常用的语法糖https://blog.csdn.net/iprobobo/article/details/123582135

 

        ……

        还有很多很多语法糖,感兴趣的可以跟帖讨论🤗



http://chatgpt.dhexx.cn/article/JcvXW5go.shtml

相关文章

java语法糖

概述 几乎所有的语言都涉及到语法糖&#xff0c;语法糖时啥呢&#xff1f;语法糖其实就是在开发中方便程序员用的一些语法&#xff0c;该语法和正常语法的区别就在于&#xff1a;语法糖在底层其时是不能够被一次性直接实现的&#xff0c;它们需要依靠一些技术或普通语法实现。当…

【python】python语法糖

python 语法糖 1. 什么是语法糖&#x1f36c; 语法糖是由编程语言提供的一种可以让我们写出来的代码在不影响语句执行的功能的条件下&#xff0c;能够让我们的代码看起来更简洁和美观的一种语法。 很多人刚开始接触语法糖的时候&#xff0c;总会说这样一句&#xff1a;“最讨厌…

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;为…