Python数值类型与序列类型

数值类型

#数值类型
整型 int   
浮点型 float
复数类型 complex    查看实部与虚部的方法a.real  a.imag
布尔类型 bool

使用type函数查看数据类型

#整数类型
a = 3
print(type(a))
<class 'int'>
#浮点数类型
a = 3.0
print(type(a))
<class 'float'>
#复数类型
a = 3 + 3j   #python中使用j来表示复数
print(type(a))
<class 'complex'>
#布尔类型 bool
a = True
print(type(a))
<class 'bool'>

序列类型

字符串类型 str '' /""/'''  '''/    三种表示字符串的方法
列表类型 list  []
元组类型 tuple  ()
#字符串类型
a = 'aaa'
print(type(a))
<class 'str'>
#列表类型   列表中的元素放在中括号中,多个元素使用英文逗号分开  
#列表中存储的值可以是字符串常量,布尔类型,变量,数值
b = 18  #将18赋值给b
a = ['a',True,b,3]
print(type(a))
<class 'list'>
#元组类型  元组中的元素放在小括号中,多个元素之间使用英文逗号分开
#列表中存储的值可以是字符串常量,布尔类型,变量,数值
b = 18
a = ('a',True,b,3)
print(type(a))
<class 'tuple'>

序列索引

序列索引针对python中的str、list、tuple三种序列类型,python中针对序列的索引有正序索引与逆序索引两种,正序索引是从0开始,即序列的第一个元素,的索引值为0,逆序索引是从-1开始,即序列的最后一个元素的索引值为-1,倒数第二个元素的索引值为-2,首先看一下str类型

a = 'abc'
print(a[0])
print(a[-3])
a
a
print(a[1])
print(a[-2])
b
b
print(a[2])
print(a[-1])
c
c

下面是list类型

a = ['a',True,2]
print(a[0])
print(a[-3])
a
a
print(a[1])
print(a[-2])
True
True
print(a[2])
print(a[-1])
2
2

下面是tuple类型

a = ('a',True,2)
print(a[0])
print(a[-3])
a
a

三种序列类型中list是可变类型,str,tuple是不可变类型,下面来具体看一下什么是可变类型,什么是不可变类型,下面是list类型

#可变类型 list  顾名思义可变类型的元素值是可变的
a = [1,'a',True]
print(a[0])
1
#可以看出列表a的0号元素为整数1,现在对a[0]的值进行修改 并且查看修改后a的情况以及0号元素的值
a[0] = 2
print(a,a[0])
[2, 'a', True] 2

再来看一下str类型,不可变类型

a = 'abcd'
print(a[0])
a
#可以看出列表a的0号元素为字符,现在对a[0]的值进行修改
a[0] = '高'
print(a,a[0])
TypeError                                 Traceback (most recent call last)
<ipython-input-4-2e32327f1d67> in <module>
      1 #可以看出列表a的0号元素为字符,现在对a[0]的值进行修改
----> 2 a[0] = '高'
      3 print(a,a[0])

TypeError: 'str' object does not support item assignment

可以看出系统报错,这是因为str是不可变类型,它的元素的值不能够直接修改。

再来看一下tuple,不可变类型

a = ('a',True,2)
#首先来查看0号元素的值
print(a[0])
a
#可以看到a的0号元素的值为字符‘a’,然后尝试修改值
a[0] = '高'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-39-389dd72ad690> in <module>
      1 #可以看到a的0号元素的值为字符‘a’,然后尝试修改值
----> 2 a[0] = '高'

TypeError: 'tuple' object does not support item assignment

可以看出系统报错,这是因为tuple是不可变类型,它的元素的值不能够直接修改。此时,若要对元素值进行修改,则需要对数据类型进行强制转换。str类型也一样。

下面示例元组类型与列表类型之间的数据强制转换。

a = ('a',True,2)
#现在想要修改0号元素为数字3,但是此时a是tuple类型,并不支持元素值的修改,所以强制转换为list,并赋值给新的变量b
b = list(a)
#查看b的情况
print(b)
['a', True, 2]
#此时才可以进行修改
b[0] = 3
print(b[0],b)
['a', True, 2]
#此时才可以进行修改
b[0] = 3
print(b[0],b)
3 [3, True, 2]

但是此时我们所看到的只是表象,事实上a的值并没有被修改,只是系统重新开辟了一份空间存储了一个列表,然后对其值进行修改,现在查看a,b的值和类型

print(a,type(a),b,type(b))
('a', True, 2) <class 'tuple'> [3, True, 2] <class 'list'>

对于tuple类型要特别注意当tuple中只有一个元素的情况

#当tuple中只有一个元素时,例如
a = ('b')

此时a的类型并不是tuple,此时默认为str

print(type(a))
<class 'str'>

此时要想定义一个只有一个元素的元组,需要在唯一的一个元素后加逗号

a = ('b',)
print(type(a))
<class 'tuple'>

对于其他情况,当为一的元素为数字且没有逗号时,它的类型为数字的类型

a = (1)
print(type(a))
<class 'int'>
a = (1.0)
print(type(a))
<class 'float'>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值