计算机不仅能处理数字之间的运算,也能对文本、图片、音频、视频等数据进行处理。在程序中,每个数据都有自己的数据类型。Python 的数据类型有 int(整数)、float(浮点数)、字符串、布尔值、None、列表、元组、字典、集合等。
- 下面介绍几种基本数据类型。
💡 int - 整数
即数学意义上的整数,可以是正整数或负整数,不带小数点。
💡 float - 浮点数
浮点数就是小数。所谓浮点,指的是小数的表示形式多变,3.14 可以表示为 0.314 x 10,小数点可以改变位置,故称为浮点数。
在计算机中,整数、浮点数字、字符串等所有的数据,都会被转换为二进制数值进行处理,处理完成后再转换为你想要的信息。转换的过程中可能就会出现精度的丢失,试试在 Python 命令行中输出 1.1 + 2.2
,猜猜结果是多少?
结果并不是 3.3
,而是 3.3000000000000003
。
💡 布尔值
布尔值只有 True
和 False
两种,注意大小写。布尔值通常用来比较和判断,举例如下:
💡 空值 None
None
在 Python 中是一个特殊的值,表示“无”。注意它与数值 0 不同,0 是一个整数,而 无
表示什么都没有。
变量
我们再来学习一个很重要的概念 —— 「变量」。你可以将它理解为一个盒子 —— 把常用的数据放在里面,起一个好记的名字,下次用到时可以快速找到它。
比如说在游戏中,你会频繁用到 「血量(HP)、攻击力、防御力」等数据,这些数据需要用名字储存起来。
定义这些变量的代码如下:
1 | Level = 1 |
左边是「变量名」
右边是「数据」
而等号在 Python 里的意思是「赋值符」,代表把右边的数据赋值给左边。
其实,早在小学的数学课上,你就开始使用 变量 的概念了。比如「鸡兔同笼」问题中,你可以“设鸡的数量为 x,兔子的数量为 y ”, x、y 就是变量:
x = 鸡的数量
y = 兔子的数量
则:
x + y = 头数
2x + 4y = 脚数
变量中的数据,除了可以是整数,还可以是一段文字,比如:
1 | word = 'Hello World!' |
试一下上面的代码,看看会打印出什么结果。
变量的右边,甚至可以是另一个变量,如:
1 | word2 = word |
上面这段代码的意思是把「word」中的数据,赋值给「word2」这一变量。
亲手操作一下试试:
🔥 小练习:把 「实小楼」 存入名为的「name」的变量中,并打印出来。
💡 提示:「实小楼」是字符串,需要加引号
字符串
任何一本编程书籍之中,字符串的内容总是很长。这是因为:处理字符串是计算机程序中最普遍的需求之一 ,人和计算机交互,所用的就是字符串而不是二进制数字。
用 引号 包裹起来的数据就是字符串。计算机无法识别人类的文字,所以引号的作用就是告诉计算机:我是字符串,不用管里面是什么内容。
包裹字符串的引号必须前后对应,成对出现。如果字符串中还有引号,要特别注意,如 He said "Today's weather is good."
,直接写 print('He said "Today's weather is good."')
就会报错。因为:
正确的写法是,在 Today 后面加入转义符 \
:
亲手在终端中试一下:
转义符 \
还有一个常用形式是和 n 连起来用,\n
代表换行符,就是用 Enter(回车)键敲出来的东西。
💡 索引
字符串是一堆字符的集合,可以通过位置编号,来获得对应的字符。如
'hello_shiyanlou'
,编号 0 对应第一个字符 h,1 对应第二个字符 e,依次类推。这个位置的编号,我们称之为:索引。
这里你又学到了计算机世界的一大概念:
在计算机世界中,计数从 0 开始。
在计算机世界中,计数从 0 开始。
在计算机世界中,计数从 0 开始。
索引除了是正数,也可以是 负值,表示倒数第几个。比如最后一个字符的索引为 -1,倒数第二个字符的索引为 -2。
简单的示例:
1 | 'hello_shiyanlou' string = |
💡format()
format()
是专门用来 格式化字符串 的函数,它最常用的功能就是「插入数据」和「数字格式化」。
插入数据:
先看下面的代码,相信现在的你已经能看懂是什么意思了。我们让用户输入姓名和年龄,并用 name 和 age 变量接收数据。
1 | name = input('请输入姓名:') |
现在我想打印 “你叫 xxx,今年 x 岁了”,代码该怎么写?
有两种写法:
1 | print('你叫'+name+',今年' + age + '岁了') |
这种方法用 + 号串联打印的内容,虽然可行,但是比较麻烦,而且有局限性。
这时,你可以使用 format()
函数,实现插入效果,用法如下:
1 | print('你叫{},今年{}岁了'.format(name,age)) |
{}
为占位符,我先把这个位置占住,具体数据在后面导入。
下图可以让你有更好的理解:
数字格式化:
format()
的第二种常用功能,是格式化数字,比如我们要输出圆周率,但只保留两位小数,可以这么写:
1 | print("{:.2f}".format(3.1415926)) |
如果要保留三位,则改成 {:.3f}
;不带小数,则改成 {:.0f}
,依次类推。
format()
功能还有很多,我们之后用到时在做学习。
💡 注释
注释,可理解为程序的注解、提示,用来帮助他人和自己阅读、理解、编写代码。python 中,
#
常被用作写单行注释,#
号后的内容会被忽略,不会被当作代码处理。
如:
1 | # 注释可以写在开头:下面要打印 “hello shiyanlou” |
注释 对程序员来说非常重要,甚至直接决定了你的寿命……写注释可以帮你理清思路,提高程序的可维护性;如果没有注释,你会连自己的代码都看不懂,而且极可能会被同事、上司打死……
另外,如果有一些代码暂时不需要被执行,可以先不要删掉它(因为后面可能还会使用),而是使用 #
将其注释掉。这样代码就暂时不会被执行了,之后再需要这段代码时,删掉 #
就好了。
运算符
运算,是计算机最基本的功能,我们先来学习一下运算符。
运算符用于执行程序的运算,我们这里先学习最简单的几种:「算术运算符」、「比较运算符」、「赋值运算符」、「逻辑运算符」。
不要被这些名词吓到,其实大多都是些你小学就学过的概念……
💡 算术运算符
即小学数学中的运算符,最常用的还是「加减乘除余」这五种:
运算符 | 名称 | 描述 |
---|---|---|
+ | 加 | 两个对象相加 |
- | 减 | 得到负数或是一个数减去另一个数 |
* | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 |
/ | 除 | x 除以 y |
% | 取模 | 返回除法的余数 |
** | 幂 | 返回 x 的 y 次幂 |
// | 取整除 | 返回商的整数部分(向下取整) |
🔥 练习一下:
1 | 12 a = |
💡 比较运算符
比较运算符 就是小学课本中的「大于、小于、等于……」,通常用于程序执行 循环和判断 中:
运算符 | 描述 |
---|---|
== | 等于:比较对象是否相等 |
!= | 不等于:比较两个对象是否不相等 |
> | 大于:返回 x 是否大于 y |
< | 小于:返回 x 是否小于 y |
>= | 大于等于:返回 x 是否大于等于 y |
<= | 小于等于:返回 x 是否小于等于 y |
⚠️ 注意: 在 Python 和大多数高级语言中:一个等号代表赋值符,两个等号才代表数学意义上的“相等”。
🔥 练习一下:
1 | 1 a = |
💡 赋值运算符
赋值运算符 主要是为了简写,如果看不懂可以先跳过,在以后的项目中会更容易理解。
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符 | c = a + b :将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a :等效于 c = c + a |
-= | 减法赋值运算符 | c -= a :等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a :等效于 c = c * a |
/= | 除法赋值运算符 | c /= a :等效于 c = c / a |
%= | 取模赋值运算符 | c %= a :等效于 c = c % a |
**= | 幂赋值运算符 | c **= a :等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a :等效于 c = c // a |
🔥 练习一下:
1 | 3 a = |
💡 逻辑运算符
如果计算机只有计算功能,那它顶多是一个计算器;而我们今天使用的计算机之所以智能、可编程,最重要的原因是:它能够进行 逻辑处理。
逻辑运算符,即高中数学中的「 且、或、非 」,Python 中用 and
、or
、not
表示这三种逻辑。
运算符 | 逻辑表达式 | 结果 |
---|---|---|
and(逻辑与) | a and b | 当 a、b 都为 True 时,返回 True;否则返回 False |
or(逻辑或) | a or b | 当 a、b 任意一个为 True,就返回 True |
not(逻辑非) | not a | 当 a 为 True 时,返回 False;反之亦然 |
🔥 练习一下:
⚠️ 补充:在逻辑运算中,数字 0
代表 False,1
代表 True。
1 | not 1 |