06.Python基础4

server/2025/3/19 0:00:34/

目录

元组 tuple

1.概述

2.可变数据为什么可变

3.不可变数据如何变化

4.基础操作

4.1创建元组

4.2定位元素

4.3遍历元组

 4.4序列拆包

5.字符串 str

5.1定义

5.2编码

5.2.1字符集

5.2.2编码方式

5.2.3不可变

5.3序列

5.4字面值

5.4.1单引和双引号的区别

5.4.2三引号作用

5.4.3转义字符

5.4.4格式化

元组 tuple

1.概述

(1)定义:由一系列变量组成的不可变序列容器。

(2)语法:元组名 = (元素1,元素2)

tuple_type = ("剧情","动作")

与列表的区别

元组用于存储无需变化的数据,所以采用"按需分配"的存储机制

列表用于存储需要变化的数据,所以采用"预留空间"的存储机制

2.可变数据为什么可变

存储机制:预留空间 + 自动扩容

自动扩容:开辟更大空间、拷贝原始数据、替换内存地址

3.不可变数据如何变化

每次变化都会产生新数据

tuple_type = ("剧情","动作")
tuple_type += ("惊悚","科幻")

4.基础操作

4.1创建元组

元组名 = (元素1,元素2)

元组名 = 元素1,元素2 # 没有歧义时也可以省略小括号

元组名 = (元素1,) # 只有一个元素时必须添加逗号

name = "悟空", # 小心:是元组不是字符串

4.2定位元素

变量 = 元组名[索引]

变量 = 元组名[切片] # 创建新元组

tuple_type = ("剧情","动作")
tuple_type += ("惊悚","科幻")print(tuple_type[1]) # 动作
print(tuple_type[1:]) # ('动作', '惊悚', '科幻')

4.3遍历元组

从头到尾读取满足条件的元素

    for 变量名 in 元组名:

         变量名就是元素

tuple_type = ("剧情","动作")
tuple_type += ("惊悚","科幻")for item in tuple_type:print(item)

 4.4序列拆包

定义:将序列元素分配给多个变量的操作

作用:操作序列元素更方便,代码更简洁

语法:变量名1,变量名2 = 序列

tuple_name = ["王宝强","周润发","王学兵"]
a,b,c = tuple_nameprint(a,b,c) # 王宝强 周润发 王学兵*a,b = tuple_name
print(a,b) # ['王宝强', '周润发'] 王学兵# 元组转列表*d,=tuple_name
print(d) # ["王宝强","周润发","王学兵"]

练习

"""根据月日,计算是这一年的第几天.
公式:前几个月总天数 + 当月天数5.20 是今天的31+29+31+30+20=141天"""
mon_days=(31,29,31,30,31,30,31,31,30,31,30,31)tuple_num=(1,31)a,b=tuple_num
day_num=bfor item in range(a-1):day_num+=mon_days[item]
print(day_num)

5.字符串 str

5.1定义

由一系列字符编码值组成的不可变序列容器

5.2编码

5.2.1字符集

字符与整数对应关系的集合

(1)ASCII:包含英文、数字等字符

(2)GBK:兼容ASCII,包含21886个中文

(3)Unicode:几乎涵盖全球所有已知字符 

5.2.2编码方式

将字符转换为整数的规则

(1)ASCII:每个字符占1个字节

(2)GBK:英文1个字节,中文2个字节

(3)UTF8:英文1个字节,中文3个字节

5.2.3不可变

采取"按需分配"的存储策略,节省内存空间

修改数据时若在原有空间,可能破坏其他数据

所以每次修改都会创建新数据,替换变量中记录的数据地址

name = "封神"
name = "封神第一部"
name = "电影" + nameprint(name) # 电影封神第一部

5.3序列

使用比较运算符时会依次比较两个容器中元素,一但不同则返回结果

print("12w" < "13w") # True
print("2k" < "13w") # False

5.4字面值

5.4.1单引和双引号的区别

(1) 单引号内的双引号不算结束符

(2) 双引号内的单引号不算结束符

print('悟空')
print("悟空")
print('花果山"水帘洞"美猴王孙悟空')
print("""花果山'水帘洞'"美猴王"孙悟空""")

5.4.2三引号作用

(1) 换行会自动转换为换行符\n

(2) 三引号内可以包含单引号和双引号

(3) 作为文档字符串

