python继承属性,python中继承的定义
本文主要介绍python内置数据类型的用法和继承关系,包括python中包含的内置序列、内置数据类型的使用等相关资料。有需要的可以参考一下。
00-1010 1、python包含内置序列2、使用内置数据类型2.1创建2.2索引2.3遍历用for 3、可变和不可变4、小练习
前言:
python之父吉多范罗苏姆曾参与ABC语言的开发(ABC不是A语言、B语言、C语言,而是一门独立的编程语言)。后来他认为这种语言有很多缺点,创立了python语言。所以python的很多风格都类似于ABC语言。
今天的笔记是一本流利的python书籍的第二章,主要记录了python内置序列类型的相关知识。
本文的重点是分析数据类型的“继承关系”,也就是本文标题上方的图片。
目录
为什么初学python时有这样的疑惑:在书的开头解释了链表、元组、str的用法,而在大一上C语言和C课程的时候,却先解释了链表、地址、指针的基础知识。
使用python的list动态添加和替换元素,甚至不需要知道链表是如何遍历的。我觉得这就是python的哲学。在python中“导入这个”,可以看到开发者提供了这样一段话:
漂亮总比难看好。
显性比隐性好。
简单比复杂好。
.
基于这种思想,python提供了非常有用的数据结构:list、tuple、str (list、tuple、string)等等。
1、python包含的内置序列
2、使用内置的数据类型
用python创建数据结构也很简单:用单引号或双引号创建一个字符串;创建元组时使用括号;使用方括号创建列表:
string_=有
元组_=(1,2,3)
list_=[4,5,6]
由于list、tuple和string都是用来保存数据的,下面我把它们称为“容器”。此外,还可以使用构造函数来创建它们:
string_=str(有)
list_=list([1,2,3])
元组_=元组((4,5,6))
2.1 创建
如果你想在一个容器中得到一个值,你可以索引它。例如,如果您想要获取列表的最后一个元素:
list_=[4,5,6]
print(list_[2])
产出:6
python中“-1”表示最后容器的最后一个元素:
list_=[4,5,6]
print(list_[-1])
产出:6
Tuple和string的索引方式和list一样,不同的是元素是否可变,这将在下一节指出。
2.2 索引
任何实现迭代器协议__iter__()的容器都可以
以使用for...in...
的形式来遍历其中的每一个元素:
tuple_ = (1, 2, 3)for tu in tuple_:
print(tu)
# 输出:1 2 3
list
和string
同理。
3、可变与不可变
我们知道,list
创建以后,可以动态的改变它的某个元素的值:
list_ = [4, 5, 6]list_[0] = 100
print(list_)
# 输出:[100, 5, 6]
但是,tuple和string
一旦被创建以后,就不能改变它元素的值,强制修改会报错:
tuple_ = (1, 2, 3)tuple_[0] = 2
输出错误:
TypeError: 'tuple' object does not support item assignment
重点来了,python的数据类型不仅仅前面介绍的3种,各种类型之间的相同和差异有哪些呢?
答:python将序列类型(容器)分为可变序列和不可变序列,我们可以通过继承关系区分二者功能上的相同点和差异,具体分类如下:
- (1)可变序列(MutableSequence):list、bytearray、array.array、collections.deque、memoryview
- (2)不可变序列(Sequence):tuple、str、bytes
下面的图形象的体现了二者的关系(根据书中画的):
可变序列是继承自不可变数据类型的,所以二者的共同点就是不可变类型包含的函数(比如index),区别就是可变序列新增的或者重载的函数(比如pop是可变序列独有的)。
4、小练习题
题目:实现一个函数,用于删除字符串最后的一个字母,可以返回新的字符串。比如给一个单词here,函数需要删除e,返回her。
实现如下:
def delete_last(word):new_word = word[0:-1]
return new_word
测试一下:
word = "here"new_word = delete_last(word=word)
print(new_word)
输出:her
也可以将str转为list,使用list.pop()删除最后一个字母,最后再转回str类型,但是比较麻烦。
到此这篇关于python内置数据类型使用方法和继承关系的文章就介绍到这了,更多相关python内置数据类型内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。