2.数据类型

如题。

计算机是做数学运算的机器,它不仅可以处理各种数值,还可以处理文本、音频、视频、图形图像等数据。

字符串

string,计算机中一般简写:str

字符串的呈现方式一般是用单引号或者双引号括起来的文本,eg. '中国'"cHINA" etc.

使用单引号或者是双引号都是一样的效果,而且单引号和双引号只是一种表达方式,它不属于字符串的一部分

💢如果字符串内部包含了单引号【''】或者双引号【""】的话,就需要转义字符【\】来标识。

eg.

1
2
# 注意:这是错误的
print('Let's go! go! go!')

输出:

SyntaxError: invalid syntax

以上,Python 会报错说“语法错误”,因为 Python 会从左到右匹配引号,所以在这个语句中,Let 被识别成了字符串,那么后面的 s go! go! go!' 计算机就理解不了了,于是产生了错误。

当我们使用转义字符后:

eg.

1
2
# 转义字符【\】可以改变连接在其后的字符的本意,使其后的【'】不再具备标记字符串的功能
print('Let\'s go! go! go!')

输出:

Let’s go! go! go!

对于这样的问题,除了使用转义字符,还可以这样:

eg.

1
print("Let's go! go! go!")

输出:

Let’s go! go! go!

因为使用了 "" 来标记字符串,与 Let’s 内部的单引号有所不同了,所以 Python 就能够区分它们。

当然这可以这么用:

eg.

1
print('川普说:"CHINA IS THE BEST!"')

输出:

川普说:”CHINA IS THE BEST!”

转义字符

这是另外一种转义字符,用来换行:

eg.

1
print('1x1=1 \n 1x2=2 2x2=4 \n 1x3=3 2x3=6 3x3=9')

输出:

1x1=1

1x2=2 2x2=4

1x3=3 2x3=6 3x3=9

更多的转义字符:

image-20200626164658226

type()

用于获取数据的数据类型:

eg.

1
2
flag = '人类懂王'
print(type(flag))

输出:

<class ‘str’>

这里,class 表示类,而 str 表示字符串,所以这里的 flag 里存放的是一个字符串的类

len()

用于获取数据的长度:

eg.

1
2
flag = '没人比我更懂病毒'
print(len(flag))

输出:

8

表示这里的 flag 里存放的字符串的长度是:8

整数

integer,简写为:int

Python 可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的一模一样。

Python 中整数可以做的运算类型:

image-20200626170049456

注意:3'3' 有什么区别?

eg.

1
2
print(type(3))
print(type('3'))

输出:

<class ‘int’>

<class ‘str’>

而且,整数这个数据类型是没有 len() 函数的:

eg.

1
print(len(3))

输出:

TypeError: object of type ‘int’ has no len()

浮点数

float,没有简写

带有小数点的数字都是浮点数,浮点数和整数在计算机内部的存储方式是不同的。

而且,整数运算永远是精确的(包括除法),但是浮点数的运算则可能存在四舍五入的误差。

浮点数这个数据类型也是没有 len() 函数的,也就是浮点数这个类型没有长度。

数据类型的转换

eg.

1
2
flag = 0
print('女装只有' + flag + '次和无数次!')

你以为会是:女装只有0次和无数次!

输出:

TypeError: must be str, not int

意思是类型错误:必须是字符串,而不是整数。

这表明整数和字符串两个不同的数据类型是不可以直接通过 + 连接的,所以我们必须转换数据类型,只有相同的数据类型才可以通过 + 连接。

1
2
3
4
5
6
# 将其他数据类型转换成字符串
str()
# 将其他数据类型转换成整数
int()
# 将其他数据类型转换成浮点数
float()

eg.

1
2
flag = 0
print('女装只有' + str(flag) + '次和无数次!')

输出:

女装只有0次和无数次!