"""//                          _ooOoo_                               //
//                         o8888888o                              //
//                         88" . "88                              //
//                         (| ^_^ |)                              //
//                         O\  =  /O                              //
//                      ____/`---'\____                           //
//                    .'  \\|     |//  `.                         //
//                   /  \\|||  :  |||//  \                        //
//                  /  _||||| -:- |||||-  \                       //
//                  |   | \\\  -  /// |   |                       //
//                  | \_|  ''\---/''  |   |                       //
//                  \  .-\__  `-`  ___/-. /                       //
//                ___`. .'  /--.--\  `. . ___                     //
//              ."" '<  `.___\_<|>_/___.'  >'"".                  //
//            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
//            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
//      ========`-.____`-.___\_____/___.-`____.-'========         //
//                           `=---='                              //
//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
//              佛祖保佑       永无BUG     永不修改                   //
"""

5.4.3转义字符

(1) 定义:改变字符的原始含义。

(2) 语法: \' \" \n \\

print("花果山\"水帘洞\"美猴王孙悟空")
print("花果山水帘洞\n美猴王孙悟空")
print("C:\\newfile\\test.py")

(3) 原始字符串:取消转义。

print(r"C:\newfile\test.py")

5.4.4格式化

(1) 作用:将变量插入到字符串时,可以先用占位符描述格式后插入变量

(2) 占位符:%s 原样输出 %d 整数保留位数 %f 小数保留精度

(3) 语法:格式%(变量)

name = "大圣"
age = "6"
money = 1.2345
hour = 2
minute = 6
print("我叫%s,今年%s岁啦" % (name, age))
print("请支付:%.2f元" % money)
print("%.2d:%.2d" % (hour,minute))


http://www.ppmy.cn/server/176089.html

相关文章

jmeter 循环控制器遍历列表中的数据

jmeter遍历列表中的数据并使用if控制器做相应的处理 测试场景请求获取列表接口发送请求JSON Extractor 提取对应字段 Loop Controller计数器If Controller 测试场景 请求获取列表接口使用循环控制器遍历接口&#xff0c;根据state字段判断是否发起其他请求 请求获取列表接口 …

vue/react/vite前端项目打包的时候加上时间最简单版本,防止后端扯皮

如果你是vite项目&#xff0c;直接写一个vite的插件&#xff0c;通过这个插件可以动态注入环境变量&#xff0c;然后当打包的时候&#xff0c;自动注入这个时间到环境变量中&#xff0c;然后在项目中App.vue中或者Main.tsx中打印出来&#xff0c;这就知道是什么时候编译的项目了…

通向AGI的未来之路!首篇2D/视频/3D/4D统一生成框架全景综述(港科大中山等)

文章链接&#xff1a; https://arxiv.org/pdf/2503.04641 摘要 理解并复现现实世界是人工通用智能&#xff08;AGI&#xff09;研究中的一个关键挑战。为实现这一目标&#xff0c;许多现有方法&#xff08;例如世界模型&#xff09;旨在捕捉支配物理世界的基本原理&#xff0…

【Mac】安装 Parallels Desktop、Windows、Rocky Linux

一、安装PD 理论上&#xff0c;PD只支持试用15天&#xff01;当然&#xff0c;你懂的。 第一步&#xff0c;在 Parallels Desktop for Mac 官网 下载 Install Parallels Desktop.dmg第二步&#xff0c;双击 Install Parallels Desktop.dmg 第三步&#xff0c;双击安装Paralle…

SpringBoot快速入门

文章目录 Spring boot框架Spring Boot特性的核心快速搭建Spring Boot项目Maven依赖管理依赖配置依赖传递依赖排除Maven Help插件 Maven仓库本地仓库中央仓库私服配置国内源Spring Boot的jar包和普通jar包的区别 什么是脚手架&#xff1f;目录介绍为什么要以继承父工程的方式引入…

企业安全——密码学基础

0x00 前言 密码学的内容一直都是零零散散的&#xff0c;学一遍忘一遍&#xff0c;对于这些很少用到的内容&#xff0c;只能这样子去进行重复&#xff0c;效率低从此没有效率会稍微好一点。 总会比说出base64是一种加密方式贻笑大方的好一点。 0x01 密码学的目的 密码学的主要…

kettle的转换中sql不按设计顺序执行原因分析与解决办法

1.问题描述 如图&#xff0c;通过箭头指定多个SQL脚本的先后顺序&#xff0c;实际各个sql没有阻塞&#xff0c;没有等待&#xff0c;几乎是并行&#xff0c;与预期不符。 2.原因 转换文件&#xff08;.ktr&#xff09; 用于控制数据的流量&#xff0c;比如表输入指向表输出节…

常见框架漏洞

ThinkPHP 框架漏洞 thinkphp是一个国内轻量级的开发框架&#xff0c;采用phpapache&#xff0c;在更新迭代中&#xff0c;thinkphp也经常爆出各种漏洞&#xff0c;thinkphp一般有thinkphp2、thinkphp3、thinkphp5、thinkphp6版本&#xff0c;前两个版本已经停止更新&#xff0…