Python的数据类型

1.整数与浮点数

Python里面的整数和数学里面的整数定义是一样的,Python里面的浮点数可以看作是数学里面的小数。

整数的加、减、乘可以直接在print中进行,也可以通过括号来改变运算的优先级:

>>> print(1-10)
-9
>>> print(3+2-5 * 0)
5
>>> print((3+2-5) * 0)
0
# 整数的除法和浮点数的加、减、乘、除运算
print(0.1 + 0.2)
print(1 / 3)
print(1 * 0.3)
print(0.1 + 0.2 - 0.3 * 0.4 / 0.5)

# 结果
0.30000000000000004
0.3333333333333333
0.3
0.06000000000000005

结果并不是0.3,而是一个很长的浮点数。这不是Python的问题,Java、C语言、C++等各种语言都有这个问题。这是由于计算机里面浮点数的储存机制导致的。有兴趣可以了解一下浮点数从十进制转化为二进制的原理和结果。
由于这个原因,不应该直接使用Python来进行精确的计算,但是进行日常的精度不高的四则运算是没有问题的

2. 变量

所谓变量,可以理解为一个存放其他数据的盒子。使用变量可以减少重复输入。

= 10=5= 2

变量在等号的左边,变量里面将要存放的值在等号的右边。等号是赋值的意思。将等号右边的值赋给左边的变量,这样变量里面的值就等于右边了。而如果等号的右边也是一个变量,那么就把等号右边的变量里面的值赋给等号左边的变量。
虽然在Python 3中可以使用中文作为变量名,但还是建议、将变量名设置为英文。

3.字符串、列表、元组

1)字符串(String)
在Python中,除了整数和浮点数外,还有字符串。任何被单引号或者双引号括起来的内容都可以认为是字符串。字符串也可以赋值给变量。

string_6 = '123'
int_variable = 123

字符串的内容可以是中文,可以是英文,可以是数字,可以是空格,可以是中文、英文、数字和空格的组合。

2)列表(List)
列表是Python里面的容器之一,由方括号和方括号括起来的数据构成。里面的数据可以是整数、浮点数、字符串,也可以是另一个列表或者其他的数据结构。列表里面的每一项叫作列表的一个元素,每个元素之间使用英文逗号隔开:

list_1 = [1, 2, 3, 4, 5] #列表里面有5个元素,全部是数字
list_2 = ['abc', 'x', '', 'kkk'] #列表里面有4个元素,全部是字符串
list_3 =[] #空列表
list_4 =[123, 'xyz', 3.14,[1, 2, 'yy']] #由多种元素组合起来的列表

3)元组(Tuple)
元组是Python里面的容器之一,由小括号和小括号括起来的数据构成。它的外型和列表非常像,只不过列表使用的是方括号,元组使用的是小括号。

tuple_1 = (1, 2, 3, 4, 5)#元组里面有5个元素,全部为数字
tuple_2 = ('abc', 'x', '', 'kkk')#元组里面有4个元素,全部是字符串
tuple_3 = () #空元组
tuple_4 = (123, 'xyz', [1, 't', 'z'], ('o', 'pp')) #由多种元素组合起来的元组

元组和列表的区别:列表生成以后还可以往里面继续添加数据,也可以从里面删除数据;但是元组一旦生成就不能修改。如果它里面只有整数、浮点数、字符串、另一个元组,就既不能添加数据,也不能删除数据,还不能修改里面数据的值。但是如果元组里面包含了一个列表,那么这个元组里面的列表依旧可以变化。

3.1 数据的读取

字符串、列表和元组。可以使用完全一样的方式从这3个数据结构中读取数据。
1)指定下标
在大多数编程语言里面,下标都是从0开始的,Python也不例外。第0个元素就是指最左边的元素。

# 在字符串中,第0个字符是“我”字,第1个字符是“是”字,以此类推。
example_string = '我是字符串'
# 在列表中,第0个元素是“我”字,第1个元素是“是”字,以此类推。
example_list =['我', '是', '列', '表']
#在元组中,第0个元素是“我”字,第1个元素是“是”字,以此类推。
example_tuple = ('我', '是', '元', '组')

在这3数据结构中,想取任何一个元素,都可以直接使用:
变量名[下标]
-1表示最后一个元素,-2表示倒数第2个元素,-3表示倒数第3个元素,以此类推。

