Python探索之旅 | 第一部分第四课:变量的奇幻世界

做者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。 转载请注明出处。 原文:www.jianshu.com/p/d88e11bc7…程序员

《Python探索之旅》全系列编程

内容简介


  1. 前言
  2. 什么是变量及变量的做用
  3. Python 的数据类型
  4. 第一次使用函数
  5. 总结
  6. 第一部分第五课预告

1. 前言


在上一课 Python探索之旅 | 第一部分第三课:初识Python的解释器 中,尽管你可能没有注意到,但其实你已经输入了 Python 的第一条命令。bash

从如今开始,咱们将逐渐深刻学习 Python 的语法。这一课咱们来学习一个重要的编程概念:变量微信

变量,在英语中是 variable,表示“变量,可变的,易变的”。编程语言

变量这个概念相当重要,必定要好好掌握。但我向你保证,这一课没有什么太复杂的内容,让咱们开始愉快的学习之旅吧~函数

2. 什么是变量及变量的做用


变量是大多数(甚至是全部)编程语言中都有的概念之一。咱们能够说,没有变量就不能编程,这并不夸张。就好像咱们说“无胡歌不仙剑”同样:“无变量不编程”。学习

变量是什么?

变量简单来讲就是你的程序中的数据,存储在计算机中的。变量是由字母、数字和其余符号组成的代码,你能够将其连接到程序中的数据,以即可以屡次使用它并对其进行一些更有意思的操做。在程序中能够进行操做是很好的,可是若是不能将操做的结果存储在某个地方,那么很快就会显得有点无聊了。测试

咱们能够将计算机的内存(memory)想像成一个有不少抽屉的大柜子。每一个抽屉均可以包含数据,其中一些数据将是程序中的变量。ui

变量是如何工做的


这很是简单。你能够想象你对 Python 说:“我但愿在我命名的 age (表示“年龄”)变量中存储个人年龄,这样我就能够记住个人年龄(若是个人记忆力不是那么好的话),对这个变量加一(每当我过生日那天),而且在必要时显示这个变量的值。”this

目前你可能还看不到存储程序中的数据的意义。可是,若是你什么也不存储,那你也几乎什么都作不了。

在 Python 中,要给变量赋值,是很是简单的,只须要这样写:

variable_name = value
复制代码

variable_name 是变量名,name 表示“名字”。value 是变量的值,value 表示“值”。变量名和变量的值之间用 = 号链接。

变量必须遵照一些基本的语法规则:

  1. 变量名只能由英文字母(大写或小写字母)、数字和下划线符号(_)组成。例如 my_age_2

  2. 变量名不能以数字开头。所以,2_my_age 不是合法的变量名。

  3. Python 区分大小写,这意味着 AGEaGeage 是不一样的变量。

除了以上必须遵照的命名规则外,每一个程序员也有一些我的的命名习惯。我本身比较倾向于两种变量命令的习惯:

  • 第一种命名习惯:变量名都是由小写字母构成,并用下划线 _ 链接单词。例如,若是我须要建立一个储存本身年龄的变量,则会将其命名为 my_age。my 表示“个人”。

  • 第二种命名习惯:变量名中每一个单词的第一个字母大写,但第一个单词的第一个字母小写,例如 myAge

你可使用任何你喜欢的命名习惯,可是尽可能在你的程序中保持一致的命名习惯,特别是当你参与大型项目时。

所以,若是我建立存储个人年龄的变量,能够用如下语法:

my_age = 32
复制代码

按下回车以后,Python 的解释器当即显示主提示符 >>>,没有任何消息。这意味着 Python 解释器正确理解了你的输入,而且没有发现任何错误。

上面的 my_age = 32 这一操做一般被称为“将值分配给变量”(或简称为“变量赋值”)。咱们说,已经将 32 这个值分配给了变量 my_age

如今,你只需在 Python 解释器中输入该变量的名字,便可显示它的值:

变量名,= 符号,和变量的值之间的空格数目是可选的。我这里用了一个空格,出于可读性考虑。

好的,一切看起来都那么美好,可是咱们能够用此变量来作什么操做呢?

你能够对此变量进行不少操做,包括上一课咱们所作的数学运算,只不过这一次你是用变量名来代替整数值了。你甚至能够将此变量进行计算后的值再赋值给此变量自身。

