转载请注明出处️

作者:测试蔡坨坨

原文链接:caituotuo.top/a52bc938.html

大家好,我是测试蔡坨坨。

今天,我们来盘点一下Python中的那些语法糖。

什么是语法糖?语法糖不是糖,而是编程语言中某些特殊的写法

作为最体贴程序员的编程语言——Python,就有很多语法糖。

有了这些特殊写法,可以让我们的代码写起来更加简洁,更加容易理解,使得程序员在撸代码的时候更加happy,因此叫做语法糖,给你点甜头尝尝,提升幸福感!

交换两个变量的值

交换两个变量的值,这个需求相信每个学编程的人都遇到过,例如:有两个变量a、b,要求交换a、b的值

# 先定义两个变量
a = 1
b = 2
print('交换前:', a, b) # 交换前: 1 2 # 交换a、b的值
# 传统写法
# 先引入一个变量c,用c作为中介来倒腾,需要三句代码
c = a
a = b
b = c
print('交换后:', a, b) # 交换后: 2 1 # 语法糖写法
a1 = "蔡"
b1 = "坨坨"
print(a1, b1) # 蔡 坨坨
# 只需下面一句代码
a1, b1 = b1, a1
print(a1, b1) # 坨坨 蔡

用下划线分割数字

当我们在代码中定义一个很大的数值时,不容易直接看出具体是多少,数起来实在是令人眼瞎

例如:定义一个值为100亿的数字

# 传统写法
number1 = 10000000000
# 改进版写法
number2 = 100 * 10000 * 10000
# 语法糖写法
number3 = 100_0000_0000
print(number1)
print(number2)
print(number3)

判断变量范围

# 例如:判断绩效等级
# A:(4.5,5]
# B:(4,4.5]
# C:(3.5,4]
# 传统写法
score = 4.6
if score > 4.5 and score <= 5:
print('A')
elif score > 4 and score <= 4.5:
print('B')
elif score > 3.5 and score <= 4:
print('C')
# 语法糖
if 4.5 < score <= 5:
print('A')

字符乘法

有时为了方便分割输出内容,我们会敲上一行分割线,比如下面这个栗子

# 传统写法
print('-----------------------------------')
# 语法糖写法
print('-' * 100)
print('/' * 100)
print('&' * 100)

打包与解包

# 解包
# 有一个元组,需打印元组中的每个值
# 传统写法
a = (1, 2, 3)
x = a[0]
y = a[1]
z = a[2]
print(x, y, z) # 1 2 3
# 语法糖写法
x, y, z = a
print(x, y, z) # 1 2 3 # 打包
b = (x, y, z)
print(b) # (1, 2, 3)

列表拼接

# 有两个列表
list1 = ['蔡', '坨', '坨']
list2 = ['6', '6', '6']
list3 = list1 + list2
print(list3) # ['蔡', '坨', '坨', '6', '6', '6']

列表切片

list4 = ['测', '试', '蔡', '坨', '坨', '6', '6', '6']
# 取出正数第三个到倒数第二个之间的值组成新列表
print(list4[3:-2]) # ['坨', '坨', '6']
# 前五个元素
print(list4[:5]) # ['测', '试', '蔡', '坨', '坨']
# 后三个元素
print(list4[-3:]) # ['6', '6', '6']

with语句

