Python 基础合集1:基本数据类型

一、前言

本小节主要记录几种基础数据类型:整型、浮点型、字符串、复数、布尔值,以及类型转换。中间穿插变量和输入的相关知识点。

环境说明:根据下图操作,出现 >>>,就可以在后面敲相关的代码。
image.png

二、基本数据类型

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

image.png

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 开始递减。
    • image.png
  • 切片: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()进行转化
    • image.png
  • float():转为float
  • str():转为str
  • complex():转为复数,如complex(9),返回(9+0j)
  • chr(i):返回整数 i 所对应的 Unicode 字符,可以是十六进制,如chr(0x61)
    • image.png
  • ord(s):返回字符串s 所对应的 Unicode 值,如ord(‘a’)
    • image.png
  • hex():转为十六进制
    • image.png
  • oct():转为八进制
    • image.png
  • int(x, base=y):转为十进制,x为y进制时的值,x为字符串,如
    • int('10',8),八进制的10,即8;
    • int('a', 16),十六进制的a,即10;
    • int('0xa',base=16),同样表示十六进制的a,即10。
    • image.png

四、 小结

都是一些比较琐碎的知识点,篇幅也控制的比较友好,直接看即可。

下篇预告:字符串格式化。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xin学数据

为你点亮一盏灯,愿你前进无阻。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值