知行编程网知行编程网  2022-10-30 14:00 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python的基本数据类型有哪些的相关知识,包括python中的基本数据类型有哪些,以及Python中int数据类型这些编程知识,希望对大家有参考作用。



Python的基本数据类型有哪些



Python的基本数据类型汇总:


整数

Python 可以处理任何大小的整数,当然包括负整数。程序中的表示与数学写法一模一样,例如:1、100、-8080、0等。

因为计算机使用二进制,有时用十六进制表示整数很方便。十六进制用0x前缀和0-9、a-f表示,例如:0xff00、0xa5b4c3d2等。


浮点数

浮点数也是小数。之所以称它们为浮点数,是因为用科学计数法表示时,浮点数的小数点位置是可变的。例如,1.23x109 和 12.3x108 完全相等。浮点数可以写成数学形式,例如 1.23、3.14、-9.01 等。但对于非常大或非常小的浮点数,必须用科学计数法表示,将10换成e,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,以此类推。

整数和浮点数在计算机内部存储的方式是不同的。整数运算总是精确的(除法也精确吗?是的!),而浮点运算可能有舍入误差。


字符串

字符串是用单引号 ' 或双引号 " 括起来的任何文本,例如 'abc'、"xyz" 等。请注意,'' 或 "" 只是它们本身的表示,而不是字符串的一部分,因此,字符串'abc'只有a、b、c这3个字符,如果'本身也是字符,可以用""括起来,例如"I'm OK"包含字符I、'、m、空格、O、K这6个字符。

如果字符串同时包含'和"怎么办?它可以用转义字符\来标识,例如:

'I\'m \"OK\"!'

表示的字符串内容是:

I'm "OK"!

转义字符\可以转义很多字符,比如\n代表换行符,\t代表制表符,而字符\本身也应该被转义,所以\\代表的字符就是\,在Python上可以用来打印交互式命令行()打印字符串看看:

>>> print('I\'m ok.')
I'm ok.
>>> print('I\'m learning\nPython.')
I'm learning
Python.
>>> print('\\\n\\')
\
\

如果字符串中有很多字符需要转义,就需要加很多\。为了简化,Python还允许r''表示''里面的字符串默认不转义,大家可以自己试试:

>>> print('\\\t\\')
\       \
>>> print(r'\\\t\\')
\\\t\\

如果字符串内部有很多换行符,则很难在一行中使用 \n 来读取它。为简化起见,Python 允许以 '''...''' 的格式表示多行。你可以自己试试:

>>> print('''line1
... line2
... line3''')
line1
line2
line3

以上是在交互式命令行中输入的。注意,输入多行时,提示符会从 >>> 变为 ...,提示你输入上一行。请注意, ... 是一个提示,而不是代码的一部分:

┌───────────────────────────────────────────────────────┐

│Command Prompt - python _ □ x│

├─────────────────────────────────────────────────────── ┤

│>>> print('''line1 │

│... line2 │

│... line3''') │

│line1 │

│line2 │

│line3 │

│ │

│>>> _ │

│ │

│ │

│ │

└────────────────────────────────────────────────────────┘