例如,让咱们尝试将 my_age 这个变量的值加 2,再赋值给它本身:

my_age = my_age + 2
复制代码

如今,让咱们尝试对 my_age 变量进行操做,并把操做后的值分配给另外一个变量 my_age_x2

my_age_x2 = my_age * 2
复制代码

变量赋值的概念并不复杂,但却很是强大。与某些编程语言相比,在 Python 中为变量赋值是很是简单的。若是你事先没有建立变量,Python 会自动为你打理一切。若是该变量已经存在,则将旧值删除并替换为新值。还有什么比这更简单的呢?

此外,有一些关键字(keyword)是 Python 预留的,也就是说,你不能使用这些关键字来命名变量。

如下是 Python 3 的关键字列表(一共有 33 个关键字,除前三个关键字,其他按英语字母表顺序排序):

False True None
and as assert break class continue
def del elif else except finally
for from global if import in
is lambda nonlocal not or pass
raise return try while with yield

这些关键字是被 Python 所保留的,所以你不能使用这些名称来为变量命名。

上表中,前三个关键字(False,True,None)的首字母是大写的,其他的关键字首字母都是小写。

请不要去死记硬背这些关键字,随着你用 Python 编程的深刻,你天然而然会记住它们的。咱们的课程也会用到这些关键字中的大部分。

3. Python 的数据类型


接下来,咱们要学习在许多编程语言中都有的一个很是重要的概念。请认真对待,由于你必须熟悉这个概念,才能继续本课程的学习。放心,只要你专心,就不会有什么太复杂的概念。

什么是数据类型?

数据类型,在英语中是 data type。data 表示“数据”,type 表示“类型”。

到目前为止,咱们在程序中只使用过数字。虽然咱们不多会编写没有任何数字的程序,可是数字绝对不是咱们能够在 Python 中使用的惟一数据。以后的课程中,咱们甚至还会学习如何建立你本身的数据类型。

Python 须要知道使用的数据是什么类型的,以便知道对此数据能够执行哪些操做。

在本课中,你将学习如何使用字符串。对字符串作“乘法”,和对数字作乘法,是不同的。对于某些类型的数据,乘法更是没有意义的。所以,Python 将每一个数据与一个类型相关联,类型决定了对此数据能够进行哪些操做。

不一样的数据类型


暂时,咱们只会学习最经常使用和最容易处理的数据类型。之后会有专门的章节,用于讲解更复杂的数据类型。

整数

是的,Python 将整数与浮点数区分开。

为何要区分开呢?

最初,主要是为了解决内存空间的问题。但对于计算机而言,对浮点数执行的操做与对整数执行的操做并不相同,所以这种区分仍然有意义。

整数类型在 Python 中是 int(int 是 integer 的缩写,表示“整数”)。整数,简单来讲是没有小数点的数字。例如:

7
复制代码

在上一课中,咱们已经学习过对整数类型的数据能够执行哪些操做。所以,咱们再也不赘述。

浮点数

浮点数,简单来讲是带小数点的数,例如 3.14。浮点数在 Python 中是 float(float 表示“浮动”)。若是一个数字没有浮点部分(小数点后面的部分),可是你但愿 Python 将其视为浮点数,则能够向其添加浮点部分 0,例如 52.0

小数点后的数字位数不是无限的,由于在计算机科学中没有什么是无限的。可是精确度对于处理高精度的数据是很是重要的。

字符串

幸亏,Python 中可用的数据类型不只限于数字。咱们在本课中学习的最后一个经常使用的“简单”类型是字符串。这种类型的数据能够存储一连串字符(character)。

字符串,在英语中是 string。string 的原意是“一串,一行,弦,线”。

在 Python 中,你可使用不一样的方式来书写字符串:

  • 用双引号做为定界符,例如 "this is a string"
  • 用单引号做为定界符,例如 'this is a string'
  • 用三个双引号做为定界符,例如 """this is a string"""
  • 用三个单引号做为定界符,例如 '''this is a string'''

咱们能够像对待数字(和全部数据类型)同样,将字符串存储在变量中,例如 my_string = "Hello, everybody!"

若是使用简单的定界符(双引号或单引号)将字符串括起来,此字符串中又有双引号或单引号,则会出现问题。

