Python学习打卡:day06
day6
笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了
目录
- day6
- 48、函数综合案例
- 49、数据容器入门
- 50、列表的定义语法
- 51、列表的下标索引
- 1、列表的下标(索引)
- 2、列表的下标(索引)— 反向
- 3、嵌套列表的下标(索引)
- 52、列表的常用操作方法
- 1、列表的查询功能
- 2、列表的修改功能(方法)
- 1、修改特定位置(索引)的元素值:
- 2、插入元素
- 3、追加元素
- append
- extend
- 4、删除元素
- del
- pop
- remove
- clear
- count
- 3、列表的查询功能
- 方法总览
48、函数综合案例


示例:
money = 5000000
name = input("请输入名称: ")def check_balance():print("--------查询余额--------")print(f"{name},你好,您的余额剩余: {money}元")def deposit(m_money):print("-------- 存款 --------")global moneymoney += m_moneyprint(f"{name},你好,您存款{m_money}元成功")print(f"{name},你好,您的余额剩余: {money}元")def withdraw(m_money):print("-------- 取款 --------")global moneymoney -= m_moneyprint(f"{name},你好,您取款{m_money}元成功")print(f"{name},你好,您的余额剩余: {money}元")while name == "zhoujielun":print("--------主 菜单--------")print("查询余额 【输入1】")print("存款 【输入2】")print("取款 【输入3】")print("退出 【输入4】")choice = int(input("请输入你的选择: "))num = 0if(choice == 1):check_balance()elif(choice == 2):num = int(input("请输入存款的金额:"))deposit(num)elif(choice == 3):num = int(input("请输入取款的金额:"))withdraw(num)elif(choice == 4):breakelse:print("输入错误,请重新输入!")continue
49、数据容器入门
学习数据容器,就是为了批量存储或批量使用多份数据
Python中的数据容器:一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素。
每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
数据容器根据特点的不同,如:
- 是否支持重复元素
- 是否可以修改
- 是否有序,等
分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
50、列表的定义语法
基本语法格式:

列表内的每一个数据,称之为元素
- 以 [] 作为标识
- 列表内每一个元素之间用, 逗号隔开
示例:
"""
演示 数据容器之: list 列表
语法:[元素,元素,......]
"""# 定义一个列表 list
my_list = ["itheima", "itcast", "python"]
print(my_list)
print(type(my_list))my_list = ["itheima", 666, True]
print(my_list)
print(type(my_list))# 定义一个嵌套的列表
my_list = [[1, 2, 3], [4, 5, 6]]
print(my_list)
print(type(my_list))
tips:注列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套
51、列表的下标索引
1、列表的下标(索引)

如图,列表中的每一个元素,都有其位置下标索引,从前向后的方向,从 0 开始,依次递增,我们只需要按照下标索引,即可取得对应位置的元素。

2、列表的下标(索引)— 反向
也可以反向索引,也就是从后向前:从-1开始,依次递减(-1、-2、-3…)

如图,从后向前,下标索引为:-1、-2、-3,依次递减。

3、嵌套列表的下标(索引)
如果列表是嵌套的列表,同样支持下标索引:

如图,下标就有2个层级了。

