1、消重
在很多情况下,会重复编写一定量的代码,作为程序员,这肯定是不能忍受的,消灭重复的方式有很多种,今天学习用变量来消重。
pring('孔明:我军虽历遭惨败,仍浴血奋战。而今江东兵精粮足,又有长江天堑,却有人劝说其主屈膝投降,不顾天下耻笑')
pring('孔明:我军虽历遭惨败,仍浴血奋战。而今江东兵精粮足,又有长江天堑,却有人劝说其主屈膝投降,不顾天下耻笑')
pring('孔明:我军虽历遭惨败,仍浴血奋战。而今江东兵精粮足,又有长江天堑,却有人劝说其主屈膝投降,不顾天下耻笑')
name = '孔明:我军虽历遭惨败,仍浴血奋战。而今江东兵精粮足,又有长江天堑,却有人劝说其主屈膝投降,不顾天下耻笑'
pring(name)
pring(name)
pring(name)
变量相当于一个盒子,上面 name (参数)相当于贴在盒子上面的标签,而'孔明:我军虽历遭惨败,仍浴血奋战。而今江东兵精粮足,又有长江天堑,却有人劝说其主屈膝投降,不顾天下耻笑' 相当于盒子里面的东西(值)
既然是变量,那么 盒子里面的值是可以任意改变的。变量这个盒子的容量有限,每次只能存放一个东西。我们再往同一个盒子里放入别的东西,之前放入的东西便被挤出来,只留下最后一次放入的东西,例如:
name = '诸葛亮'
name = '孔明'
print(name)
输出的结果是:'孔明',上面的代码中,第二次赋值的
'孔明'
将第一次赋值的'诸葛亮'
替换掉了,因此最终在屏幕上打印的是'孔明'
。
值得注意的是,Python 中 = 表示赋值(把右边的内容放到左边的盒子里),而不是判断相等。Python 中判断左右两边是否相等的是比较运算符(==)。它俩长得很像,可千万不要搞混了。
2、变量的命名
对于变量的命名,我们需要遵循下面的规范:
Python 中的变量名只能由英文字母(a-z),数字(0-9)和下划线(_)共同组成,意味着变量名中不能出现诸如 @、#、$ 等特殊符号。
你可能会好奇,变量名中不能包含特殊符号,为什么唯独下划线可以?
这是因为我们取变量名时,往往不能用一个单词表达清楚,比如“学校名”是两个单词 school name。但直接用 school name
做变量名是不规范的。因为变量名是一个整体,不能用空格分开。
在 Python 里,我们通常用下划线来连接单词,所以 school_name
才是正确合规的变量名。这就是变量名中下划线的作用。
同时,我们在给变量命名时,不能以数字开头,比如 1day
这种变量名是不符合规范的,应改成 day1
才对。
此外,我们取的变量名还要有“可读性”,即尽量描述包含的数据内容。例如:如果存放的内容是姓名,变量名可以命名为 name
,如果存放内容是年龄,变量名可以为 age
。
3、字符串
我们在笔记1学到,内容要用引号包裹起来。这个用引号包裹起来的内容,它有个专业的名字——字符串
计算机的本质其实就是一台计算的机器,它的主要任务是处理数据。数据是构成编程世界的重要元素,不同的数据属于不同的类型
在字符串类型里,包括文本的引号不仅能使用单引号('
),还能使用双引号("
),两者效果没有区别,但一定要前后保持统一。猜猜下面三行代码哪一个有错误呢?
name = '孔明'
name = "孔明"
name = '孔明"
上面代码中,前两行的写法都是正确的且效果相同。第三行是错误的,因为前后引号必须要保证统一。
3.1、字符串的加法运算
字符串的加法运算也称为 字符串拼接,它和火车车厢的拼接操作相似
在 Python 中字符串拼接的方法很简单,只要使用 + 将需要拼接的内容连在一起就可以了。我们来看看代码怎么写:
name = '周瑜'
wife = '小乔'
print(name + '的夫人是' + wife)
# 输出:周瑜的夫人是小乔
因为 name
和 wife
两个变量存储的字符串和字符串 '的夫人是'
进行加法运算,最终得到字符串 '周瑜的夫人是小乔'
。
提示:存储字符串的变量,一般也称为 字符串变量
4、整数
整数 和我们数学课本中定义的一样:是正整数、负整数和零的统称,它是没有小数点的数字。整数,英文为 integer,简写做 int。能用数字代表的值我们一般都用整数类型(简称整型)的变量来存储,比如年龄、人数、出生年等等。
因为 Python 是能理解所有的整数,所以整数是不需要加引号的,如果你给整数加了引号,那它就会变成字符串。
字符串类型有字符串的运算规则,整数也是如此。我们可以使用 Python 来进行常见的数学运算,你可以把它想象成一个强大的计算器。下图列出了 Python 中的数学运算符:
5、浮点数
整数是没有小数点的数字,与此相对,浮点数则是带小数点的数字,比如温度、里程、体重等使用浮点数类型。下面打印的三个值都是浮点数:
print(36.5)
print(-5.3)
print(1.0)
浮点数的英文名是 float。浮点数和整数相比只是多了个小数部分,因为都是数字,所以运算规则大部分一样。你可以对浮点数进行前面学过的数学运算。
print(3.14 + 1)
print('3.14' + '1')
答案分别是 4.14 和 3.141。你答对了吗?
虽然在屏幕上打印的 4.14 和 3.141 看上去都是数字,但它们却不属于同一数据类型。4.14 是数字相加得到的结果,而 3.141 是字符串拼接得到的。前者是浮点数,后者是字符串。
不同的数据类型有自己特定的运算规则,字符串的加法规则按照字符串拼接进行,数字的加法则按照我们数学里的加法规则进行。
很多时候你可能搞不清楚某个变量是存放的是什么类型的数据,这时可以使用 Python 内置的 type()
函数来查看数据的类型。
可以看到,type()
函数返回的内容是 <class 'xxx'>
这样的格式,分别对应着不同的格式。str
表示字符串类型,int
表示整数类型,float
表示浮点数类型。
6、类型的转换
num = 100
print('杖责黄盖' + num + '军棍')
print('黄盖昏迷,众将士求情')
num = num - 60
print('算了,减60军棍,杖责黄盖' + num + '军棍')
但是呢,事情肯定不是这么简单就解决的。运行上面的程序,发现运行失败:
TypeError: cannot concatenate 'str' and 'int' objects
经过 str()
函数进行类型转换后,整数 100
变成了字符串 '100'
,现在它俩是“一路人”了,自然可以拼接在一起和平相处了。
num = 100
print('杖责黄盖' + str(num) + '军棍')
# 输出:杖责黄盖100军棍
需要注意的是,任何类型、内容都能转换为字符串类型,但并不是所有类型、内容都能转换成整数和浮点数。
举个例子:int('123')
可以将字符串 '123'
转换成数字 123
,但 int('abc')
就会报错了,因为 'abc'
并不能转换成整数