例如,若是输入 string = 'I'm Iron Man!',则会收到错误信息:

这是由于 Python 认为 I'm 中的单引号是字符串的结尾,就不知道拿后面的字符怎么办了。

为了克服这个问题,咱们必须在字符串的中间对单引号进行特殊处理。所以,咱们在字符串中包含的单引号以前插入反斜杠字符 \

string = 'I\'m Iron Man!' 复制代码

若是将双引号用做定界符,则必须转义双引号:

string = "\"A strong man will struggle with the storms of fate.\" (Thomas Addison)"
复制代码

\(反斜杠)被称为“转义字符”,用于转义其余有用的符号。

例如,\n 是“换行符”,能够对字符串进行换行(例如,"I'm Oscar.\nWhat's your name?")。

能够看到,Python 解释器显示了换行符,不过,是以 \n 原样输出的。在下面的内容中,咱们将看到如何实际显示这些字符串,以及解释器为何没有按咱们所指望地显示它们。

要在字符串中写一个反斜杠自己,你必须先对其进行转义,写成 \\

使用三引号 """ 做为字符串的定界符,能够省去转义双引号和单引号的步骤。并且,你不须要用 \n 做为换行符,也能够编写多行。

能够看到,>>> 提示符被 ... 提示符代替。这意味着 Python 解释器认为你还没有完成此命令的输入。直到新的 >>> 符号出现时,才宣告结束。换行符将在字符串中被自动替换为 \n

你可使用三个单引号 ''' 来代替三个双引号 """。我我的不太使用 ''' 定界符,可是你得知道这种写法的存在,若是你之后在别人的 Python 代码中看到 ''',没必要感到惊讶。

好的,咱们已经完成了简单数据类型的介绍。

一点小技巧