2)切片操作
字符串切片以后的结果还是字符串,列表切片以后的结果还是列表,元组切片以后的结果还是元组。切片的格式为:
变量名[开始位置下标:结束位置下标:步长]

其中“开始位置下标”“结束位置下标”“步长”可以部分省略,但是不能全部省略。这3个参数对应的都是数字。切片的结果包括“开始位置下标”所对应的元素,但是不包括“结束位置下标”所对应的元素。

省略“开始位置下标”,表示从下标为0的元素开始计算。省略“结束位置下标”,表示直到最后一个元素且包含最后一个元素。例如:

>>> print (example_string[1:3])
是字
>>> print (example_list[:3])
我是列
>>>print (example_tuple[2:])
元组

省略“开始位置下标”和“结束位置下标”,“步长”取-1,表示倒序输出,例如:

>>> print(example_string[::-1])
串符字是我

3)拼接与修改
字符串,元组和列表之间可以相加,相加表示拼接起来。例如:

# 字符串
string_1 = '你好'
string_2 = '世界'
string_3 = string_1 + string_2
print(string_3)
# 元组
tuple_1 = ('abe', 'xyz')
tuple_2 = ('哈哈哈哈', '嘿嘿嘿嘿')
tuple_3 = tuple_1 + tuple_2
print(tuple_3)
# 列表
list_1 = ['abc', 'xyz']
list_2 = ['哈哈哈哈', '嘿嘿嘿嘿']
list_3 = list_1 + list_2
print(list_3)

#结果
你好世界
('abe', 'xyz', '哈哈哈哈', '嘿嘿嘿嘿')
['abc', 'xyz', '哈哈哈哈', '嘿嘿嘿嘿']

特别的,可以通过列表的下标来修改列表里面的值,格式为:
变量名[下标] = 新的值

列表还可以单独在末尾添加元素,例如:

list_4 = [' Python', '爬虫']
list_4.append('一')
list_4.append('酷')
print(list_4)

#结果
[' Python', '爬虫', '一', '酷']

元组和字符串不能添加新的内容,不能修改元组里面的非可变容器元素,也不能修改字符串里面的某一个字符。
字符串、列表和元组还有一些其他特性,它们之间的互相转化将在使用过程中逐渐了解吧。

4. 字典

字典就是使用大括号括起来的键(Key)值(Value)对(Key-Value对)。每个键值对之间使用英文逗号分隔,每个Key与Value之间使用英文冒号分隔。例如:

dict_1 = {'superman': '超人是一个可以在天上飞的两足兽', '天才': '天才跑在时代的前面,把时代拖得气喘吁吁。','xx': 0,42:  '42是一切的答案'}

Key可以使用中文、英文或者数字,但是不能重复。Value可以是任意字符串、数字、列表、元组或者另一个字典,Value可以重复。

可以通过Key来从字典中读取对应的Value,有3种主要的格式:

变量名[key]
变量名.get(key)
变量名.get(key,'在找不到key的情况下使用这个值')

使用方括号的方式来读取字典的Value时,一定要保证字典里面有这个Key和它对应的Value,否则程序会报错。使用get来读取,如果get只有一个参数,那么在找不到Key的情况下会得到“None”;如果get有两个参数,那么在找不到Key的情况下,会返回第2个参数。

如果要修改一个已经存在的字典的Key对应的Value,或者要往里面增加新的Key-Value对,可以使用以下格式:

变量名[key] = '新的值'

如果Key不存在,就会创建新的Key-Value对;如果Key已经存在,就会修改它的原来的Value。
需要特别注意的是,字典的Key的顺序是乱的,所以不能认为先添加到字典里面的数据就排在前面。

5. 集合

集合是使用大括号括起来的各种数据,可以看作没有Value的字典。集合里面的元素不能重复。集合也是无序的。

example_set = {1,2,3, 'a', 'b','c'}

集合最大的应用之一就是去重。例如,把一个带有重复元素的列表先转换为集合,再转换回列表,那么重复元素就只会保留一个。
由于集合与字典一样,里面的值没有顺序,因此使用集合来去重是有代价的,代价就是原来列表的顺序也会被改变。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值