示例:
# 通过下标索引取出对应位置的数据
my_list = ["Tom", "Lily", "Rose"]
# 列表[下标索引],从前向后从0开始,每次+1,从后向前从-1开始,每次-1
print(my_list[0])
print(my_list[1])
print(my_list[2])
# 错误示范:通过下标索引数据,一定不要超出范围
# print(my_list[3])# 通过下标索引取出数据(倒序输出)
print(my_list[-1])
print(my_list[-2])
print(my_list[-3])# 取出嵌套列表的元素
my_list = [[1, 2, 3], [4, 5, 6]]
print(my_list[1][1])
tips:要注意下标索引的取值范围,超出范围无法取出元素,并且会报错
52、列表的常用操作方法
1、列表的查询功能
查找某元素的下标:
功能:查找指定元素在列表的下标,如果找不到,报错ValueError
语法:列表.index(元素)
index就是列表对象(变量)内置的方法(函数)
mylist = ["itcast", "itheima", "python"]# 1.1 查找某元素在列表内的下标索引
index = mylist.index("itheima")
print(f"itheima 在列表中的下标索引值是:{index}")# # 1.2 如果被查找的元素不存在,会报错
# index = my_list.index("hello")
# print(f"hello 在列表中的下标索引值是:{index}")
2、列表的修改功能(方法)
1、修改特定位置(索引)的元素值:
语法:列表[下标] = 值
可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)
# 2. 修改特定位置(索引)的元素值
mylist[0] = "传智教育"
print(f"列表被修改元素之后,结果是:{mylist}")
2、插入元素
语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素
# 3. 在指定下标位置插入新元素
mylist.insert(1, "best")
print(f"列表插入元素后,结果是:{mylist}")
3、追加元素
append
语法:列表.append(元素),将指定元素,追加到列表的尾部
# 4. 在列表尾部追加单个新元素
mylist.append("黑马程序员")
print(f"列表在追加了元素后,结果是:{mylist}")
extend
语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部
# 5. 在列表尾部追加 一批 新元素
mylist2 = [1, 2, 3]
mylist.extend(mylist2)
print(f"列表在追加了一个新的列表后,结果是:{mylist}")
4、删除元素
del
语法: del 列表[下标]
# 6. 删除指定下标索引的元素(2种方式)
mylist = ["itcast", "itheima", "python"]# 6.1 方式1:del 列表[下标]
del mylist[2]
print(f"列表删除元素后,结果是:{mylist}")
pop
语法:列表.pop(下标)
# 6.2 方式2:列表.pop(下标),可以得到被删除元素的值
mylist = ["itcast", "itheima", "python"]
element = mylist.pop(2)
print(f"通过pop方法取出元素后,列表内容:{mylist},取出的元素是:{element}")
remove
语法:删除某元素在列表中的第一个匹配项
# 7. 删除某元素在列表中的第一个匹配项
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
mylist.remove("itheima")
print(f"通过remove方法移除元素后,列表内容:{mylist}")
clear
清空列表内容,语法:列表.clear()
# 8. 清空列表
mylist.clear()
print(f"列表被清空了,结果是:{mylist}")
count
统计某元素在列表内的数量,语法:列表.count(元素)
# 9. 统计列表内某元素的数量
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
count = mylist.count("itheima")
print(f"列表中 itheima 的数量是: {count}")
3、列表的查询功能
统计列表内,有多少元素
语法:len(列表)
可以得到一个int数字,表示列表内的元素数量
# 10. 统计列表中全部的元素数量
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
count = len(mylist)
print(f"列表的元素数量总共有: {count} 个")
方法总览
| 编号 | 使用方式 | 作用 |
|---|---|---|
| 1 | 列表.append(元素) | 向列表中追加一个元素 |
| 2 | 列表.extend(容器) | 将数据容器的内容依次取出,追加到列表尾部 |
| 3 | 列表.insert(下标, 元素) | 在指定下标处,插入指定的元素 |
| 4 | del 列表[下标] | 删除列表指定下标元素 |
| 5 | 列表.pop(下标) | 删除列表指定下标元素 |
| 6 | 列表.remove(元素) | 从前向后,删除此元素第一个匹配项 |
| 7 | 列表.clear() | 清空列表 |
| 8 | 列表.count(元素) | 统计此元素在列表中出现的次数 |
| 9 | 列表.index(元素) | 查找指定元素在列表的下标,找不到报错ValueError |
| 10 | len(列表) | 统计容器内有多少元素 |
示例:
"""
演示数据容器之:list列表的常用操作
"""
mylist = ["itcast", "itheima", "python"]# 1.1 查找某元素在列表内的下标索引
index = mylist.index("itheima")
print(f"itheima 在列表中的下标索引值是:{index}")# # 1.2 如果被查找的元素不存在,会报错
# index = my_list.index("hello")
# print(f"hello 在列表中的下标索引值是:{index}")# 2. 修改特定位置(索引)的元素值
mylist[0] = "传智教育"
print(f"列表被修改元素之后,结果是:{mylist}")# 3. 在指定下标位置插入新元素
mylist.insert(1, "best")
print(f"列表插入元素后,结果是:{mylist}")# 4. 在列表尾部追加单个新元素
mylist.append("黑马程序员")
print(f"列表在追加了元素后,结果是:{mylist}")# 5. 在列表尾部追加 一批 新元素
mylist2 = [1, 2, 3]
mylist.extend(mylist2)
print(f"列表在追加了一个新的列表后,结果是:{mylist}")# 6. 删除指定下标索引的元素(2种方式)
mylist = ["itcast", "itheima", "python"]# 6.1 方式1:del 列表[下标]
del mylist[2]
print(f"列表删除元素后,结果是:{mylist}")# 6.2 方式2:列表.pop(下标),可以得到被删除元素的值
mylist = ["itcast", "itheima", "python"]
element = mylist.pop(2)
print(f"通过pop方法取出元素后,列表内容:{mylist},取出的元素是:{element}")# 7. 删除某元素在列表中的第一个匹配项
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
mylist.remove("itheima")
print(f"通过remove方法移除元素后,列表内容:{mylist}")# 8. 清空列表
mylist.clear()
print(f"列表被清空了,结果是:{mylist}")# 9. 统计列表内某元素的数量
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
count = mylist.count("itheima")
print(f"列表中 itheima 的数量是: {count}")# 10. 统计列表中全部的元素数量
mylist = ["itcast", "itheima", "itcast", "itheima", "python"]
count = len(mylist)
print(f"列表的元素数量总共有: {count} 个")
相关文章:
Python学习打卡:day06
day6 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day648、函数综合案例49、数据容器入门50、列表的定义语法51、列表的下标索引1、列表的下标(索引)2、列表的下标(…...
支付宝 沙盒demo使用
简介:支付宝沙箱环境是一个为开发者提供的模拟测试环境,用于在应用上线前进行接口功能开发和联调。在这个环境中,开发者可以模拟开放接口,进行开发调试工作,以确保应用上线后能顺利运行。 1. 配置沙盒 1. 1 沙箱控制…...
ConcurrentHashMap如何保证线程安全?
ConcurrentHashMap 是 HashMap 的多线程版本,HashMap 在并发操作时会有各种问题,比如死循环问题、数据覆盖等问题。而这些问题,只要使用 ConcurrentHashMap 就可以完美解决了,那问题来了,ConcurrentHashMap 是如何保证…...
spring属性注入的不细心错误
属性注入问题 个人博客:www.zgtsky.top 同个的对象,在一个类中注入成功,在另一个类中注入为null 问题:在检测各个需要的类上已经打上注解后,出现了在一个类A1中注入B属性成功了,但在另一个类A2中注入B属性却失败了。…...
JVM 根可达算法
Java中的垃圾 Java中"垃圾"通常指的是不再被程序使用和引用的对象,具体表现在没有被栈、JNI指针和永久代对象所引用的对象。Java作为一种面向对象的编程语言,它使用自动内存管理机制,其中垃圾收集器负责检测和回收不再被程序引用的…...
Kafka基础架构与核心概念?有哪些应用场景?
Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。架构特点是分区、多副本、多生产者、多订阅者,性能特点主要是高吞吐,低时延。 Kafka主要设计…...
内网不能访问网站怎么办?
内网不能访问网站是在网络使用过程中常见的问题之一。当我们使用局域网连接时,有时候会遇到无法访问特定网站的情况。这可能是因为网络环境复杂,或者受到了某些限制。本篇文章将介绍一种解决内网不能访问网站问题的产品——天联组网。 天联组网是一款由…...
python-求f(x,n)
[题目描述] 输入: 输入 𝑥和 𝑛。输出: 函数值,保留两位小数。样例输入1 4.2 10 样例输出1 3.68 来源/分类(难度系数:一星) 完整代码如下: x,nmap(eval,input().split(…...
java值jsp语法笔记
1 JSP注释 1.1 显示注释 显示注释会出现在生成的HTML文档中,对用户可见。 <!-- 这是一个HTML显示注释 --> 1.2 隐式注释 隐式注释不会出现在生成的HTML文档中,对用户不可见。 <%-- 这是一个JSP隐式注释 --%> 2 JSP脚本元素 2.1 局部…...
057、PyCharm 运行代码报错:Error Please select a valid Python interpreter
当我们在PyCharm运行代码时,提示如下图错误: 那么问题通常是由于PyCharm未正确配置Python解释器引起的。 我们只需按以下步骤重新配置Python解释器即可: 打开PyCharm设置: 在菜单栏中的点击 “File” -> “Settings”…...
Java实现图书管理系统
一、引言 本篇介绍了一个简易的图书管理系统,面向管理员和普通用户分别给出了不同的菜单,实现了一些基本的图书操作功能,包括图书的增删查改、借阅、归还等 二、图书管理系统框架 图书管理系统,顾名思义,管理的是图…...
使用静态方法接受对象参数
我们先来看一个例子 public class MyInteger { private int value; // 构造函数 public MyInteger(int value) { this.value value; } // 实例方法 public boolean isEven() { return value % 2 0; } // 静态方法接受int参数 public static boolean isEvenStatic…...
cocos creator如何使用cryptojs加解密(及引入方法)
cocos creator如何使用cryptojs加解密(及引入方法) 如果想转请评论留个言并注明原博 Sclifftop 13805064305 阿浚 cocos creator如何使用cryptojs加解密(及引入方法) 步骤 获取库 1. npm install crypto-js -g,加不加…...
安装台式电脑网卡驱动
安装电脑网卡驱动 1. 概述2. 具体方法2.1 先确定主板型号2.2 详细操作步骤如下2.2.1 方法一2.2.2 方法二2.2 主流主板官网地址 结束语 1. 概述 遇到重装系统后、或者遇到网卡驱动出现问题没有网络时,当不知道怎么办时,以下的方法,可以作为一…...
JavaEE-多线程(1)
这篇文章,我们将介绍进程、线程的相关概念以及进程和线程的区别,下篇文章我们将使用Java来编写多线程的代码 进程: 进程(Process)是操作系统中资源分配的基本单位,它是一个正在运行的程序的实例。进程包括…...
【计算机视觉】人脸算法之图像处理基础知识(五)
图像的几何变换 3.图像的旋转 图像的旋转就是让图像按照某一点旋转到指定的角度。需要确定3个参数:图像的旋转中心、旋转角度和缩放因子。在openv中通过getRotationMatrix2D()函数来实现图像的旋转。 import cv2 import numpy as npimgpath "images/img1.j…...
工业 web4.0 的 UI 风格,独树一帜
工业 web4.0 的 UI 风格,独树一帜...
BSP驱动教程-CAN/CANFD/CANopen知识点总结分享
学习知识点整理: CAN 总线的前世今生: https://www.armbbs.cn/forum.php?modviewthread&tid104480 wikibai百科CAN总线: https://en.wikipedia.org/wiki/CAN_bus 瑞萨CAN入门教程: https://www.armbbs.cn/forum.php?m…...
微服务之远程调用
常见的远程调用方式 RPC:Remote Produce Call远程过程调用,类似的还有 。自定义数据格式,基于原生TCP通信,速度快,效率高。早期的webservice,现在热门的dubbo (12不再维护、17年维护权交给apac…...
Opencv数一数有多少个水晶贴纸?
1.目标-数出有多少个贴纸 好久没更新博客了,最近家里小朋友在一张A3纸上贴了很多水晶贴纸,要让我帮他数有多少个,看上去有点多,贴的也比较随意,于是想着使用Opencv来识别一下有多少个。 原图如下: 代码…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
