第一句子大全,网罗天下好句子,好文章尽在本站!

跟随孔明的谋划来一步步学习 Python 的语法!(数据类型)

时间:2023-06-06

孔明来到江东后,江东群儒逐个上阵对孔明冷嘲热讽

友情提示:本文共有 4377 个字,阅读大概需要 9 分钟。

知识点小结回顾一下:

刘备大军对抗曹军连连失利,孔明前往江东找孙权搬救兵。孔明来到江东后,江东群儒逐个上阵对孔明冷嘲热讽。

下面的代码记录了孔明舌战群儒的经典对话:

print("张昭:听闻先生高卧隆中,自比管仲、乐毅。但自从刘备有了先生,弃新野,走樊城,败当阳,奔夏口,无容身之地,为何反不如当初了呢?")

print("孔明:我军虽历遭惨败,仍浴血奋战。而今江东兵精粮足,又有长江天堑,却有人劝说其主屈膝投降,不顾天下耻笑?")

经典的话一定要说三遍!想一想该怎么把孔明说的话打印三遍呢?

上面的代码虽然也可以实现需求,但是仔细阅读上面的三行代码,你会发现,同样的代码我们重复了三次!

拓展:编写代码时要避免代码重复,提高代码的复用性,这在程序员界被称为 DRY(don"t repeat yourself)。违反 DRY 原则会导致维护困难,修改时容易造成遗漏,产生不易察觉的问题。

这么长且相同的内容我们需要写三遍!作为程序员的你,一定不能忍,接下来我们将学习如何消灭重复。

消灭重复的方式有很多,今天我们学习其中的一种方式——变量,我们先运行代码来感受使用变量后的效果。

编程练习

下列代码中,孔明错写成了孔铭,请你将其改正过来。然后运行代码,感受一下变量的威力。

通过刚刚代码的运行,我们可以感受到变量的两大优势:

消灭重复:原本要写三遍长句子,现在只需要一遍即可;修改方便:假设句子写错了,只要改一个地方,其他几处打印会同步更新。

变量

我们先来看看下面这行代码:

上面是一个常见的定义变量操作,意思是把 "孔明"赋值给name这个变量。变量 就像一个盒子,我们把东西收纳进去并贴上标签(name)便于以后使用。

赋值

变量名

把东西放进盒子里的这个过程被称为 赋值,盒子上的标签便是 变量名。和通过标签名能知道盒子里的东西是什么一样,我们通过变量名便能得到变量存储的内容。

举个例子:

可以看到,上面的 print(name)和 print("孔明")的效果是一样的,都是在屏幕上打印出孔明。这是因为 name变量里存的是 "孔明",name 即是 "孔明"。

既然叫 变量,顾名思义盒子里的东西是可以改变的。变量这个盒子的容量有限,每次只能存放一个东西。我们再往同一个盒子里放入别的东西,之前放入的东西便被挤出来,只留下最后一次放入的东西。

我们来看个例子,猜猜最后打印出来的结果是什么?

上面的代码中,第二次赋值的 "孔明" 将第一次赋值的 "诸葛亮" 替换掉了,因此最终在屏幕上打印的是 "孔明"。

值得注意的是,Python 中 = 表示赋值(把右边的内容放到左边的盒子里),而不是判断相等。Python 中判断左右两边是否相等的是比较运算符(==)。它俩长得很像,可千万不要搞混了,很多学了十几节课的同学还是有分不清楚他们俩的!

生活中,我们会很慎重地给孩子、宠物取一个好听的名字。给变量取名也是如此,那么如何才能取好一个变量名呢?

对于变量的命名,我们需要遵守以下规范:

例如:如果存放的内容是姓名,变量名可以命名为 name,如果存放内容是年龄,变量名可以为 age。下面是几个坏名字的示例:

当你的代码中出现大量的诸如

a、b、c 这种随意的变量名时,代码可读性将会非常差!比如你在第 1 行定义了变量,在第 100 行将变量打印了出来。当你看到 print(a)你根本不知道 a是什么,而print(name)则能一眼看出打印的是姓名。

当变量名起得随意,就和给盒子上随意乱贴标签一样,我们无法通过标签名判断盒子里的东西,标签名就变得毫无意义。因此我们一定要认真、慎重地给变量起名字

编程练习

知己知彼,百战不殆。孔明在来江东之前已经打探清楚周瑜的信息。现在需要你用变量来储存这三个信息,并在屏幕上打印出来。

字符串

我们在上一关学到,内容要用引号包裹起来。这个用引号包裹起来的内容,它有个专业的名字——字符串。

计算机的本质其实就是一台计算的机器,它的主要任务是处理数据。数据是构成编程世界的重要元素,不同的数据属于不同的类型

Python 有很多数据类型。字符串是我们要学到的第一种数据类型,它是编程语言中表示文本的数据类型。在字符串类型里,包括文本的引号不仅能使用单引号("),还能使用双引号("),两者效果没有区别,但一定要前后保持统一。猜猜下面三行代码哪一个有错误呢?

上面代码中,前两行的写法都是正确的且效果相同。第三行是错误的,因为前后引号必须要保证统一。

注意:对初学者来说,很多人经常不小心使用了中文的单引号(‘ 或 ’)和双引号(“ 或 ”)导致报错,找了半天发现是引号打错了。其实,仔细看看还是很容易辨别出中文引号的英文引号的。要记住,Python 代码中的所有符号、标点都是英文的。

我们来总结一下字符串的特点:

编程练习

孔明立下军令状在三日之内造齐十万只箭,他准备了二十条船,一千多草靶子排在船两边。借助大雾弥漫的天气,曹军以为对方来攻,派六千名弓箭手朝江中放箭。

最终获得十万只箭并朝曹军大喊,“多谢曹丞相赠箭!”。

闻闻使用变量存储了这句话,并在屏幕上打印了三遍,但是她的代码有些问题,需要你帮她找到问题让代码成功运行起来。

字符串的加法运算

我们不仅要计算机来存储数据,更重要的是要处理数据,也称为运算。每种数据类型都有自己独特的运算规则。字符串类型具有非常多的运算,今天只学习其中的一种——加法运算。 字符串的加法运算也称为 字符串拼接,它和火车车厢的拼接操作相似:

在 Python 中字符串拼接的方法很简单,只要使用 +将需要拼接的内容连在一起就可以了。我们来看看代码怎么写:

提示:上面代码中 #号之后的内容是代码的注释,在运行代码时会自动忽略这部分内容。我在这里加注释是为了告诉你代码的运行结果

因为 name 和 wife 两个变量存储的字符串和字符串 "的夫人是" 进行加法运算,最终得到字符串 "周瑜的夫人是小乔"。

提示:存储字符串的变量,一般也称为 字符串变量。

编程练习

为破曹军,周瑜向孔明请教计策,二人各自在手上写下一计。

现在需要你按照提示完善代码,最终在屏幕上输出他们的计策。

定义 name1 和 name2 变量来分别存储字符串 "周瑜" 和 "孔明";

将 name1 + "的计策是" + plan 打印到屏幕上;

将 name2 + "的计策是" + plan 打印到屏幕上。

最终在屏幕上打印出如下内容:

所以猜猜下面这串代码输出什么内容

答案是:他们二人的plan都是火攻。你答对了吗?

这个问题的关键在于你有没有搞清楚 "plan" 和 plan 的区别。一定要注意, "plan" 指的就是字符串 "plan",而 plan 则是 plan 变量,它指的是存放在它里面的内容,也就是 "火攻"。

注意:如果一个变量加上了包裹的引号,那么它就不再是变量,而是字符串,任何东西加上引号都会变成字符串。这就是引号的魔法!

理解了字符串类型后,我们来继续学习 Python 里的第二种数据类型——整数。

整数

整数 和我们数学课本中定义的一样:是正整数、负整数和零的统称,它是没有小数点的数字。整数,英文为 integer,简写做 int。能用数字代表的值我们一般都用整数类型(简称整型)的变量来存储,比如年龄、人数、出生年等等。

定义一个整数变量的方法和字符串类似,但是更简单:

因为 Python 是能理解所有的整数,所以整数是不需要加引号的,如果你给整数加了引号,那它就会变成字符串。字符串类型有字符串的运算规则,整数也是如此。我们可以使用 Python 来进行常见的数学运算,你可以把它想象成一个强大的计算器。下图列出了 Python 中的四则运算符:

想一想:小学应该学过,任何一个数字除以 0 都是没有意义的。那么如果在 Python 里运行 5/0 会发生什么?可以自己试一试~

编程练习

周瑜欲派黄盖诈降,但曹操诡计多端,须使用苦肉之计,瞒天过海。

黄盖假言投降,周瑜重责黄盖 100 军棍,黄盖挨了 40 军棍,皮开肉绽,昏迷过去,众将士求情,最终停手。

接下来需要你完善代码来记录这段苦肉计的过程,在屏幕上打印:

浮点数

整数是没有小数点的数字,与此相对,浮点数则是带小数点的数字,比如温度、里程、体重等使用浮点数类型。下面打印的三个值都是浮点数:

浮点数的英文名是 float。浮点数和整数相比只是多了个小数部分,因为都是数字,所以运算规则大部分一样。你可以对浮点数进行前面学过的四则运算。

下面两行代码的输出分别为什么?

答案分别是 4.14和 3.141。你答对了吗?

再提醒一句,虽然在屏幕上打印的 4.14 和 3.141 看上去都是数字,但它们却不属于同一数据类型。4.14 是数字相加得到的结果,而 3.141 是字符串拼接得到的。前者是浮点数,后者是字符串。

不同的数据类型有自己特定的运算规则,字符串的加法规则按照字符串拼接进行,数字的加法则按照我们数学里的加法规则进行。

很多时候你可能搞不清楚某个变量是存放的是什么类型的数据,这时可以使用 Python 内置的 type() 函数来查看数据的类型。

只要你把内容写在括号里,type() 函数就会获取它的数据类型。我们来看个例子:

上面的示例使用了两个函数的嵌套调用,它和下面这种写法效果其实是一样的:

类型转换

回顾我们前面苦肉计的代码:

如果想更简洁地显示打印结果:

但是呢,事情肯定不是这么简单就解决的。运行上面的程序,发现运行失败:

TypeError: cannot concatenate "str" and "int" objects

程序报错提示:不能将字符串和整数相联结(相加)。再看看代码,果然我们把字符串("杖责黄盖")和整数变量(num)相加。

俗话说,道不同不相为谋。字符串类型和整数类型根本不是“一路人”,我们硬把它们揍在一起,自然就报错了。

Python 中有一个 str()函数,它能将数据转换成字符串类型,比如:

经过 str() 函数进行类型转换后,整数 100 变成了字符串 "100",现在它俩是“一路人”了,自然可以拼接在一起和平相处了。

除了 str()函数,还有其他的类型转换函数,总结在下图中了:

需要注意的是,任何类型、内容都能转换为字符串类型,但并不是所有类型、内容都能转换成整数和浮点数。

举个例子:int("123") 可以将字符串 "123" 转换成数字 123,但 int("abc") 就会报错了,因为 "abc"并不能转换成整数。

编程练习

曹操因为北方士卒不习惯坐船,于是将船首尾连接起来。

黄盖佯装投降,在离曹军二里多远,十艘船同时点火,趁着东南风将曹军的战船全部烧光,曹军大败。

掌握了变量、数据类型、数据运算以及类型转换的你,不知不觉间是不是已经感觉厉害了?放个烟花庆祝一下!

本文如果对你有帮助,请点赞收藏《跟随孔明的谋划来一步步学习 Python 的语法!(数据类型)》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读