在上一课中,咱们学习了用于处理数字的“经典”运算符(+-*///%)。这些运算符不止能操做数字,咱们以后也会看到它们还能够进行其余数据类型的操做。

在你之后的 Python 编程中,你常常会对变量进行“增长操做”。增长操做是指将变量的值加上一个数字。到目前为止,咱们是用如下操做来将变量增长 1 的:

variable = variable + 1
复制代码

这种语法很清晰直观,可是比较冗长。众所周知,程序员天生就是“懂得偷懒”的。所以,咱们发明了更短的写法:

variable += 1
复制代码

运算符 += 等效于将变量后面的值加到变量中。运算符 -=*=/=%=//= 的用法是同样的。你能够自行测试一下。

一些技巧


Python 提供了一种很是简单的方法来交换两个变量(交换它们的值)。在其余编程语言中,咱们常常须要第三个变量的辅助,这第三个变量用于保存两个变量的值中的一个。可是,在 Python 中咱们能够很简单地达到目的:

a = 7
b = 30
a,b = b,a
复制代码

如你所见,在执行第 3 行以后,变量 a 和 b 已经交换了它们的值。

咱们还能够很是简单地将相同的值分配给多个变量:

x = y = 7
复制代码

并且,咱们还能够将一行比较长的命令写在几行中,用 \(反斜杠)符号:

如你所见,符号 \(反斜杠)向 Python 表示“此命令在下一行继续”。这样,你就能够将命令分红几行。命令分几行写的时候,能够看到 >>> 这个主提示符就变为 ... 这个副提示符了。

4. 第一次使用函数


好的,一切进展顺利~

不过,我想在这有关变量的一课的最后,介绍一下函数的使用。虽然以后咱们会有专门的一课来说解函数,可是我接下来要向你展现的知识点,仍是颇有用的,也能够做为函数的入门。

使用函数

函数是什么?

函数,在英语中是 function,表示“函数,功能,运做”。

顾名思义,函数是有必定功能的,是会执行一些操做(运做)的。

函数执行必定数量的预先存储的命令。简单来讲,函数就像存储了多个命令(例如,“起床,穿衣服,洗漱,吃早饭,上班”)以执行特定操做,并给它起个名字(例如,“早上作的事”)。而后,你就能够根据须要,屡次调用此函数的名称便可(这避免了屡次重复书写这些命令)。咱们在函数那一课会更详细地介绍相关知识点。

大多数函数都须要至少一个参数(parameter)来处理数据。这些参数是你传递给函数的信息,以便函数能够处理这些信息。我要向你展现的函数也不例外。目前,这些知识点彷佛有些难懂,可是请放心,咱们会用示例来帮助理解。

函数的使用要遵循如下的语法:

fonction_name(parameter_1, parameter_2, …, parameter_n)
复制代码
  • 首先,编写函数的名称(fonction_name)。

  • 而后,你能够将函数的参数放在括号 () 中,用逗号 , 隔开。若是函数不带任何参数,括号也是不可少的,只是括号之间不包含任何内容。

type 函数


在上一节中,咱们学习了简单的数据类型(至少其中一些)。

Python 的强大功能之一是能够自动获知变量的(数据)类型,在变量被赋值时。

其余一些编程语言,例如 C语言,C++,Java,变量是须要预先声明类型的。例如在 C语言中,建立一个 int 型变量并赋值是像这样的:int a = 10; 。可是 Python 却不须要你声明变量 a 是 int 类型,它能够本身根据赋值的数据来推断。

所以,咱们说 Python 是动态类型的语言,而 C语言、Java、C++ 是静态类型的语言。

咱们能够用 type 函数来输出变量的类型。type 表示“类型”。

type 函数的语法很简单:

type(variable_name)
复制代码

type 函数返回做为参数传递的变量的类型。例如:

a = 10
type(a)
复制代码

Python 会告诉你,变量 a 属于 int 类。关于 class(表示“类”)的概念,咱们会在第三部分详细讲解。暂时咱们只要知道 class(类)其实就表明了一种数据类型。

固然了,你也能够不借助变量来进行测试:

str 是 string 的缩写。

print 函数


咱们再来学习十分经常使用的函数:print 函数,这个函数能够显示变量的值。print 表示“打印”。

可是,咱们以前在 Python 解释器中输入变量名,就能够显示变量的值了。为何还须要 print 函数呢?

诚然,Python 解释器在交互模式下很好地显示了变量的值,是由于它会自动显示全部它能够显示的内容,以便跟随一个程序的全部步骤。可是,当你不使用解释器,仅在 Python 的代码中输入变量名,是没法为你输出变量的值的。此外,咱们也注意到,解释器将字符串用定界符括起来并按原样显示转义字符(如 \n)。

print 函数专门用于显示,它的参数数量是可变的,也就是说,你能够要求它显示一个或多个变量。示例以下:

第一次调用 print 函数是很容易理解的,就是显示变量 a 的值,为 7。

第二次调用 print 显示:

a = 10 and b = 5
复制代码

这第二次调用可能会有点难以理解。实际上,咱们将四个参数传递给 print 函数:两个字符串以及变量 ab

当 Python 解释此函数调用时,它将按照参数的顺序显示,并以空格分隔。

你能够用其余数据类型来测试 print 函数,例如带有换行符 \n 的字符串。

能够看到,print 函数很好地解释了 \n 换行符,对字符串进行了换行输出。

Hello World 小示例

学习任何编程语言时,一般都会编写显示 Hello World! 的程序。

Hello World! 表示“你好,世界!”,是软件界的经典例程,由于这能够很快地展现一种编程语言的基本语法。

在某些语言中,尤为是编译语言(如 C语言,C++),可能须要好多行代码才能得到此结果。可是,正如咱们看到的,在 Python 中,一行就足够了:

print("Hello World !")
复制代码

Python 真是很是简洁。

5. 总结


  • 你能够用变量来存储程序中的数据。

  • 你能够对这些变量进行不一样的操做:显示它们,使用它们进行计算,等等。

  • 要为变量赋值,咱们使用这样的方式: variable_name = value

  • 有不一样的变量类型,取决于你要储存的数据。int,float,str(字符串),等等。

  • 咱们能够用 type 函数来获知数据类型。

  • 为了显示数据,例如变量的值,咱们可使用 print 函数。

6. 第一部分第五课预告


今天的课就到这里,一块儿加油吧!

下一课:Python探索之旅 | 第一部分第五课:条件表达式


我是 谢恩铭,公众号「程序员联盟」(微信号:coderhub)运营者,慕课网精英讲师 Oscar 老师,终生学习者。 热爱生活,喜欢游泳,略懂烹饪。 人生格言:「向着标杆直跑」

相关文章
相关标签/搜索