# 例如:文件读取操作
# 传统写法:1.打开文件 2.读取文件 3.关闭文件
f = open('caituotuo.txt', 'rb')
text = f.read()
print(text)
f.close() # with写法,会自动close
with open('caituotuo.txt', 'rb') as f:
text2 = f.read()
print(text2

列表推导式

# 定义一个列表
a = [1, 2, 3]
# 需要列表中的每个元素加上100.组成新的列表b
# 传统写法
b = []
for i in a:
b.append(i + 100)
print(b) # [101, 102, 103]
# 语法糖写法
b = [i + 200 for i in a]
print(b) # [201, 202, 203]

PS:虽然它叫列表推导式,但同样适用于字典和集合

有了这些语法糖,让枯燥的编码工作变得有趣,记不住怎么办,建议收藏起来!!!

Python语法糖,提升编程幸福感!!!的更多相关文章

  1. Python 语法糖装饰器的应用

    Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里. 为什么需要装饰器 我们假设你的程序实现了say_hello()和say_goodbye()两个函数. def sa ...

  2. python 语法糖是什么意思

    语法糖指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法.语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读.不过其并没有给语言添加什么新东西.

  3. python语法基础-并发编程-进程-进程理论和进程的开启

    ############################################## """ 并发编程的相关概念: 进程 1,运行中的程序,就是进程,程序是没有生 ...

  4. python语法基础-并发编程-线程-长期维护

    ###############   线程和GIL,全局解释器锁    ############## """ 线程 为什么会有进程? 主要是能够同时处理多个任务,多个任务还 ...

  5. python语法基础-网络编程-TCP协议和UDP协议

    ###############    网络编程    ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...

  6. python语法糖/装饰器

    1.python高阶函数和嵌套函数 1.1高阶函数 def func1(x): return x**2 def func2(x): return x**3 def func(x,y): return ...

  7. python语法基础-并发编程-进程-进程池以及回调函数

    ###############   进程池    ############## """ 进程池的概念 为什么会有进程池? 1,因为每次开启一个进程,都需要创建一个内存空间 ...

  8. python语法基础-并发编程-线程-线程理论和线程的启动

    #######################       线程介绍         ############################## """ 线程介绍 为什 ...

  9. python语法基础-并发编程-进程-进程锁和进程间通信

    ###############   守护进程  ############## """ 守护进程 父进程中将一个子进程设置为守护进程,那么这个子进程会随着主进程的结束而结束 ...

随机推荐

  1. css的过渡transition和动画animation

    过渡 过渡(transition)是CSS3中具有颠覆性的特性之一,我们可以在不使用Flash动画或JavaScript的情况下,当元素从一种样式变换为另一种样式时元素添加效果.过渡动画:是从一个状态 ...

  2. 【问题解决】'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

    问题复述 今天项目组有人找我说之前部署的程序在测试环境没问题,到生产环境出现了奇怪的问题,点按钮没反应. 我通过腾讯会议发现他们的浏览器控制台上打出了如下错误: Access to XMLHttpRe ...

  3. windows 存储和切换 ip 配置

    我的虚拟机用的是桥接模式,在公司使用时设置的是静态 ip,但网段和家里面的不一样,就导致在公司和家里,我需要频繁修改 ipv4 的配置以适应不同的网络环境 Simple-IP-Config 工具解决了 ...

  4. 无线:SSID

    BSSID,SSID,ESSID区别   SSID(Service Set Identifier)   SSID,AP唯一的ID码,许多人认为可以将SSID写成ESSID,其实不然,SSID是个笼统的 ...

  5. 用Repo管理自己的本地仓库

    AOSP使用Repo工具管理项目源码.而Repo工具则依赖一个名叫manifest的git仓库来记录Android源码中都包含哪些子仓库. 进入Android源码根目录下的.repo目录,可以看到ma ...

  6. Zookeeper安装学习(一)

    学习内容:Zookeeper本地安装 前提准备:①JDK安装成功 ②通过XShell7将Zookeeper安装包(apache-zookeeper-3.5.7-bin.tar.gz)拷贝到Linux系 ...

  7. python之装饰器补充与递归函数与二分查找

    目录 多层装饰器 有参装饰器 递归函数 基本演示 斐波那契数列 总结 小拓展 算法之二分法 简介 举例 总结 多层装饰器 我们已经知道了语法糖的作用是将装饰对象自动装饰到装饰器中,一个语法糖的应用我们 ...

  8. Python常用标准库(pickle序列化和JSON序列化)

    常用的标准库 序列化模块 import pickle 序列化和反序列化 把不能直接存储的数据变得可存储,这个过程叫做序列化.把文件中的数据拿出来,回复称原来的数据类型,这个过程叫做反序列化. 在文件中 ...

  9. SMFL 教程&个人笔记

    本文大部分来自官方教程的Google翻译 但是加了一点点个人的理解和其他相关知识 转载请注明 原文链接 :https://www.cnblogs.com/Multya/p/16273753.html ...

  10. 图的连通性--Tarjan算法

    一些概念 无向图: 连通图:在无向图中,任意两点都直接或间接连通,则称该图为连通图.(或者说:任意两点之间都存在可到达的路径) 连通分量: G的 最大连通子图 称为G的连通分量. 有向图 (ps.区别 ...