Python:核心知识点整理大全2-笔记

在本章中,你将学习可在Python程序中使用的各种数据,还将学 习如何将数据存储到变量中,以及如何在程序中使用这些变量。

2.1 运行 hello_world.py 时发生的情况

运行hello_world.py时,Python都做了些什么呢?下面来深入研究一下。实际上,即便是运行 简单的程序,Python所做的工作也相当多:hello_world.py

print("Hello Python world!")

运行上述代码时,你将看到如下输出:

Hello Python world! 

运行文件hello_world.py时,末尾的.py指出这是一个Python程序,因此编辑器将使用Python 解释器来运行它。Python解释器读取整个程序,确定其中每个单词的含义。例如,看到单词print 时,解释器就会将括号中的内容打印到屏幕,而不会管括号中的内容是什么。 编写程序时,编辑器会以各种方式突出程序的不同部分。例如,它知道print是一个函数的 名称,因此将其显示为蓝色;它知道“Hello Python world!”不是Python代码,因此将其显示为橙 色。这种功能称为语法突出,在你刚开始编写程序时很有帮助.

第 2 章 变量和简单数据类型

2.2 变量

下面来尝试在hello_world.py中使用一个变量。在这个文件开头添加一行代码,并对第2行代 码进行修改,如下所示:

message = "Hello Python world!"
print(message) 

运行这个程序,看看结果如何。你会发现,输出与以前相同:

Hello Python world!

我们添加了一个名为message的变量。每个变量都存储了一个值——与变量相关联的信息。 在这里,存储的值为文本“Hello Python world!”。

添加变量导致Python解释器需要做更多工作。处理第1行代码时,它将文本“Hello Python world!”与变量message关联起来;而处理第2行代码时,它将与变量message关联的值打印到屏幕。

下面来进一步扩展这个程序:修改hello_world.py,使其再打印一条消息。为此,在 hello_world.py中添加一个空行,再添加下面两行代码:

message = "Hello Python world!"
print(message)
message = "Hello Python Crash Course world!"
print(message) 

现在如果运行这个程序,将看到两行输出:

Hello Python world!
Hello Python Crash Course world!

在程序中可随时修改变量的值,而Python将始终记录变量的最新值。

2.2.1 变量的命名和使用

在Python中使用变量时,需要遵守一些规则和指南。违反这些规则将引发错误,而指南旨在 让你编写的代码更容易阅读和理解。请务必牢记下述有关变量的规则。

 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打 头,例如,可将变量命名为message_1,但不能将其命名为1_message。

 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message 可行,但变量名greeting message会引发错误。

 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词, 如print(请参见附录A.4)。

 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length 比length_of_persons_name好。

 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着你编写的 程序越来越多,并开始阅读别人编写的代码,将越来越善于创建有意义的变量名。

注意 就目前而言,应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误, 但避免使用大写字母是个不错的主意。

2.2.2 使用变量时避免命名错误

程序员都会犯错,而且大多数程序员每天都会犯错。虽然优秀的程序员也会犯错,但他们也 知道如何高效地消除错误。下面来看一种你可能会犯的错误,并学习如何消除它。 我们将有意地编写一些引发错误的代码。请输入下面的代码,包括其中以粗体显示但拼写不 正确的单词mesage:

message = "Hello Python Crash Course reader!"
print(mesage)

程序存在错误时,Python解释器将竭尽所能地帮助你找出问题所在。程序无法成功地运行时, 解释器会提供一个traceback。traceback是一条记录,指出了解释器尝试运行代码时,在什么地方 陷入了困境。下面是你不小心错误地拼写了变量名时,Python解释器提供的traceback:

Traceback (most recent call last):
1 File "hello_world.py", line 2, in <module>
2 print(mesage)
3 NameError: name 'mesage' is not defined

解释器指出,文件hello_world.py的第2行存在错误(见1);它列出了这行代码,旨在帮助你 快速找出错误(见2);它还指出了它发现的是什么样的错误(见3)。在这里,解释器发现了一 个名称错误,并指出打印的变量mesage未定义:Python无法识别你提供的变量名。名称错误通常 意味着两种情况:要么是使用变量前忘记了给它赋值,要么是输入变量名时拼写不正确。 在这个示例中,第2行的变量名message中遗漏了字母s。Python解释器不会对代码做拼写检查, 但要求变量名的拼写一致。例如,如果在代码的另一个地方也将message错误地拼写成了mesage, 结果将如何呢?

mesage = "Hello Python Crash Course reader!"
print(mesage) 

在这种情况下,程序将成功地运行:

Hello Python Crash Course reader! 

计算机一丝不苟,但不关心拼写是否正确。因此,创建变量名和编写代码时,你无需考虑英 语中的拼写和语法规则。 很多编程错误都很简单,只是在程序的某一行输错了一个字符。为找出这种错误而花费很长 时间的大有人在。

很多程序员天资聪颖、经验丰富,却为找出这种细微的错误花费数小时。你可 能觉得这很好笑,但别忘了,在你的编程生涯中,经常会有同样的遭遇。

