Python入门基础系列(四)——语句,表达式和缩进
bigegpt 2024-10-12 05:21 8 浏览
本篇文章将带您了解Python语句,表达式以及它们之间的区别。还包含几个例子来让您更清楚地理解这个概念。接下来我们将解释如何在Python编程中使用多行语句和缩进。另外,我们将尝试回答诸如“ 为什么缩进在Python中如此重要?“,” Python中有多少空格是缩进?“ 等问题。
以下是这篇文章将要讨论的主题。
Python中的语句
1) 什么是陈述?
2) 什么是表达式?
3) 简单分配声明
4) 增强分配声明
Python中的多行语句
1) 显式连续行
2) 隐式连续行
Python缩进
1) 理想的缩进尺寸
2) 为什么缩进重要?
Python中的语句
什么是陈述?
Python中的语句是Python解释器可以读取和执行的逻辑指令。在Python中,它可以是表达式或赋值语句。赋值语句是Python的基础。它定义了表达式创建对象并保留它们的方式。现在让我们来了解关于这个主题的更多细节。
什么是表达式?
表达式是一种Python语句,它包含数字,字符串,对象和运算符的逻辑顺序。该值本身是一个有效的表达式,因此是一个变量。
使用表达式,我们可以执行诸如加,减,连接等操作。它也可以调用一个函数来评估结果。
例子
简单分配声明
在一个简单的任务中,我们创建新的变量,分配和更改值。该语句提供了一个表达式和一个变量名称作为标签来保存表达式的值。
现在我们来仔细看看Python中的三种赋值语句,并且看看底下发生了什么。
案例1:右侧(RHS)只是一个基于价值的表达。
让我们考虑Python中最基本的赋值形式。
Python将在内存中创建一个字符串“Learn Python”,并为其分配名称“test”。您可以使用名为id()的内置函数来确认内存地址。
数字是数据在内存中的位置的地址。现在,您会发现一些有趣的地方。
1.如果您创建另一个具有相同值的字符串,Python将创建一个新对象并将其分配给内存中的其他位置。所以这个规则适用于大多数情况。
2.但是,Python在以下两种情况下也会分配相同的内存地址。
字符串没有空格,并且包含少于20个字符。
整数范围在-5到+255之间。
这个概念被称为Interning。Python可以节省内存。
案例-2:右侧(RHS)是当前的Python变量。
让我们开始下一种类型的赋值语句,其中RHS是当前的Python变量。
上述语句不会触发内存中的任何新分配。这两个变量都会指向相同的内存地址。这就像为现有对象创建一个别名。让我们通过使用id()函数进行验证。
案例-3:右侧(RHS)是一项操作。
在这种类型的声明中,结果取决于操作的结果。我们用下面的例子来分析它。
在上面的例子中,赋值会导致创建一个“float”变量。
在这个例子中,赋值会导致创建一个 “int”变量。
增强分配声明
您可以在赋值中组合算术运算符,以形成增强的赋值语句。
查看扩展赋值语句的以下示例。
x + = y+ = y
以上声明是简单声明的简写。
x = x + y= x + y
接下来是一个更清晰的例子,我们将新元素添加到元组中。
下一个例子是使用元音列表。它演示了将缺失的元音添加到列表中。
Python中的多行语句
通常,每个Python语句都以换行符结尾。但是,我们可以使用行连续字符(\)将其扩展到多行。Python给了我们两种在程序中启用多行语句的方法。
显式行连续
当你马上使用行连续符(\)将语句分成多行时。
例
隐式连续行
隐式行继续是使用圆括号(),括号[]和大括号{}中的任一个拆分语句的情况 。您需要使用所提到的结构附上目标语句。
例
另一个例子
Python缩进
许多高级编程语言(如C,C ++,C#)使用大括号{}来标记一段代码。Python通过缩进来完成它。
代表函数或循环体的代码块以缩进开始,以第一个缩进行结束。
Python中有多少空格是缩进?
Python风格指南(PEP 8)指出,您应该保留4的缩进大小。不过,Google有其独特的风格指南,限制了缩进两个空格。所以你也可以选择不同的风格,但我们建议遵循PEP8。
为什么缩进在Python中如此重要?
大多数编程语言提供缩进以实现更好的代码格式,并且不强制实现。
但是,在Python中,遵守缩进规则是强制性的。通常,我们在代码块中将每行缩进四个空格(或相同数量)。
在前几节的例子中,你可能已经看到我们编写简单的表达式语句,它没有缩进。
但是,为了创建复合语句,缩进将是最有必要的。
例
现在,还可以看到不希望的缩进导致错误的场景。所以让我们尝试缩进一个简单的表达式语句。
如果您打算成为一名相信干净编码实践的专业程序员,那么非常需要了解Python语句,表达式和缩进。
为了充分利用本教程,请在交互模式下使用Python控制台运行本篇给出的例子。它具有合理的命令历史记录功能,因此您可以使用上箭头键恢复以前的语句。
如果你今天学到了新东西,那么别介意进一步分享它。并且可以关注我后续一系列Python入门的相关文章。
相关推荐
- Go语言泛型-泛型约束与实践(go1.7泛型)
-
来源:械说在Go语言中,Go泛型-泛型约束与实践部分主要探讨如何定义和使用泛型约束(Constraints),以及如何在实际开发中利用泛型进行更灵活的编程。以下是详细内容:一、什么是泛型约束?**泛型...
- golang总结(golang实战教程)
-
基础部分Go语言有哪些优势?1简单易学:语法简洁,减少了代码的冗余。高效并发:内置强大的goroutine和channel,使并发编程更加高效且易于管理。内存管理:拥有自动垃圾回收机制,减少内...
- Go 官宣:新版 Protobuf API(go pro版本)
-
原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...
- Golang开发的一些注意事项(一)(golang入门项目)
-
1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...
- golang 托盘菜单应用及打开系统默认浏览器
-
之前看到一个应用,用go语言编写,说是某某程序的windows图形化客户端,体验一下发现只是一个托盘,然后托盘菜单的控制面板功能直接打开本地浏览器访问程序启动的webserver网页完成gui相关功...
- golang标准库每日一库之 io/ioutil
-
一、核心函数概览函数作用描述替代方案(Go1.16+)ioutil.ReadFile(filename)一次性读取整个文件内容(返回[]byte)os.ReadFileioutil.WriteFi...
- 文件类型更改器——GoLang 中的 CLI 工具
-
我是如何为一项琐碎的工作任务创建一个简单的工具的,你也可以上周我开始玩GoLang,它是一种由Google制作的类C编译语言,非常轻量和快速,事实上它经常在Techempower的基准测...
- Go (Golang) 中的 Channels 简介(golang channel长度和容量)
-
这篇文章重点介绍Channels(通道)在Go中的工作方式,以及如何在代码中使用它们。在Go中,Channels是一种编程结构,它允许我们在代码的不同部分之间移动数据,通常来自不同的goro...
- Golang引入泛型:Go将Interface「」替换为“Any”
-
现在Go将拥有泛型:Go将Interface{}替换为“Any”,这是一个类型别名:typeany=interface{}这会引入了泛型作好准备,实际上,带有泛型的Go1.18Beta...
- 一文带你看懂Golang最新特性(golang2.0特性)
-
作者:腾讯PCG代码委员会经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。一、Go语言发展历史...
- Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移
-
以下文章来源于GoOfficialBlog,作者GoOfficialBlogIntroductionagollo是Apollo的Golang客户端Apollo(阿波罗)是携程框架部门研...
- Golang使用grpc详解(golang gcc)
-
gRPC是Google开源的一种高性能、跨语言的远程过程调用(RPC)框架,它使用ProtocolBuffers作为序列化工具,支持多种编程语言,如C++,Java,Python,Go等。gR...
- Etcd服务注册与发现封装实现--golang
-
服务注册register.gopackageregisterimport("fmt""time"etcd3"github.com/cor...
- Golang:将日志以Json格式输出到Kafka
-
在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/...
- 如何从 PHP 过渡到 Golang?(php转golang)
-
我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗旨,从零开始,开始学习。因为我司没有专门的Golang大牛,所以我也只能一步步自己去...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)