一、前言
本小节主要记录几种基础数据类型:整型、浮点型、字符串、复数、布尔值,以及类型转换。中间穿插变量和输入的相关知识点。
环境说明:根据下图操作,出现 >>>,就可以在后面敲相关的代码。
二、基本数据类型
1.1 整型int
常用四种进制即表达方式:
- 十进制:0~9
- 二进制:0B或0b,0和1
- 八进制:0O或0o,0~7
- 十六进制:0X或0x,09到AF
>>> 10
10
>>> 0b10
2
>>> 0o10
8
>>> 0x10
16
支持四则运算:乘除加减。
幂运算:x**i,i 可为整数或分数或小数
>>> 1+2
3
>>> 1-2
-1
>>> 1*2
2
>>> 1/2
0.5
>>> 2**3
8
>>> 2**0.5
1.4142135623730951
>>> 2**(1/2)
1.4142135623730951
1.2 浮点型float
Python没有double类型,小数使用float类型。
查看精度:
>>> import sys
>>> sys.float_info
一般为15个数字的准确度,Python支持无限制且精确的整数计算,如果浮点数精度要求比较高,也可以考虑放大倍数,采用整数来运算。
浮点数运算同整型。
1.3 复数complex
实部+虚部,表示为:a+bj
实部和虚部均为浮点数,可以用z.real和z.imag分别获取实部和虚部。
>>> z = 1.2+2.1j
>>> z.real
1.2
>>> z.imag
2.1
注意直接写的时候需要加括号,将复数括起来,如
>>> 1.2+2.1j.imag
3.3
>>> (1.2+2.1j).imag
2.1
1.4 布尔值bool
bool 是 int 的子类,True == 1,False == 0
常见容易混淆的False布尔值:
- None
- 数字:0,0.0,0.j
- 任意空:‘’,(),[],{}
1.5 字符串str
表现形式:用单引号、双引号、三引号括起来。
Python内部以Unicode编码存储字符串,Unicode是真正的字符串,而用ASCII、Utf-8、GBK等字符编码表示的是字节串。
>>> a = 'Xin学数据' # Unicode每个单位算一个字节
>>> len(a)
6
>>> g = a.encode('gbk')
>>> len(g) # gbk中文占2个字节
9
查看对象的方法:dir()
。如:查看字符串的方法:dir(str)
。
如果知道某个方法查用法,可以用help()
,如:help(str.upper)
。
1.5.1 字符串运算
字符串运算:s、s0 表示字符串,i、j、m 表示整数
- 连接:s+s,字符串的拼接,
- 复制:si 或 is,对s 复制 i 倍,然后拼接在一起
- 子串判断:s0 in s,判断s0 是否在 s 中
- 索引:s[i],取s 的第 i 位上的字符。i 为正数时,从左边起,从0开始递增;i 为负数时,从右边起,从-1 开始递减。
- 切片:s[i:j:m]
- i 是起始位置,遵循左取规则,为空表示从0开始,即取首个字符
- j 是结束位置,遵循右不取规则,即取到 j-1 位,为空表示取到最后一个字符(关于右不取,可以这么思考现实一般是从1开始,如第1个,不会说第0个,但Python这里计数是从0开始算,相对1退了1,为了保证取的个数不变,所以 j-1,即不取右边缘。ps:不理解这括号的文字也没关系,用多了就熟悉了。)
- m 是步长,隔多少个字符取一次,默认是1,为1时可省略
- 取数的个数:( j – i ) / m 取整,m取默认值1时,就是 ( j – i ),如果 j 是空则为
len(s)
如果 i 为空则为 0。 - 如:
- s[0:4] 取出 0、1、2、3 位上共4个元素返回一个新的字符串;
- s[0:4:2] 在 0、1、2、3 位上隔一位取值,即取 0、2 位上共2个元素返回一个新的字符串;
>>> s = 'hello'; s0 = 'lo'
>>> i = 1; j = 3; m = 2
>>> s = 'hello world'; s0 = 'wo'
>>>
>>> s = 'hello world'; s0 = 'wo'
>>> i = 1; j = 3; m = 2
>>>
>>> s = 'hello world'; s0 = 'wo'
>>> i = 1; j = 7; m = 2
>>> s + s
'hello worldhello world'
>>> s * m
'hello worldhello world'
>>> s0 in s
True
>>> s[i]
'e'
>>> s[i:j:m]
'el '
1.5.2 输入和输出
input()
:输入的任何信息都会被转化为字符串eval()
:去引号,返回原来的对象type()
:查看数据类型id()
:查看对象的空间编号(主要用来查看对象是否指向同一空间)
>>> a = 3
>>> b = input('输入a:')
输入a:a
>>> b
'a'
>>> type(b)
<class 'str'>
>>> c = eval(input('输入a:')) # 输入a之后,相当于是c = a
输入a:a
>>> c
3
>>> type(c)
<class 'int'>
# c 和 a 指向同一个空间
>>> id(a)
3254664325488
>>> id(c)
3254664325488
1.5.3 转义
转义就是使得有特殊功能的字符失去相关功能,或者使得没有特殊功能的字符拥有某个功能。
# 本身单引号是声明字符串使用的,加上\之后变成了普通的单引号,可以直接输出
>>> 'I\'m ok.'
"I'm ok."
# 测试环境直接输入,不能直接输出\n 的换行的效果,需要改用打印
>>> "I'm \n ok." # 用双引号括起来时,单引号可以不用加\
"I'm \n ok."
# 改用print()打印输出,将\n 作为换行打印
>>> print("I'm \n ok.")
I'm
ok.
补充:在字符串存放的时候转义符 \n 还是存为 \n,打印时才转义。
常见的转义符号即含义:
符号 | 含义 |
---|---|
\b | 退格(BS),将当前位置移到前一列 |
\n | 换行(LF),将当前位置移到下一行开头 |
\r | 回车(CR),将当前位置移到本行开头 |
\t | 水平制表(HT),跳到下一个Tab位置(制表符Tab) |
\v | 垂直制表(VT) |
\\ | 打印一个反斜线字符\ |
三、类型转换
int()
:转为int,字符串转为int()不能带小数点,如:int(‘1.0’)会报错,需要先用float()进行转化float()
:转为floatstr()
:转为strcomplex()
:转为复数,如complex(9),返回(9+0j)chr(i)
:返回整数 i 所对应的 Unicode 字符,可以是十六进制,如chr(0x61)ord(s)
:返回字符串s 所对应的 Unicode 值,如ord(‘a’)hex()
:转为十六进制oct()
:转为八进制int(x, base=y)
:转为十进制,x为y进制时的值,x为字符串,如
四、 小结
都是一些比较琐碎的知识点,篇幅也控制的比较友好,直接看即可。
下篇预告:字符串格式化。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66947.html