注意:要理解新的编程概念,最佳的方式是尝试在程序中使用它们。如果你在做本书的练习时 陷入了困境,请尝试做点其他的事情。如果这样做后依然无法摆脱困境,请复习相关内 容。如果这样做后情况依然如故,请参阅附录C的建议。

2.3 字符串

大多数程序都定义并收集某种数据,然后使用它们来做些有意义的事情。鉴于此,对数据进 行分类大有裨益。我们将介绍的第一种数据类型是字符串。字符串虽然看似简单,但能够以很多 不同的方式使用它们。

字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号, 也可以是双引号,如下所示:

"This is a string."
'This is also a string.'

这种灵活性让你能够在字符串中包含引号和撇号:

'I told my friend, "Python is my favorite language!"'
"The language 'Python' is named after Monty Python, not the snake."
"One of Python's strengths is its diverse and supportive community." 

下面来看一些使用字符串的方式。

2.3.1 使用方法修改字符串的大小写

对于字符串,可执行的最简单的操作之一是修改其中的单词的大小写。请看下面的代码,并 尝试判断其作用:

name.py

name = "ada lovelace"
print(name.title()) 

将这个文件保存为name.py,再运行它。你将看到如下输出:

Ada Lovelace

在这个示例中,小写的字符串"ada lovelace"存储到了变量name中。在print()语句中,方法 title()出现在这个变量的后面。方法是Python可对数据执行的操作。在name.title()中,name后 面的句点(.)让Python对变量name执行方法title()指定的操作。每个方法后面都跟着一对括号, 这是因为方法通常需要额外的信息来完成其工作。这种信息是在括号内提供的。函数title()不 需要额外的信息,因此它后面的括号是空的。

title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。这很有用, 因为你经常需要将名字视为信息。例如,你可能希望程序将值Ada、ADA和ada视为同一个名字, 并将它们都显示为Ada。

还有其他几个很有用的大小写处理方法。例如,要将字符串改为全部大写或全部小写,可以 像下面这样做:

name = "Ada Lovelace"
print(name.upper())
print(name.lower()) 

这些代码的输出如下:

ADA LOVELACE
ada lovelace

存储数据时,方法lower()很有用。很多时候,你无法依靠用户来提供正确的大小写,因此 需要将字符串先转换为小写,再存储它们。以后需要显示这些信息时,再将其转换为最合适的大 小写方式。

2.3.2 合并(拼接)字符串 在很多情况下,都需要合并字符串。例如,你可能想将姓和名存储在不同的变量中,等要显示姓名时再将它们合而为一:

first_name = "ada"
last_name = "lovelace"
1 full_name = first_name + " " + last_name
print(full_name)

Python使用加号(+)来合并字符串。在这个示例中,我们使用+来合并first_name、空格和 last_name,以得到完整的姓名(见1),其结果如下:

ada lovelace

这种合并字符串的方法称为拼接。通过拼接,可使用存储在变量中的信息来创建完整的消息。 下面来看一个例子:

first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
1 print("Hello, " + full_name.title() + "!")

在这里,一个问候用户的句子中使用了全名(见),并使用了方法title()来将姓名设置为 合适的格式。这些代码显示一条格式良好的简单问候语:

Hello, Ada Lovelace!

你可以使用拼接来创建消息,再把整条消息都存储在一个变量中:

first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
1 message = "Hello, " + full_name.title() + "!"
2 print(message)

上述代码也显示消息“Hello, Ada Lovelace!”,但将这条消息存储在了一个变量中(见1), 这让最后的print语句简单得多(见2)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/215899.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS提取DEM中的山脉范围

已知数据&#xff1a;DEM文件ASTGTM_N00E118E.img 使用软件&#xff1a;ArcMap 要求&#xff1a;对数据进行操作&#xff0c;提取数据文件中的山脉范围 下面开始操作&#xff1a; 1、 打开ArcMap将DEM文件ASTGTM_N00E118E.img添加到数据框。 2、 接下来我们打开spatial ana…

三十七、XA模式

目录 一、XA模式原理 在XA模式中&#xff0c;一个事务通常被分为两个阶段&#xff1a; 二、Seata的XA模式 RM一阶段的工作&#xff1a; TC一阶段的工作&#xff1a; RM二阶段的工作&#xff1a; 1、优点&#xff1a; 2、缺点&#xff1a; 三、实现XA模式 1、修改yml文…

CYCA少儿形体礼仪 朝阳市培训成果考核圆满落幕

少年成长从形体教育开始——从2020年美育中考落地执行开始&#xff0c;美育成为少儿教育发展的必经之路&#xff0c;助力少儿综合能力全面发展。CYCA中国文化管理协会青少年文化艺术委员会全面贯彻党的教育方针&#xff0c;促进儿童素质艺术教育并深入实施&#xff0c;从少儿形…

12-2 Mybatis-Plus与Spring整合

user-springboot programming 实体类 ## 链接数据源 C3p0&#xff08;原始化&#xff09; 连接池的数据源 引入mysql 自动配置类DataSource会生效 需要你去配置相关的数据库参数 需要用到连接池 数据源的配置类 SpringBoot的测试类 SpringBootTest 原先是RunWith和Conf…