当输入终止符```和括号)时,语句被执行并打印结果。

如果写成程序并存为.py文件,就是:

print('''line1
line2
line3''')

多行字符串'''...'''还可以在前面加上r使用


布尔值

布尔值的表示和布尔代数完全一样。一个布尔值只有两个值,True 和 False,True 或 False。它可以通过布尔运算来计算:

>>> True
True

not 操作是一个否定操作。它是一个将 True 变为 False 并将 False 变为 True 的一元运算符:

>>> not True
False


空值

null 值是 Python 中的一个特殊值,用 None 表示。 None 不能被解释为 0,因为 0 是有意义的并且 None 是一个特殊的 null 值。

此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型,我们后面会继续讲。


变量

变量的概念与初中代数中的方程变量基本相同,只是在计算机程序中,变量不仅可以是数字,还可以是任何数据类型。

变量在程序中由变量名表示。变量名必须是英文大小写、数字和_的组合,不能以数字开头,如:

a = 1

变量a是一个整数。

t_007 = 'T007'

变量t_007是一个字符串。

Answer = True

变量Answer是一个布尔值True。

在Python中,等号=是一个赋值语句,可以将任意数据类型赋给一个变量,同一个变量可以重复赋值,可以是不同类型的变量

变量本身的类型不固定的语言称为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型。如果赋值时类型不匹配,会报错。

最后,了解变量在计算机内存中的表示方式也很重要。当我们写:

a = 'ABC'

时,Python解释器干了两件事情:

在内存中创建了一个'ABC'的字符串;

在内存中创建了一个名为a的变量,并把它指向'ABC'。

你还可以将变量 a 分配给另一个变量 b。这个操作实际上是把变量b指向了变量a所指向的数据。


常量

所谓常数,就是不能改变的变量。例如,常用的数学常数π就是一个常数。在 Python 中,常量通常由全部大写的变量名表示:

PI = 3.14159265359

但实际上 PI 仍然是一个变量。 Python 根本没有确保 PI 不会被更改的机制。因此,使用所有大写的变量名来表示常量只是一种习惯用法。如果你必须改变变量 PI 的值,没有人可以阻止你。

最后,解释为什么整数的除法也是精确的。在Python中,有两种除法,一种是/:

>>> 10 / 3
3.3333333333333335

/ 除法计算的结果是一个浮点数,即使两个整数被精确除,结果也是一个浮点数:

>>> 9 / 3
3.0

另一种除法是//,称为地板除法,两个整数的除法仍然是整数:

>>> 10 // 3
3

你没看错,整数的除法 // 始终是整数,即使它不可整除。要进行精确除法,只需使用 /。

因为 // 除法只取结果的整数部分,Python 还提供了取余运算,可以得到两个整数相除的余数:

>>> 10 % 3
1

不管是整数除//取余数,结果总是整数,所以整数运算的结果总是精确的。


字符编码

ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。

字母A用ASCII编码是十进制的65,二进制的01000001;

ASCII中的字符0是十进制的48,二进制是00110000,注意字符'0'和整数0是不同的;

汉字已经超出了ASCII编码的范围。 Unicode 编码是十进制的 20013 和二进制的 01001110 00101101。

如果统一成Unicode编码,乱码问题从此就消失了。但是,如果你写的文字基本上都是英文的,那么使用Unicode编码需要的存储空间是ASCII编码的两倍,在存储和传输方面非常不经济。

因此,本着节约的精神,将Unicode编码转换为“变长编码”的UTF-8编码应运而生。 UTF-8编码根据不同的数字大小将一个Unicode字符编码成1-6个字节,常用的英文字母编码成1个字节,汉字通常是3个字节,只有非常稀有的字符才会被编码。编码为 4-6 个字节。如果你要传输的文本包含大量英文字符,使用 UTF-8 编码可以节省空间

UTF-8 编码还有一个额外的好处,即 ASCII 编码实际上可以被视为 UTF-8 编码的一部分,所以很多只支持 ASCII 编码的遗留软件可以继续在 UTF-8 编码下工作。

弄清楚 ASCII、Unicode 和 UTF-8 的关系后,我们可以总结一下计算机系统中常用的字符编码的工作方法:

在计算机内存中统一使用Unicode编码,当需要保存到硬盘或需要传输时,转换为UTF-8编码。

使用记事本编辑时,将从文件中读取的 UTF-8 字符转换为 Unicode 字符并存储在内存中。编辑后将Unicode转换为UTF-8,保存时保存到文件中:

浏览网页时,服务器将动态生成的 Unicode 内容转换为 UTF-8 传输给浏览器:

所以你看到很多网页的源码都会有类似<meta charset="UTF-8" />的信息,说明网页是用UTF-8编码的。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享