Python数据的类型
在学习Python的数据类型之前我们先来看一下思维导图
python中数据类型分类思维导图
基本数据类型
对于任何一门语言都存在一些基本类型,Python 也不例外,只不过数据类型在 Python 中要远远比其他语言简单,基本分为以下几种。
- 数值数据类型,常见的是整数和浮点数
- 布尔值数据类型,就是常说的真和假
字符串数据类型
♾️ python 代码:
这里要注意,提及到数据类型,特指的是变量的数据类型,在具体学习前,先学会如何看 Python 中的数据类型,才好下手学习。
这个看数据类型是啥的函数,叫做type
,见名之意,所以咱们变量起名字的时候,也要学习一下官方命名技巧。
然后我们来看一下演示代码:a = 5 print(type(a))
然后我们运行此代码就可以看到如下:
♾️ python 代码:<class 'int'>
不难看出,这就是一个整数型数据类型,我们在用小数来演示一下:
♾️ python 代码:a = 5.2 print(type(a))
然后运行结果如下:
♾️ python 代码:<class 'float'>
可以发现这是浮点数类型的数据,
float
浮点数,这些可以参考上面的思维导图。数值数据类型
上文你已经接触到了 Python 中的两种数值数据类型,一个叫做整数,一个叫做浮点数,对应到数学上的区别就是一个带小数点,一个不带,其实这就是最根本的区别。
如果整数和浮点数相加,最终的结果是浮点数,Python 会自动给转换过去,代码如下:
♾️ python 代码:x = 10.1
y = 10
z = x + y
print(type(z))
运行结果如下:
♾️ python 代码:<class 'float'>
整数的不同形式表示
对于编程语言学习者来说,你一定听说过计算机处理的都是二进制,所以编程语言学起来特别难?What?学习编程语言跟二进制是有关系,但是跟你学会一门赚钱的手艺确没啥关系。或者我说的在直接一些,你在北京拿个 1W 块钱的薪水,各种进制的转换可能你都用不到。
将整数显示成二进制格式
注意一会还会将整数显示成八进制与十六进制,这里处理的都是整数,也就是 1,2,3,4 这种不带小数点的,浮点先不要考虑。
又一次需要用到一个后续才会明确的知识点,叫做 Python 内置函数,将整数转换成二进制格式显示用到的函数叫做 bin,代码如下:
♾️ python 代码:x = 10
print(bin(x))
输出结果为:
♾️ python 代码:0b1010
二进制以 0b 开头,后面都是 1,0 排列,如果你看到 Python 代码中出现了这样的整数,要认识这就是一个普通的数字,只是展示方式不同。
将整数显示成八进制格式
将整数转换成八进制用到的内置函数是 oct,具体代码可自行尝试,八进制显示的数字以 0o 开头。
将整数显示成十六进制格式
以 0x 开头的数字为十六进制格式展示,转换用函数为 hex。
截止到这里,你已经对整数与整数的不同形式展示有了初步的认知,并且这些都不重要,重要的是你学习之后,看到 Python 代码中出现以这些符号开头的内容,你知道它就是一个普通的整数就好了。
数据类型强制转换
这个地方只是类型强制转换的冰山一角,为何学习也是因为你已经掌握了整数和浮点数,大概也对它们之前的区别有了那么一丝认识。其实它们之前还可以进行互相的转换,只不过转换你要承担一些风险,为啥呢,往下看。
♾️ python 代码:x = 10.5
print(int(x))
上述代码,我将浮点数进行了类型强制转换,注意在 x 前面套了一个 int 函数的壳,函数后面咱才会学习,现在你能模仿代码编写,能看懂我说的是啥就行。
在变量 x 外面套了一个 int()函数,然后运行,输出的结果是 10,风险出现了,浮点数转换成整数,小数丢掉了…是真正的丢掉了,这种场景在后续编程中你会经常碰到。
int 其实也是 Python 的一个内置函数,它会尝试将任何数据类型的变量转换成整数,注意是任何数据类型的变量。
同理,你如果能猜到将任何数据类型的变量转换成浮点数的函数名为 float,证明你已经开始慢慢摸到 python 的精髓了。
几个数值数据类型常用的函数
数值数据类型常用的函数,这里简单举几个例子,后面还会详细学习。
- abs() 计算绝对值
- pow() 次方运算
- round() 四舍五入
- max() 取最大值
min() 去最小值
♾️ python 代码:
参考代码如下,临摹 2 遍知道是在干啥就行,下面的代码涉及了函数中参数的概念,不做过多的解释。# abs() 计算绝对值 a = -1 print(abs(a)) # pow() 次方运算 x = 2 c = 3 print(pow(x,c)) # round() 四舍五入 d = 34.6 print(round(d)) # max() 取最大值 print(max(1,2,3)) # min() 去最小值 print(min(9,10,6))
布尔值数据类型
♾️ python 代码:
布尔来自英文 boolean 的音译,在 Python 中布尔值有两种,一个是真(True),另外一个就是假(False),使用 type 函数测试数据类型布尔值得到的是 bool。
注意 bool 在有的地方也会归为整数,是因为真(True)被强制转换之后等于 1,假(False)被前置转换之后等于 0。
代码如下:x = True print(int(x)) print(int(False))
字符串是 Python 中使用场景最多的数据类型了,也是知识点最多的数据类型,一般情况下,两个双引号(
♾️ python 代码:"
)或者两个单引号('
)中间的部分就是字符串,在使用的时候一定要注意嵌套问题。例如下述代码:my_name = "嘿嘿" print(my_name) my_name = '哈哈哈' print(my_name) my_name = '梦想"哈哈' print(my_name) print(type(my_name))
字符串的连接
♾️ python 代码:
两个字符串通过 + 可以进行连接,这里的加号就不是数字之间加法的含义了,测试如下:a = "my" b = "name" c = a+b print(c)
数字与字符串相加,会提示错误,如果不想报错,可以通过 str 函数将数字转换成字符串,例如:
♾️ python 代码:a = 123 b = "name" # str(a) 将整数变量a转换成字符串 c = str(a) + b print(c)
多行字符串
在前文已经学习了三引号可用于注释,其实三引号真正的用途依旧是字符串场景,表示多行字符串。
♾️ python 代码:my_str = """ 酒笙 还是 那么 优秀 """ print(my_str)
转义字符
在字符串中有一些特殊的字符,需要特别处理,例如,就想在单引号中使用单引号,那需要如下格式编写:
♾️ python 代码:a = 'I\'m a girl ' print(a)
当然有些时候,你需要避免转移字符进行转义,那需要在整体字符串前增加一个特殊的字母 r,字符串前面增加特殊字符有很多,今天只学习这一个。例如下述代码。
♾️ python 代码:a = r"I\nm a girl" print(a)
输入与输出
本小节核心学习的两个函数,一个是 print,另一个是 input,在学习它们两个之前,在补充一个内置函数 help 该函数可以查看其它函数的使用文档。比如使用 print 测试:
♾️ python 代码:help(print)
结果如下:
♾️ python 代码:D:\Users\酒笙\AppData\Local\Programs\Python\Python39\python.exe D:/源码/1.py Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream. Process finished with exit code 0
这其中就包含了 print 函数的完整说明,最重要的部分如下:
♾️ python 代码:print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
其中:
- value 表示要输出的数据,可以多个,用逗号 , 分隔
- sep 输出多个数据时,分隔符号,默认是空格
- end 输出一行末尾输出的符号
- file 输出位置,默认输出控制台,就是黑窗口中,可以设置到具体文件
flush 是否清除数据流缓冲区,默认为 False
格式化 print 输出
在很多教材中本部分内容会占用比较多的时间,其实大可不必,因为东西太杂,学过反而忘记了,不如简单学习在大脑留下一个“恩,有这个东西”的痕迹即可。
格式化输出就是这样一个碎的知识点,格式化输出 print 的意思就是按照你的意思输出东西到任何载体上。
首先要学习的就是 格式化字符,常见的有下面这几个。
- %d 整数输出
- %f 浮点数输出
- %x 十六进制输出
- %o 八进制
%s 字符串输出,其实会这一个就行了
♾️ python 代码:
演示代码如下:name = "酒笙" age = 18 score = 100 # 格式化一个变量输出 print("我是 %s" % name) # 格式化多个变量输出 print("我是 %s 今年 %d岁了,我考试得了%d分" % (name,age,score))
注意格式化的时候,前面是一个待格式的字符串,把格式化字符作为一个特殊的符号放在一个字符串里面,相当于占了一个坑位,字符串后面跟着一个 %,该符号固定为 %,在后面是替换的内容,可以是变量名,也可以直接是值,如果前面的占位的是 %d,后面就是数字,如果是 %s,后面就是字符串。
format 函数
上述 % 在学习阶段使用一下还可以,在实际的格式化输出中,更多的还是使用 format 进行操作,format 在使用的时候,通过 {} 符号进行占位,例如:
♾️ python 代码:print("我是{},今年{},考试得了{}".format(name,age,score))
input 数据输入
input 执行的和 print 一样,就不过多说明。直接看代码
♾️ python 代码:name = input("请输入你的姓名:") print("输入的姓名为{}".format(name))
代码运行会要求你输入自己的姓名,回车之后会格式化输出。默认情况下 input 获取的输入数据会存储到一个变量中,本例为 name,该变量类型为字符串类型,如果你需要获取用户输入数字,记得通过 int 进行一下转换。
总结
学习要沉下心来