Python系统学习1-5-容器

news2025/1/19 23:06:27

1、字符串

字符串是不可变的数据

原因:如果在原有内存中修改,很可能破坏其他数据的空间

现象:每次需要修改字符串时,都会创建新数据,替换变量中存储的地址

字符串字面值

(1)建议使用双引号

name01 = "悟空"

(2)冲突后使用单引号

name02 = '悟空'

(3)三引号,所见皆所得包括三单和三双,

print("""三 单 引号""")

转义字符:改变原有含义的特殊字符

print("我是\"花果山\"悟空")
print("我是\n花果山")
# 当引号中是文件位置时
# print("E:\aonth01\bay04-8月5日")
# 或者 双斜杠
print("E:\\aonth01\\bay04-8月5日")
#或者 加r,代表原始字符
print(r"E:\aonth01\bay04-8月5日")

格式化字符串

适用性:在字符串中插入变量
语法:字符串%(变量)
占位符:%s s代表str,原样输出
       %.1f  保留一个小数,支持四舍五入
       %.2d  保留两位整数,不足两位时,左侧用零填充
print("%.1f" % 1.29456) ¥ 1.2
# 不足两位时,左侧用零填充
print("%.2d:%.2d" % (9,5)) # 09:05

 

2、序列

序列:由一系列字符组成的不可变序列容器,存储的是字符的编码值

字节:计算机存储的最小单位,等于8位bit,最大为十进制255。

字符:单个的数字,文字,符号

字符集:存储字符与二进制序列的对应关系(编码与解码,ASCII编码)

编码

 ASCII编码:有100多字符,8个比特位最多可以表示255个字符,所以每个字符1个字节。

GBK编码:21003个中文,需要15个比特位全部表示,由于计算机中存储是以8个比特位为间隔,所以需要1个中文需要2个字节

一般情况下使用UTF-8编码。

3、通用操作

1、数学运算符

+ 拼接
* 重复
> < >= <= == 比较运算,比较编码值,依次比较两个容器中元素,一旦不同则返回比较结果

print("悟空"+"猴子")
print("悟空" * 3)
print("悟空" > "八戒")
print("12w" == "16w")  # 单位一致,进行比较
print('12W' == "1200000")  # 单位不一致,结果错误

2、成员运算符

in,not in 判断元素是否在容器中

print("悟空" in "孙悟空")

编程练习:

"""
# 请输入整数:8
$$$$$$$$
$ $
$ $
$ $
$ $
$ $
$ $
$$$$$$$$
"""
# num = int(input("请输入数字:"))
# print("$"*num)
# for i in range(1,num-2):
#     print("$"+" "*(num-2)+"$")
# print("$"*num)

# 优化
# """
num = int(input("请输入数字:"))
for i in range(num):
    if i == 0 or i==num-1:
        print("$" * num)
    else:
     print("$"+" "*(num-2)+"$")

3、索引

索引
定位单个元素,编号为0到len()-1
容器[整数]

正向索引
反向索引 len()-1等价于-1
         0  等价于 -len()

4、切片

切片,越界不报错
定位多个元素
容器名[开始:结束:[间隔]],不包括结尾,间隔默认为1,可省略
容器名[开始:结束]
容器名[:结束],开始可以不写,默认为1,但冒号不能省略
容器名[:],开始和结束都可以不写,结束默认为尾,默认包括所有元素
容器名[-3:],倒数3个字符

4、列表

定义:使用一个变量,管理多个数据,擅长于处理单一维度数据

(1)创建

#  列表名 = [数据1,数据2]
list_name = ["王丽","王红","丽红"]
# 列表名= list(容器)
list_lq = list("王丽")  # 相当于类型转换

(2)添加(追加和插入)

## 添加
# 追加,只能放在末尾:列表名.append(数据)
list_name.append("李红")
# 插入:列表名.insert(位置,数据)

(3)定位元素,利用索引或者切片

list_name = ["王丽","王红","丽红"]
# 读取单个元素
print(list_name[0])
# 修改单个元素
list_name[0] = "王丽丽"
# 读取多个元素
# 通过切片读取的原理会创建新容器
print(list_name[-2:])
# 修改多个元素
# 通过切片修改的原理会将右侧容器元素依次存入左侧
list_name[-2:] = ["ww","ll"]
print(list_name)

(4)删除元素:根据位置或根据元素值

