1.变量
name = '张三'
上面是一个常见的定义变量操作,意思是把 '张三'
赋值 给 name
这个 变量。变量 就像一个盒子,我们把东西收纳进去并贴上标签(name)便于以后使用。
把东西放进盒子里的这个过程被称为 赋值,盒子上的标签便是 变量名。和通过标签名能知道盒子里的东西是什么一样,我们通过变量名便能得到变量存储的内容。
变量命名规范:自能包含英文字母,数字和下划线;不能以数字开头;变量名要简单易懂,描述实际内容。
既然叫 变量,顾名思义盒子里的东西是可以改变的。变量这个盒子的容量有限,每次只能存放一个东西。我们再往同一个盒子里放入别的东西,之前放入的东西便被挤出来,只留下最后一次放入的东西。
name = '张三'
name = '李四'
print(name)
#上面的代码中,第二次赋值的 '李四'
将第一次赋值的 '张三'
替换掉了,因此最终在屏幕上打印的是 '李四'
。
值得注意的是,Python 中 = 表示赋值(把右边的内容放到左边的盒子里),而不是判断相等。Python 中判断左右两边是否相等的是比较运算符(==)。
Python 中的变量名只能由英文字母(a-z),数字(0-9)和下划线(_)共同组成,意味着变量名中不能出现诸如 @、#、$ 等特殊符号。
你可能会好奇,变量名中不能包含特殊符号,为什么唯独下划线可以?
这是因为我们取变量名时,往往不能用一个单词表达清楚,比如“学校名”是两个单词 school name。但直接用 school name
做变量名是不规范的。因为变量名是一个整体,不能用空格分开。
在 Python 里,我们通常用下划线来连接单词,所以 school_name
才是正确合规的变量名。这就是变量名中下划线的作用。
同时,我们在给变量命名时,不能以数字开头,比如 1day
这种变量名是不符合规范的,应改成 day1
才对。
此外,我们取的变量名还要有“可读性”,即尽量描述包含的数据内容。例如:如果存放的内容是姓名,变量名可以命名为 name
,如果存放内容是年龄,变量名可以为 age
。
2.字符串
Python 有很多数据类型。字符串是我们要学到的第一种数据类型,它是编程语言中表示文本的数据类型。
在字符串类型里,包括文本的引号不仅能使用单引号('
),还能使用双引号("
),两者效果没有区别,但一定要前后保持统一。
很多人经常不小心使用了中文的单引号(‘ 或 ’)和双引号(“ 或 ”)导致报错,找了半天发现是引号打错了。其实,仔细看看还是很容易辨别出中文引号的英文引号的。要记住,Python 代码中的所有符号、标点都是英文的。
3.字符串的加法运算
字符串的加法运算也称为 字符串拼接,它和火车车厢的拼接操作相似。
在 Python 中字符串拼接的方法很简单,只要使用 + 将需要拼接的内容连在一起就可以了。
name = '张三'
wife = '弹竹'
print(name + '的夫人是' + wife)
name
和 wife
两个变量存储的字符串和字符串 '的夫人是'
进行加法运算,最终得到字符串 '张三的夫人是
弹竹'
。
4.整数
整数 和我们数学课本中定义的一样:是正整数、负整数和零的统称,它是没有小数点的数字。整数,英文为 integer,简写做 int。能用数字代表的值我们一般都用整数类型(简称整型)的变量来存储,比如年龄、人数、出生年等等。
定义一个整数变量的方法和字符串类似,但是更简单:
age=32
因为 Python 是能理解所有的整数,所以整数是不需要加引号的,如果你给整数加了引号,那它就会变成字符串。
字符串类型有字符串的运算规则,整数也是如此。我们可以使用 Python 来进行常见的数学运算,你可以把它想象成一个强大的计算器。
+表示加,2+1=3
- 表示减,2-1=1
* 表示乘,2*1=2
/ 表示除,2/1=2
%表示取余,3%2=1
//除法,商向下取整数7//2=3
**乘方,3**2=9
5.浮点数
整数是没有小数点的数字,与此相对,浮点数则是带小数点的数字,比如温度、里程、体重等使用浮点数类型。下面打印的三个值都是浮点数:
print(36.5)
print(-5.3)
print(1.0)
下面两行代码的输出分别为什么?
print(3.14 + 1)
print('3.14' + '1')
答案分别是 4.14 和 3.141。
虽然在屏幕上打印的 4.14 和 3.141 看上去都是数字,但它们却不属于同一数据类型。4.14 是数字相加得到的结果,而 3.141 是字符串拼接得到的。前者是浮点数,后者是字符串。
不同的数据类型有自己特定的运算规则,字符串的加法规则按照字符串拼接进行,数字的加法则按照我们数学里的加法规则进行。
很多时候你可能搞不清楚某个变量是存放的是什么类型的数据,这时可以使用 Python 内置的 type()
函数来查看数据的类型。
只要你把内容写在括号里,type()
函数就会获取它的数据类型。我们来看个例子:
print(type('hi'))
# 输出:<class 'str'>
print(type(666))
# 输出:<class 'int'>
print(type(3.14))
# 输出:<class 'float'>
可以看到,type()
函数返回的内容是 <class 'xxx'>
这样的格式,分别对应着不同的格式。str
表示字符串类型,int
表示整数类型,float
表示浮点数类型。
6.类型转换
num = 100
print('张三跳了' + num + '次')
运行上面的程序,发现运行失败:
TypeError: cannot concatenate 'str' and 'int' objects
程序报错提示:不能将字符串和整数相联结(相加)。再看看代码,果然我们把字符串('
张三跳了'
)和整数变量(num
)相加。
俗话说,道不同不相为谋。字符串类型和整数类型根本不是“一路人”,我们硬把它们凑在一起,自然就报错了。
那么就没有办法将它俩拼接在一起了吗?办法自然是有的,那就是类型转换。
Python 中有一个 str()
函数,它能将数据转换成字符串类型,比如:
num = 100
print('张三跳了' + str(num) + '次')
经过 str()
函数进行类型转换后,整数 100
变成了字符串 '100'
,现在它俩是“一路人”了,自然可以拼接在一起和平相处了。
str()把其他数据类型转换成字符串
int()把其他数据类型转换成整数
float()把其他数据类型转换成浮点数
需要注意的是,任何类型、内容都能转换为字符串类型,但并不是所有类型、内容都能转换成整数和浮点数。
举个例子:int('123')
可以将字符串 '123'
转换成数字 123
,但 int('abc')
就会报错了,因为 'abc'
并不能转换成整数。