百日筑基篇——常用数据结构与类型介绍(python入门一)

本文介绍了Python编程语言的基础知识,包括Python的特性、安装步骤和变量命名规则。接着详细讲解了Python中的常用数据类型,如数值型(整数、浮点、复数)、字符串、布尔类型、列表、元组、字典和集合,以及它们的特点和使用方法。此外,还提到了其他一些数据结构,如堆、队列、哈希表、栈、树和图。
摘要由CSDN通过智能技术生成

百日筑基篇——常用数据结构介绍(python入门一)


前言

作为一个学生,对计算机编程语言有较多兴趣,其中python语言的学习也比较有意思,作为一个萌新,希望以这种方式,对自己的学习不断进行复盘,同时希望多多指教!!


一、python是什么?

Python是一种高级、通用、解释型的编程语言。Python具有简单易学、代码可读性强的特点,代码用量少

Python支持面向对象编程和函数式编程,拥有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、机器学习等。Python还具有跨平台性,可以在多个操作系统上运行。

Python在开源社区中非常受欢迎,拥有庞大的开发者社区和众多的资源和工具。它的易用性和强大的功能使得Python成为了很多开发者的首选语言。

二、python安装

要安装Python,可以按照以下步骤进行操作:

  1. 访问Python官方网站:你可以在Python官方网站(https://www.python.org)上找到最新版本的Python。

  2. 选择合适的Python版本:Python有两个主要版本,即Python 2和Python 3。建议下载Python 3的最新版本,因为它是未来的主要发行版本,并且向后兼容性更好。

  3. 运行安装程序:下载完安装程序后,双击运行它。接受许可协议并选择安装目录,然后点击“安装”按钮。

  4. 自定义安装选项(可选):在安装过程中,你可以根据需要选择自定义安装选项,比如添加Python到系统路径、安装开发工具等。

  5. 验证安装:安装完成后,可以打开命令行终端或控制台,并输入python命令来验证Python是否成功安装。你将看到Python的交互式解释器,表示Python已经成功安装。

现在,你已经成功安装了Python,可以开始编写和运行Python程序了。如果需要安装额外的库或模块,可以使用工具如pip来安装。

三、相关变量命名规则

变量名中不能有空格以及标点符号(括号、引号、逗号、冒号等等)
变量名只能包含字母、下划线“_”和数字及汉字等字符及其组合,注意首字符不能是数字。
变量名不能使用Python中的保留字,如果不清楚保留字有哪些单词,可以自己查询。

用del删除的变量,可以重新分配

四、常用数据类型

1.数值型

数值型是Python中的一种基本数据类型,用于表示数值数据。主要有以下几种数值类型:

整数型(int):表示没有小数部分的整数值。例如:a= 23

浮点型(float):表示带有小数部分的数值。例如:b = 23.0

复数型(complex):表示实部和虚部构成的复数。例如:c = 3 + 4i

a = 23
b = float(a)
c = 3 + 4i
print(type(a), type(b),type(c))

2.字符串(String)

字符串是一个由字符组成的不可变序列。字符串用单引号’ '或双引号" "括起来。 示例:wht = “Hello, World!”

a = 23
print("hello" + str(a))	#str() 转化为字符串
string = " I\'m wanghaoTian"
print(string.islower())	#检查字符串中的所有字符是否都是小写字母。该方法返回一个布尔值False
print(string.isupper())
print(string.capitalize())	#将字符串的首字母转换为大写,同时将其他所有字符都转换为小写
print(string.index("w"))	
print(string.strip())  # 将字符串的前后空格去除
print(string.lower())
print(len(string))
print("spam, eggs, ham".split(", "))	#打印  "['spam', 'eggs', 'ham']"
print(", ".join(["spam", "eggs", "ham"]))	#打印 "spam, eggs, ham"
print("Hello ME".replace("ME", "world"))	#打印 "Hello world"
print("This is a sentence.".startswith("This"))	# 打印 "True"
print("This is a sentence.".endswith("sentence."))	# 打印 "True"



# 切片,获取指定索引范围内的内容
print(string[5], string[len(string) - 1], string[-1])
print(string[:5], string[0:3], string[2:8:2])

# 格式化字符串,在字符串中指定占位符
# 方式一: 用%运算符,%s表示任意字符;%d表示整数;%f 表示浮点数
name = "wht"
age = 20
height = 180.43
print("大家好,我叫%0.2s,我%d岁,身高为%.3f" % (name, age, height))  # %0.2s表示取字符串的[0:2]
print("当前时间:%d年-%02d月-%03d日" % (2023, 6, 2))  # %02d   表示长度为2,不足用0占位
# 方式二: 使用format()方法,使用{}表示占位符
print("大家好,我叫{0},我{1}岁,身高为{2:.4f}".format(name, age, height))
print("当前时间:{0}年-{1:02}月-{2:03}日".format(2023, 6, 2))
# 方法三:f前缀
print(f"大家好,我叫{name},我{age}岁,身高为{height}")

3. 布尔类型(bool)

布尔类型(bool)是Python中的一种数据类型,表示逻辑值。布尔类型只有两个可能的取值:True和False。布尔类型通常用于条件判断和控制流程。

#比较运算符: ==、>,<...
print(5 > 9)	#逻辑判断,返回True 或 False

# 逻辑运算符: and or not
print(True and False)
print(True or False)
print(not 8 > 2)
x = 0
y = 5
print(x and y)
print(x or y)	#在逻辑运算 中,数值0被视为False,而非零数值被视为True。

# 成员运算符:
c = [3, 56, 6, 432, 5, 45, 4, 6, 6, 5, 43, 5]
d = 45
print(d in c)
print(d not in c)

# 身份运算符
m = [1, 3, 2, 2]
n = [1, 3, 2, 2]
v = n
print(m is n, m == n)
print(v is n)

4. 列表类型(List)

表示有序、可变的元素集合,可以包含不同类型的元素,列表可相互嵌套。(注意: 在python中,列表的索引从0开始)

#使用方括号[]来创建一个列表
numbers = [1, 2, 3, 4, 5]
kong_list = []

#访问元素
print(numbers[2])  # 输出 3
# 切片
print(numbers[1:4])  # 输出 [2, 3, 4]
# 连接
new_numbers = numbers + [6, 7, 8]
print(new_numbers)  # 输出 [1, 2, 3, 4, 5, 6, 7, 8]
# 复制
copied_numbers = numbers.copy()
print(copied_numbers)  # 输出 [1, 2, 3, 4, 5]

#列表方法
fruits = ['apple', 'banana']
fruits.append('orange')	#append():向列表末尾添加一个元素。
fruits.extend(numbers)	#将一个列表的元素添加到另一个列表的末尾。
fruits.insert(1, 'orange')	#在指定的位置插入一个元素。
fruits.remove('banana')	#删除列表中首次出现的指定元素。
fruits.pop(1)	#删除并返回指定位置的元素。若不指定位置,默认删除并返回最后一个元素
ruits.index('appple')	#返回指定元素第一次出现的位置。
fruits.count('orange')	#返回指定元素在列表中出现的次数
numbers.sort(reverse=True)	#默认按升序排列。也可以通过指定reverse=True参数进行降序排列
furits[::-1]	#翻转列表,也可用reverse方法
len(fruits)	#返回列表长度
fruits.clear()	#清空列表
nums = [10, 20, 30, 40, 50]
for index, value in enumerate(nums):
    print(index, value)  #enumerate函数可以同时迭代列表的键和值


列表推导式:
[ 表达式1 for i in k if 表达式2 ]
遵循简单规则快速创建内容列表


5. 元组类型(tuple)

表示有序、不可变的元素集合,可以包含不同类型的元素。
元组

#元组与列表非常相似,不过元组是不可变的。元组使用圆括号创建,而不是方括号。
words = ("w", "h", "t",)

#你可以使用索引访问元组中的值,就像使用列表一样:
print(words[0])

#尝试重新分配元组中的值会导致 TypeError。
words[1] = "cheese"
#结果:
TypeError: 'tuple' object does not support item assignment

#元组可以在没有括号的情况下创建,只需用逗号分隔值。
my_tuple = "one", "two", "three"

#使用空括号对创建空元组。
tpl = ()
#元组比列表快,但是元组不能改变。像列表和字典一样,元组也可以相互嵌套

6. 字典类型(dict)

表示键值对的无序集合,键和值之间构成映射关系;
列表可以被认为是在一定范围内具有整数键的字典;
只有不可变对象可以用作字典的关键字。

#创建字典:可以使用大括号{}来创建一个字典
student = {'name': 'wht', 'age': 18, 'gender': 'male'}

#访问元素:可以使用键来访问字典中的值
print(student['name'])  # 输出 'wht'
#也可用get方法
print(student.get("married" , "not in dict"))
#添加元素
student['city'] = 'Ning Bo'
#删除元素
del student['gender']

#字典操作
keys = student.keys()	#获取所有键
values = student.values()	# 获取所有值
items = student.items()	# 获取所有键值对
print(keys,values,items)  

7. 集合类型(set)

表示无序、唯一的元素集合。

集合可以使用数学运算进行组合:
联合运算符 | 结合两个集合
相交运算符& 获得两个集合共有的项目
差运算符 - 获取第一集合中的项目,但不是第二集合中的项目。
对称差分运算符^ 获取任集合中非共有的项目。

# 可以使用大括号{}或set()函数来创建一个集合
fruits = {'apple', 'banana', 'orange'}
numbers = set([1, 2, 3, 4, 5])

# 访问集合中的元素
for fruit in fruits:
    print(fruit)

# 集合的基本操作
fruits.add('grape')  # 添加元素
fruits.remove('banana')  # 删除元素
print(len(fruits))  # 获取集合的长度

# 集合的运算操作
set1 = {'apple', 'banana', 'orange'}
set2 = {'orange', 'grape'}
set3 = set1.union(set2)  # 并集
set4 = set1.intersection(set2)  # 交集
set5 = set1.difference(set2)  # 差集
print(set5)  # {'apple', 'banana'}

8. 空类型(NoneType)

表示空值或缺失值。
有点像其他编程语言中的 null 或者 空值一样,如 0,[] 和 空字符串,在转换为布尔变量时为 False。
None是一个特殊的常量。
None和任何其他的数据类型比较永远返回False。
None有自己的数据类型NoneType。
你可以将None赋值给任何变量,但是你不能创建其他NoneType对象。

print(None == None)		# 返回True
print(None)		#None
print(None == 0)	#False
print(None == False)	#False
print(None == "")	#False		

#None 对象是由不返回任何东西(没有调用 return 语句)的函数返回的。
def some_func():
   print("Hi!")
var = some_func()
print(var)
#结果:
Hi!
None

五. 常用数据结构

数据类型是指数据的类型和属性,而数据结构是指数据的组织和存储方式
前文提到的列表,字典,元组,集合,也是常用的数据结构,只是从不同的功能角度出发,可将他们定义为类型或结构

除了上述提到的常用数据结构外,还有一些其他的数据结构在Python中也是可用的,包括但不限于以下几种:

堆(Heap):堆是一种特殊的二叉树结构,具有堆序性质。Python中可以使用heapq模块来实现堆的功能。

队列(Queue):队列是一种先进先出(FIFO)的数据结构。Python中提供了queue模块和collections模块中的deque类来实现队列。

哈希表(Hash Table):哈希表是一种根据键(Key)直接访问值(Value)的数据结构。在Python中,字典(Dictionary)就是一种基于哈希表实现的数据结构。

栈(Stack):栈是一种后进先出(LIFO)的数据结构。Python中可以使用列表(List)来模拟栈的行为。

树(Tree):树是一种非线性的数据结构,具有层次结构。在Python中,可以使用类和指针来实现各种类型的树,例如二叉树(Binary Tree)或二叉搜索树(Binary Search Tree)。

图(Graph):图是一种网络结构,由节点(Node)和边(Edge)组成。在Python中,可以使用邻接矩阵或邻接表等方式来表示和操作图的数据结构。

总结

从前文中可知道,Python支持以下数据结构:列表,字典,元组,集合。
何时使用字典:

  • 当您需要键:值对之间的逻辑关联时。

  • 当您需要基于自定义密钥快速查找数据时。

  • 当你的数据不断修改时。请记住,字典是可变的。

何时使用其他类型:

  • 如果您有一些不需要随机访问的数据集合,请使用列表。当你需要一个简单的,可迭代的频繁修改的集合可以使用列表。

  • 如果你需要元素的唯一性,使用集合。

  • 当数据无法更改时使用元组。

很多时候,元组与字典结合使用,例如元组可能代表一个关键字,因为它是不可变的。好了,今天的总结就到此为止,期待之后的分享。

天下兴亡,匹夫有责

–2023-7-5 筑基篇

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星石传说

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值