服务异步通讯

四、服务异步通讯 4.1初始MQ 4.1.1同步通讯和异步通讯 同步调用的优点: 时效性较强,可以立即得到结果 同步调用的问题: 耦合度高 性能和吞吐能力下降 有额外的资源消耗 有级联失败问题 异步通信的优点: 耦合度低 吞吐量提升 故障隔离 流量削峰 异步通信的缺点: …

智能优化算法应用:基于入侵杂草算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于入侵杂草算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于入侵杂草算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.入侵杂草算法4.实验参数设定5.算法结果6.参考…

双指针算法: 快乐数 与 盛水最多的容器

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 前言 声明…

前端漏洞--front(系统有user1/user1,admin1/admin1两个用户)

任务一&#xff1a;挖掘反射型XSS漏洞&#xff08;以弹窗test13&#xff09;证明 任务二&#xff1a;复现环境中的CSRF漏洞&#xff0c;设计表单&#xff0c;当管理员点击URL后自动将自己密码重置为&#xff1a;123456 任务三&#xff1a;复现环境中的JSON Hijacking漏洞&#…

开放式耳机怎么选?干货分享! 2023好评度超高开放式耳机推荐!

在现代社会中&#xff0c;人们对于音乐和通话的需求越来越高。传统的耳机虽然能够提供良好的音质&#xff0c;但使用过程中存在一些问题&#xff0c;例如长时间佩戴会引起耳朵疲劳和隔绝周围环境的声音。为了解决这些问题&#xff0c;开放式耳机应运而生&#xff0c;成为了一种…

解决webpack打包生成gz格式css/js文件没法在nginx使用的问题--全网唯一正确

本文绝对是全网解决这个问题唯一正确的文章&#xff0c;没有之一&#xff01; 很多人都说开启nginx gzip压缩&#xff0c;这些人完全是胡说八道&#xff01;你们到底懂不懂叫gzip压缩啊&#xff1f;&#xff01; 不信你就试试&#xff0c;如果css/js只有gz文件&#xff0c;ng…

数组逆序重放

数组逆序重放的意思是将数组的元素逆序排列&#xff0c;然后重新放回原数组中。这个操作可以在很多编程语言中实现&#xff0c;例如Python、Java等。 下面是一个Python的示例代码&#xff0c;可以实现这个操作&#xff1a; def reverse_and_rearrange(arr): # 反转数组 …

面试多线程八股文十问十答第二期

面试多线程八股文十问十答第二期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1.进程和线程的区别 概念不同&#xff1a;进程是操作系统中的一个独立执行单元&a…

Python搭建代理IP池实现接口设置与整体调度

目录 前言 1. 搭建免费代理IP爬虫 2. 将获取到的代理IP存储到数据库中 3. 构建一个代理IP池 4. 实现调度器来调度代理IP池 5. 实现带有代理IP池的爬虫 总结 前言 在网络爬虫中&#xff0c;代理IP池是一个非常重要的组件。由于许多网站对单个IP的请求有限制&#xff0c;…

Python练习题(三)

&#x1f4d1;前言 本文主要是【Python】——Python练习题的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&am…

学生犯错误老师应该怎么教育

作为一名老师&#xff0c;当学生犯错误时&#xff0c;我们需要采取一些措施来帮助他们改正错误并学习如何更好地处理问题。以下是我作为一名老师会采取的几个步骤&#xff1a; 进行私下谈话&#xff0c;了解他们为什么犯错误。我会听取他们的解释&#xff0c;并尝试理解他们的动…

如何能够对使用ShaderGraph开发的Shader使用SetTextureOffset和SetTextureScale方法

假设在ShaderGraph中的纹理的引用名称为"_BaseMap"&#xff0c;同时对这个"_BaseMap"纹理使用了采样的节点"SampleTexture2D"&#xff0c;然后该采样节点的uv接入的TilingAndOffset节点&#xff0c;此时的关键步骤是新建一个Vector4属性&#xf…

深入解析Linux内核网络-拥塞控制系列(一)

谈起网络拥塞控制&#xff0c;大家可能很熟悉八股文中的"加法增大“、”乘法减小“、”慢开始“、“拥塞避免”、“快重传”、“快恢复”等概念。没错&#xff0c;这是一种经典网络拥塞控制算法的基础理论&#xff0c;但在实际的实现时不同的拥塞控制算法&#xff0c;有很…

I/O口接口扩展----82C55

目录 一.扩展的I/O接口功能 二.端口的编址 1.独立编址 2.统一编制 三.I/O数据的传送方式 四.I/O接口电路----82C55 1.82C55的引脚及其内部结构 2.工作方式选择控制字及端口PC置位/复位控制字 3.82C55的三种工作方式 (1)方式0 (2)方式1 (3)方式2 4.AT89S52单片机与…

树_完全二叉树节点个数

//给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 // // 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位…

安卓1.0明显是基于linux内核开发的,安卓1.0是不是linux套壳?

安卓1.0明显是基于linux内核开发的&#xff0c;安卓1.0是不是linux套壳&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「安卓开发资料从专业入门到高级教程工具包」&#xff0c;点个关注&…