list_name = ["王丽","王红","丽红"]
## 删除
# 根据定位删除:del 容器名[索引或切片]
del list_name[1]
print(list_name)
del list_name[0:1]
print(list_name)
# 根据元素删除
# 如果不知道是否存在,先判断
# list_name.remove("丽丽") # 报错
if "理理" in list_name:
    list_name.remove("丽丽")

(5)遍历列表元素,全部遍历或者根据条件遍历

list_name = ["王丽丽","王红","丽红"]
# 打印所有姓名是2个字的元素
for item in list_name:
    if len(item) == 2:
        print(item)
# 将所有姓名是2个字的元素改为空字符串
# for item in list_name:  错误
#     if len(item) == 2:
#         item = ""  # 修改的是变量item,与列表无关
# print(list_name)  

for i in range(len(list_name)):
    if len(list_name[i]) == 2:
        list_name[i] = ""
print(list_name)

(6)列表:内存分配

list_name = ["李琦","周义杰","毛绍祺"]
# 列表一份
data01 = list_name
data02 = list_name[0]
# 切片会重新创建,列表二份
data03 = list_name[-2:]
# 因为是两个列表,所以互不影响
data03[0] = "义杰"
# 因为一份,所以互相影响
data01[0] = "琪琪"
print(list_name)

 画图举例1:

 画图举例2:

自己画图: 

 

 

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

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

相关文章

中介者模式(C++)

定义 用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各对象不需要显式的相互引用(编译时依赖->运行时依赖)&#xff0c;从而使其耦合松散(管理变化)&#xff0c;而且可以独立地改变它们之间的交互。 应用场景 在软件构建过程中&#xff0c;经常会出现多个对象…

VUE框架:vue2转vue3全面细节总结(5)过渡动效

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人_python人工智能视觉&#xff08;opencv&#xff09;从入门到实战,前端,微信小程序-CSDN博客 最新的uniapp毕业设计专栏也放在下方了&#xff1a; https://blog.csdn.net/lbcy…

公文写作素材:“干”字型排比句40例

1.怀着真诚“想干”&#xff0c;扛着担当“敢干”&#xff0c;瞄着路径“能干”&#xff0c;盯着责任“真干”&#xff0c;想着办法“会干”&#xff0c;带着智慧“巧干”&#xff0c;揣着情怀“认干”&#xff0c;铆着劲头“实干”。 2.脱下“皮鞋”、换上“运动鞋”&#xff…

3 vue的if语法

vue的if语法是相当于一个标签的属性来写进去的&#xff0c;比如说<h1 v-if“”>。要注意的是if语句里可以自动从数据层取值的&#xff0c;比如<h1 v-if"message">&#xff0c;这里就会自动把key为message的值取过来&#xff0c;而如果要传一个字符串&…

Vue [Day5]

自定义指令 全局注册 和 局部注册 inserted在指令所在的元素 被插入到页面中时&#xff0c;触发 main.js import Vue from vue import App from ./App.vueVue.config.productionTip false// 1.全局注册指令 Vue.directive(focus, {// inserted在指令所在的元素 被插入到页…

Java个人博客系统--基于Springboot的设计与实现

目录 一、项目概述 应用技术 接口实现&#xff1a; 数据库定义&#xff1a; 数据库建表&#xff1a; 博客表数据库相关操作&#xff1a; 添加项⽬公共模块 加密MD5 页面展示&#xff1a;http://121.41.168.121:8080/blog_login.html 项目源码&#xff1a;https://gitee…

初学 Python 需要安装哪些软件?超级实用,小白必看!

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 编程这个东西是真的奇妙。 对于懂得的人来说&#xff0c;会觉得这个工具是多么的好用、有趣&#xff0c;而对于小白来说&#xff0c;就如同大山一样。 其实这个都可以理解&#xff0c;大家都是这样过来的。 那么接下来就说…

Spring简述

Sping是什么Spring主要模块IOCDI依赖注入的三种方式 AOP术语 Sping是什么 Spring是一个轻量级的开源框架&#xff0c;主要作用是为了简化开发&#xff0c;它以IOC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面编程&#xff09;为内核 Spring主要模块 我们一般…

cocosCreator 之 i18n多语言插件

版本&#xff1a; v3.4.0 环境&#xff1a; Mac 简介 i18n是国际化的简称&#xff0c; 全名&#xff1a;internationalization&#xff1b;取首尾字符i和n&#xff0c;18代表单词中间的字符数目。 该插件不需要产品做太多的改变&#xff0c;通过语言的设置&#xff0c;实现不…

P1194 买礼物(最小生成树)(内附封面)

