[GN] Python3基本数据类型 -- 与C的差异


Python3 面向对象

文章目录

    • Python3的基本数据类型
      • 6个标准的数据类型
      • Numbers
        • String
        • List
        • tuple
        • Sets
        • Dictionaries
    • Python运算符
        • 逻辑 运算符
        • 成员运算符
        • 身份运算符
    • Python3 数字
    • Python3 序列
        • 序列切片
        • 序列相加
        • 序列相乘
        • 序列相关内置函数
    • Python3 列表
        • 访问列表的值
        • 更新列表
        • 删除列表元素
        • 拼接列表
        • 嵌套列表
        • 列表函数方法
    • Python3 元组
        • 访问元组的值
        • 修改元组
        • 删除元组元素
        • 元组内置函数
    • Python3 字典
        • 访问字典的值
        • 修改字典
        • 删除字典元素
        • 字典内置函数
    • Python3 集合
        • 集合的基本操作
        • 集合内置函数


Python3的基本数据类型

6个标准的数据类型

Numbers(数字); String(字符串); List(列表); Tuple(元组); Set(集合); Dictionaries(字典)

Numbers

  1. 类型

int
float
boll
complex(复数) 4+3j

  1. 数值运算

2//4 除法 一个整数

2/4 除法 一个浮点数

2**5 乘方

String
  1. \ 转义特殊字符
>>> print('C:\some\name')
C:\some
ame
>>> print(r'C:\some\name')
C:\some\name
  1. 可以使用+ *连接
>>> print('str'+'ing', 'my'*3)
string mymymy
  1. 可以对字符串切边(前闭后开)
>>> word = 'ilovepython'
>>> word[1:5]
'love'
>>> word[:]
'ilovepython'
>>> word[5:]
'python'
>>> word[-10:-6]
'love'
  1. 与C字符串不同,Py字符串不能改变
word[0] = 'm'  #这是错误的
List
  1. 写在方括号之间,列表元素类型可以不同
>>> a = ['him', 25, 100, 'her']
>>> print(a)
['him', 25, 100, 'her']
  1. 可以使用+ 连接
>>> a = [1, 2, 3, 4, 5]
>>> a + [6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
tuple
  1. 写在圆括号之间,与列表相似,不同在于元组的元素不能改变
>>> a = (1991, 2014, 'physics', 'math')
>>> print(a, type(a), len(a))
(1991, 2014, 'physics', 'math') <class 'tuple'> 4
  1. 构造包含0或1个元素的元组的特殊语法规则
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
  1. 元组也可以使用+ 操作符
Sets
  1. 是一个无序不重复元素的集合(可用来成员关系测试和消除重复元素);可以使用大括号 或者 set()函数创建集合
>>> student = ()     #创建空集合
>>> student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
>>> print(student)   # 重复的元素被自动去掉
{'Jim', 'Jack', 'Mary', 'Tom', 'Rose'}
>>> 'Rose' in student  # membership testing(成员测试)
True
>>> # set可以进行集合运算
... 
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'b', 'c', 'd', 'r'}
>>> a - b     # a和b的差集
{'b', 'd', 'r'}
>>> a | b     # a和b的并集
{'l', 'm', 'a', 'b', 'c', 'd', 'z', 'r'}
>>> a & b     # a和b的交集
{'a', 'c'}
>>> a ^ b     # a和b中不同时存在的元素
{'l', 'm', 'b', 'd', 'z', 'r'}
Dictionaries
  1. 字典是一种映射类型,他是一个无序的键值对集合。 关键字key必须是不可变类型(也就是说list和包含可变类型的tuple不能是关键字)
>>> dic = {}  # 创建空字典
>>> tel = {'Jack':1557, 'Tom':1320, 'Rose':1886}
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Rose': 1886}
>>> tel['Jack']   # 主要的操作:通过key查询
1557
>>> del tel['Rose']  # 删除一个键值对
>>> tel['Mary'] = 4127  # 添加一个键值对
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Mary': 4127}
>>> list(tel.keys())  # 返回所有key组成的list
['Tom', 'Jack', 'Mary']
>>> sorted(tel.keys()) # 按key排序
['Jack', 'Mary', 'Tom']
>>> 'Tom' in tel       # 成员测试
True
>>> 'Mary' not in tel  # 成员测试
False
  1. 构造函数可以直接从键值对swquence中构造字典
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'jack': 4098, 'sape': 4139, 'guido': 4127}>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}>>> dict(sape=4139, guido=4127, jack=4098)
{'jack': 4098, 'sape': 4139, 'guido': 4127}