买礼物 题目描述 又到了一年一度的明明生日了&#xff0c;明明想要买 B B B 样东西&#xff0c;巧的是&#xff0c;这 B B B 样东西价格都是 A A A 元。 但是&#xff0c;商店老板说最近有促销活动&#xff0c;也就是&#xff1a; 如果你买了第 I I I 样东西&#xff0…

【逗老师的PMP学习笔记】6、项目的进度管理

目录 一、规划进度管理1、【关键输出 】进度管理计划 二、定义活动1、【关键工具】拆解2、【关键工具】滚动式规划3、【关键输出】活动清单和活动属性4、【关键输出】里程碑清单 三、排列活动顺序1、【关键工具】紧前关系绘图法2、【关键工具】提前量和滞后量3、【关键输出】项…

Linux 中使用 verdaccio 搭建私有npm 服务器

安装 Node Linux中安装Node 安装verdaccio npm i -g verdaccio安装完成 输入verdaccio,出现下面信息代表安装成功&#xff0c;同时输入verdaccio后verdaccio已经处于运行状态&#xff0c;当然这种启动时暂时的&#xff0c;我们需要通过pm2让verdaccio服务常驻 ygiZ2zec61wsg…

网络编程——深入理解TCP/IP协议——OSI模型和TCP/IP模型:构建网络通信的基石

TCP/IP协议— 一、简介 TCP/IP协议&#xff0c;即传输控制协议/互联网协议&#xff0c;是一组用于在计算机网络中实现通信的协议。它由两个主要的协议组成&#xff1a;TCP&#xff08;传输控制协议&#xff09;和IP&#xff08;互联网协议&#xff09;。TCP负责确保数据的可靠…

【Linux取经路】冯诺依曼结构体系与操作系统的碰撞

文章目录 一、冯诺依曼体系结构1.1 硬件介绍1.2 内存的重要性 二、操作系统2.1 设计操作系统的目的2.2 操作系统是如何进行管理的&#xff1f; 一、冯诺依曼体系结构 我们现在常见的计算机&#xff0c;如笔记本&#xff0c;以及我们不常见的计算机&#xff0c;如服务器&#x…

Pycharm连接服务器

前提&#xff1a;必须为pycharm专业版才能连接到服务器 以下为pycharm2023专业版 一、连接 系统环境 虚拟环境&#xff08;前提&#xff1a;已安装anaconda&#xff09; (1) anaconda环境 (2) 自己创建的虚拟环境 这里为envs下的spotr 二、查看连接情况 选择自动上传

Docker 发布一个springboot项目

文章目录 1、新建SpringBootDemo项目并打包2、使用Dockerfile打包&#xff08;基础用法&#xff09;进一步maven源码打包法 3、更进一步&#xff08;maven插件打包&#xff09;docker-maven-pluginspring-boot-maven-plugin前提条件本地环境配置项目环境配置maven插件打包运行校…

一文让你了解网络安全和云安全的区别与联系

相信大家对于网络安全和云安全的关系不是很了解&#xff0c;今天小编就和大家来一起聊聊网络安全和云安全的区别与联系&#xff0c;仅供参考哦&#xff01; 网络安全和云安全的区别 1、两者定义不同。网络安全通常指计算机网络的安全&#xff0c;实际上也可以指计算机通信网络…

同源策略简单解释

浏览器同源策略 什么时同源策略 协议、域名(IP)、端口相同即为同源。浏览器的同源策略是一种约定&#xff0c;是浏览器最核心也是最基本的安全功能&#xff0c;如果浏览器少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。 http://192.168.200.131/user/1 https…

全景图!最近20年,自然语言处理领域的发展

夕小瑶科技说 原创 作者 | 小戏、Python 最近这几年&#xff0c;大家一起共同经历了 NLP&#xff08;写一下全称&#xff0c;Natural Language Processing&#xff09; 这一领域井喷式的发展&#xff0c;从 Word2Vec 到大量使用 RNN、LSTM&#xff0c;从 seq2seq 再到 Attenti…

【产品经理】高阶产品如何提出有效解决方案?(1方法论+2案例+1清单)

每一件事情总有它的解决方案&#xff0c;在工作中亦是如此&#xff0c;而有效的解决方案&#xff0c;一定是具有系统性的。 有效的解决方案&#xff0c;一定是系统性的解决方案。 什么是系统性解决方案&#xff1f; 从系统结构&#xff08;或连接关系&#xff09;入手&#x…