Python运算符

逻辑 运算符

and; or; not

成员运算符

in; not in

身份运算符

is 两个标识符是不是引用自一个对象

is not 两个标识符不是引用自不同一个对象

Python3 数字

​​​​​​
在这里插入图片描述

Python3 序列

序列类型包括 字符串、列表、元组、集合和字典。(集合和字典不支持索引、切片、相加和相乘操作)

序列切片

访问一定范围内的元素

sname[start : end : step]
  • sname: 序列名称
  • start: 索引开始位置(包括该位置
  • end: 结束索引位置(不包括该位置)
  • step:隔几个存储位置
str=""
#取索引区间为[0,2]之间(不包括索引2处的字符)的字符串
print(str[:2])
#隔 1 个字符取一个字符,区间是整个字符串
print(str[::2])
#取整个字符串,此时 [] 中只需一个冒号即可
print(str[:])
序列相加
序列相乘
序列相关内置函数

在这里插入图片描述

Python3 列表

列表的数据项不需要有相同类型

list1 = ['Google', '', 1997, 2000]
访问列表的值
索引013
负索引-4-3-1
‘Google’‘’2000
更新列表
list1[2] = "1998" #直接对想要修改的数据项赋上一个新值即可修改该数据项
print ("list1的第三个元素为: ", list1[2])
list1.append(2021) #append()可以在列表后追加一项列表项
print ("追加列表项后的list1: ", list1)list1的第三个元素为:  1998
追加列表项后的list1:  ['Google', '', '1998', 2000, 2021]
删除列表元素
  1. del删除
del list1[0] #del可以删掉一个元素
print ("删除列表项后的list1: ", list1)删除列表项后的list1:  ['', 1997, 2000]
  1. remove删除
list1 = ['Google', '', 'Taobao', 'Baidu']
list1.remove('Taobao') # remove可以按值查找列表中的元素并删除
print ("列表现在为 : ", list1)
list1.remove('Baidu')
print ("列表现在为 : ", list1)列表现在为 :  ['Google', '', 'Baidu']
列表现在为 :  ['Google', '']
拼接列表

+号直接

嵌套列表
>>>a = ['a', 'b', 'c'] 
>>> n = [1, 2, 3] 
>>> x = [a, n] 
>>> x [['a', 'b', 'c'], [1, 2, 3]] 
>>> x[0] ['a', 'b', 'c'] 
>>> x[0][1] 'b'
列表函数方法

在这里插入图片描述

在这里插入图片描述

Python3 元组

元组使用小括号(); 列表使用方括号[]

list1 = ('Google', '', 1997, 2000)
访问元组的值
索引013
负索引-4-3-1
‘Google’‘’2000
修改元组

元组中的元素值不允许修改。但可以连接

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')# 以下修改元组元素操作是非法的。
# tup1[0] = 100# 创建一个新的元组
tup3 = tup1 + tup2;
print (tup3)
删除元组元素

元组中的元素值不允许删除。但可以使用del删除整个元组

  1. del删除
tup = ('Google', '', 1997, 2020)print (tup)
del tup;
元组内置函数

在这里插入图片描述

Python3 字典

dict = {key1 : value1, key2 : value2 }

键是唯一的,不可变的(如字符串,数字,元组)

访问字典的值
dict = {'Name': '', 'Age': 7, 'Class': 'First'}print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
修改字典
dict = {'Name': '', 'Age': 7, 'Class': 'First'}dict['Age'] = 8;               # 更新 Age
dict['School'] = "教程"  # 添加信息
删除字典元素
dict = {'Name': '', 'Age': 7, 'Class': 'First'}del dict['Name'] # 删除键 'Name'
dict.clear()     # 删除字典
del dict         # 删除字典print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
字典内置函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Python3 集合

集合是一个无序的不重复元素序列

创建可以使用{} 或者 set();但创建空的必须是set();

  1. 集合创建
parame = {value01,value02,...}
或者
set(value)
  1. 集合运算
a = set('abracadabra')
b = set('alacazam')print(a)
print(b)print(a-b)print(a|b)print(a&b)print(a^b){'b', 'd', 'a', 'c', 'r'}
{'l', 'z', 'm', 'a', 'c'}
{'r', 'd', 'b'}
{'l', 'z', 'b', 'm', 'd', 'a', 'c', 'r'}
{'c', 'a'}
{'l', 'z', 'b', 'm', 'r', 'd'}
集合的基本操作
  1. 添加元素
s.add(x)
s.update( x ) #x可以是多个thisset = set(("Google", "", "Taobao"))
thisset.update({1,3})
print(thisset)
thisset.update([1,4],[5,6])  
print(thisset){1, 3, '', 'Taobao', 'Google'}
{1, 3, 4, 5, 6, '', 'Taobao', 'Google'}
  1. 移除元素
s.remove( x )  #元素不存在会发生错误
s.discard( x ) #元素不存在不会发生错误
  1. 计算集合元素个数
len(s)
  1. 清空集合
s.clear()
  1. 判断是否存在
x in s
集合内置函数

在这里插入图片描述

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MCP over MQTT:EMQX 开启物联网 Agentic 时代

前言 随着 DeepSeek 等大语言模型&#xff08;LLM&#xff09;的广泛应用&#xff0c;如何找到合适的场景&#xff0c;并基于这些大模型构建服务于各行各业的智能体成为关键课题。在社区中&#xff0c;支持智能体开发的基础设施和工具层出不穷&#xff0c;其中&#xff0c;Ant…

AI助力高效PPT制作:从内容生成到设计优化

随着人工智能技术的不断发展&#xff0c;AI在各个领域的应用日益普及&#xff0c;尤其是在文档和演示文稿的创建过程中。PowerPoint&#xff08;PPT&#xff09;作为最常用的演示工具之一&#xff0c;借助AI的技术手段&#xff0c;可以极大地提高制作效率并提升最终呈现效果。在…

学透Spring Boot — 009. Spring Boot的四种 Http 客户端

目录 常见的HttpClient Spring 提供的HttpClient RestTemplate Spring 提供的模板类 XXXTemplate RestTemplate的使用 RestTemplate的使用技巧 RestTemplate的问题 RestClient RestClinet的基本使用 RestClient的自动配置 RestClient 序列化对象 异常处理 onStatus …

leetcode117 填充每个节点的下一个右侧节点指针2

LeetCode 116 和 117 都是关于填充二叉树节点的 next 指针的问题&#xff0c;但它们的区别在于 树的类型 不同&#xff0c;117与 116 题类似&#xff0c;但给定的树是 普通二叉树&#xff08;不一定完全填充&#xff09;&#xff0c;即某些节点可能缺少左或右子节点。 树的结构…

软考系统架构师 — 4 嵌入式软件

目录 4.1 考点分析 4.2 嵌入式微处理器 4.2.1嵌入式微处理器体系结构 5.2.2 嵌入式微处理器分类 4.2.3 多核处理器 4.3 嵌入式软件 4.4 嵌入式系统 4.4.1 嵌入式系统的组成 4.4.2 嵌入式系统分类 4.4.3 嵌入式数据库系统DBMS 4.4.4 嵌入式操作系统OS 4.4.5 嵌入式实…

RocketMQ 中的 ProducerManager 组件剖析

一、引言 在分布式系统的消息传递领域&#xff0c;RocketMQ 以其高性能、高可用性和强大的扩展性脱颖而出。ProducerManager 作为 RocketMQ 中的一个关键组件&#xff0c;在消息生产环节发挥着至关重要的作用。它负责管理消息生产者&#xff08;Producer&#xff09;的生命周期…

k8s进阶之路:本地集群环境搭建

概述 文章将带领大家搭建一个 master 节点&#xff0c;两个 node 节点的 k8s 集群&#xff0c;容器基于 docker&#xff0c;k8s 版本 v1.32。 一、系统安装 安装之前请大家使用虚拟机将 ubuntu24.04 系统安装完毕&#xff0c;我是基于 mac m1 的系统进行安装的&#xff0c;所…

深度学习数据集划分比例多少合适

在机器学习和深度学习中&#xff0c;测试集的划分比例需要根据数据量、任务类型和领域需求灵活调整。 1. 常规划分比例 通用场景 训练集 : 验证集 : 测试集 60% : 20% : 20% 适用于大多数中等规模数据集&#xff08;如数万到数十万样本&#xff09;&#xff0c;平衡了训练数…

【TS学习】(15)分布式条件特性

在 TypeScript 中&#xff0c;分布式条件类型&#xff08;Distributive Conditional Types&#xff09; 是一种特殊的行为&#xff0c;发生在条件类型作用于裸类型参数&#xff08;Naked Type Parameter&#xff09; 时。这种特性使得条件类型可以“分布”到联合类型的每个成员…

NSSCTF [HGAME 2023 week1]simple_shellcode

3488.[HGAME 2023 week1]simple_shellcode 手写read函数shellcode和orw [HGAME 2023 week1]simple_shellcode (1) motalymotaly-VMware-Virtual-Platform:~/桌面$ file vuln vuln: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpret…

PostgreSQL的扩展(extensions)-常用的扩展-pg_dirtyread

PostgreSQL的扩展&#xff08;extensions&#xff09;-常用的扩展-pg_dirtyread pg_dirtyread 是 PostgreSQL 的一个特殊扩展&#xff0c;它允许读取已被删除但尚未被 VACUUM 清理的数据行&#xff0c;是数据恢复的重要工具。 原理&#xff1a; pg_dirtyread 通过直接访问表的…

linux3 mkdir rmdir rm cp touch ls -d /*/

Linux 系统的初始目录结构遵循 FHS&#xff08;Filesystem Hierarchy Standard&#xff0c;文件系统层次标准&#xff09;&#xff0c;定义了每个目录的核心功能和存储内容。以下是 Linux 系统初始安装后的主要目录及其作用&#xff1a; 1. 核心系统目录 目录用途典型内容示例…

Bazel中的Symbol, Rule, Macro, Target, Provider, Aspect 等概念

学习Bazel &#xff0c;就要学习Bazel 的规则定义&#xff0c; 弄清各个概念是重要的一个步骤。 在 Bazel 规则定义中&#xff0c;Symbol、Rule 和 Macro 是常见的概念。除此之外&#xff0c;Bazel 还有 Target、Provider、Aspect Repository、Package、 Workspace、 Configura…

深入探究 Hive 中的 MAP 类型:特点、创建与应用

摘要 在大数据处理领域,Hive 作为一个基于 Hadoop 的数据仓库基础设施,提供了方便的数据存储和分析功能。Hive 中的 MAP 类型是一种强大的数据类型,它允许用户以键值对的形式存储和操作数据。本文将深入探讨 Hive 中 MAP 类型的特点,详细介绍如何创建含有 MAP 类型字段的表…

基于Java的区域化智慧养老系统(源码+lw+部署文档+讲解),源码可白嫖!

摘 要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;区域化智慧养老系统当然不能排除在外。区域化智慧养老系统是在实际应用和软件工程的开发原理之上&#xff0c;运用Java语言、JSP技术以及…

关于JVM和OS中的指令重排以及JIT优化

关于JVM和OS中的指令重排以及JIT优化 前言&#xff1a; 这东西应该很重要才对&#xff0c;可是大多数博客都是以讹传讹&#xff0c;全是错误&#xff0c;尤其是JVM会对字节码进行重排都出来了&#xff0c;明明自己测一测就出来的东西&#xff0c;写出来误人子弟… 研究了两天&…

VS2022远程调试Linux程序

一、 1、VS2022安装参考 VS Studio2022安装教程&#xff08;保姆级教程&#xff09;_visual studio 2022-CSDN博客 注意&#xff1a;勾选的时候&#xff0c;要勾选下方的选项&#xff0c;才能调试Linux环境下运行的程序&#xff01; 2、VS2022远程调试Linux程序测试 原文参…

WPF设计学习记录滴滴滴4

<Button x:Name"btn"Content"退出"Width" 100"Height"25"Click"btn_Click" IsDefault"True"/> <Button x:Name"btn" <!-- 控件标识&#xff1a;定义按钮的实例名称为"btn&…

JVM 有哪些垃圾回收器

垃圾收集算法 标记-复制算法(Copying): 将可用内存按容量划分为两个区域,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面, 然后再把已使用过的内存空间一次清理掉。 标记-清除算法(Mark-Sweep): 算法分为“标记” 和“清除”两个…