python基础知识四(列表、元组、函数)

目录

list 列表:

1. 列表的概念

2. 列表的特点

3. 列表的创建

4. 列表的索引

5. 列表的切片

6. 列表的遍历

7. 列表的常用方法

tuple 元组:

1. 什么是元组?

2. 元组的定义

3. 元组的特点和作用

函数:

1. 函数的概念

2. 函数的定义

3. 函数的调用

4. 函数的返回值

5. 函数的参数

6. 函数的作用域

7. 函数的嵌套调用

8. 函数的递归调用


list 列表:

1. 列表的概念

1. 列表是一种有序的集合,可以随时添加和删除元素。
2. 列表是一种可变数据类型。

2. 列表的特点

- 可以存储多个数据。
- 可以随机访问存储的数据。
- 可以存储相同数据类型的数据。
- 可以存储不同数据类型的数据。

3. 列表的创建

- 使用列表字面量创建列表。
- 使用list()函数创建列表。
# 1. 列表的创建
# 列表用[]定义,元素之间用逗号,分隔
list1 = [1, 2, 3, 4, 5]  # 列表字面量
list2 = list()  # 空列表
list3 = list([1, 2, 3, 4, 5])  # 使用list()函数创建列表
print(list1)
print(list2)
print(list3)

4. 列表的索引

- 列表的索引从0开始。
- 列表的索引-1结束。
# 2. 列表的索引
list1 = [1, 2, 3, 4, 5]
print(list1[0])  # 列表中 0 索引的元素
print(list1[-1])  # 列表中 -1 索引的元素  负数是从右到左(倒着数)
print(list1[-3])  # 列表中 -3 索引的元素

5. 列表的切片

- 列表的切片是从左到右 从右到左。
list1 = [1, 2, 3, 4, 5]
print(list1[0:3])  # 列表中 0 到 3 的元素
print(list1[2:])  # 列表中 2 到 最后的元素
print(list1[:3])  # 列表中 0 到 3 的元素
print(list1[:])  # 列表中 0 到 最后的元素

6. 列表的遍历

- 使用for循环遍历列表。
- 使用while循环遍历列表。
list2 = [1, 2, 3, 4, 5]
# for循环
for i in list2:print(i)
# while循环
i = 0
while i < len(list2):  # 注意:len()函数获取列表的长度print(list2[i])i += 1

7. 列表的常用方法

- 列表的append()方法:在列表末尾添加新的对象。
- 列表的insert()方法:在给定位置插入新的对象。
- 列表的remove()方法:移除列表中某个值的第一个匹配项。
- 列表的pop()方法:移除列表中的一个元素,默认最后一个元素。
- 列表的index()方法:从列表中找到某个值,并返回第一个匹配项的索引。
- 列表的count()方法:计算某个值在列表中出现的次数。
- 列表的reverse()方法:将列表中元素的位置颠倒。
- 列表的sort()方法:对原列表进行排序。
- 列表的extend()方法:在列表末尾一次性追加另一个列表。
- 列表的copy()方法:创建一个列表的副本。
- 列表的clear()方法:清空列表。
- 列表的del()方法:删除列表的指定位置。
list2 = [4, 23, 3, 8, 5, 9, 18, 2]
# 列表的append()方法:在列表末尾添加新的对象
list2.append(7)  # 在列表末尾添加7
print(list2)# 列表的insert()方法:在给定位置插入新的对象
list2.insert(0, 0)  # 在0位置插入0
print(list2)# 列表的remove()方法:移除列表中某个值的第一个匹配项
list2.remove(0)  # 移除列表中的0
print(list2)# 列表的pop()方法:移除列表中的一个元素,默认最后一个元素
list2.pop()  # 移除列表中的最后一个元素
print(list2)# 列表的index()方法:从列表中找到某个值,并返回第一个匹配项的索引
print(list2.index(2))  # 返回2的索引# 列表的count()方法:计算某个值在列表中出现的次数
print(list2.count(2))  # 返回2出现的次数# 列表的reverse()方法:将列表中元素的位置颠倒
list2.reverse()  # 将列表中元素的位置颠倒
print(list2)# 列表的sort()方法:对原列表进行排序
list2.sort()  # 对原列表进行排序
print(list2)# 列表的extend()方法:在列表末尾一次性追加另一个列表
list2.extend([6, 7, 8])  # 在列表末尾一次性追加[6, 7, 8]
print(list2)# 列表的copy()方法:创建一个列表的副本
list3 = list2.copy()  # 创建一个列表的副本
print(list3)# 列表的del()方法:删除列表的指定位置
del list2[5]  # 删除列表的5位置
print(list2)# 列表的clear()方法:清空列表
list2.clear()  # 清空列表
print(list2)

tuple 元组:

1. 什么是元组?

  元组是一种数据类型,类似于列表,但是元组是不可变的,一旦创建就不能修改。

2. 元组的定义

  元组是用括号括起来的,元素之间用逗号隔开。
# 1. 元组的定义
t = (1, 2, 3)
print(t)

3. 元组的特点和作用

- 元组的特点:- 1. 元组是不可变的,一旦创建就不能修改。- 2. 元组可以包含任意类型的数据。- 3. 元组可以嵌套。- 4. 元组可以包含重复的数据。
- 元组的作用:- 1. 自动组包- 2. 自动解包- 3. 交换数据- 4. 让列表不可修改
# 2. 元组的特点和作用
# 2.1 元组的特点
# 2.1.1 元组是不可变的,一旦创建就不能修改。
# t[0] = 100
# print(t)# 2.1.2 元组可以包含任意类型的数据。
t = (1, 2, 3, 'a', 'b', 'c')
print(t)# 2.1.3 元组可以嵌套。
t = (1, 2, 3, (1, 2, 3), (1, 2, 3))
print(t)# 2.1.4 元组可以包含重复的数据。
t = (1, 2, 3, 1, 2, 3)
print(t)# 2.2 元组的作用
# 2.2.1 自动组包
t = '元组1', '元组2', '元组3'
print(t)
# 2.2.2 自动解包
t = ('元组1', '元组2', '元组3')
a, b, c = t
print(a, b, c)# 2.2.3 交换数据
a = 100
b = 200
a, b = b, a
print(a, b)
# 2.2.4 让列表不可修改
t = (1, 2, 3)
# t[0] = 100  # 报错
print(t)

函数:

1. 函数的概念

    函数是一段可以重复使用的代码,可以提高代码的可读性和可维护性。

2. 函数的定义

def 函数名(参数1, 参数2, ...):函数体return 返回值
# 1. 函数的定义
def add(a, b):return a + b

3. 函数的调用

print(函数名(参数1, 参数2, ...))
# 2. 函数的调用
print(add(1, 2))

4. 函数的返回值

return 返回值
# 3. 函数的返回值
def add1():return 1 + 2  # 返回值print(add1())

5. 函数的参数

1. 形参:函数定义时的参数
2. 实参:函数调用时的参数
3. 默认参数:函数定义时,指定参数的默认值
4. 可变参数:函数定义时,指定参数的个数可变
5. 关键字参数:函数调用时,指定参数的名称
# 4. 函数的参数
# 4.1 默认参数
def add2(a=1, b=2):return a + bprint(add2())  # 默认参数的调用
print(add2(1))  # 默认参数的调用 1是a的值
print(add2(1, 2))  # 默认参数的调用 1是a的值,2是b的值
print(add2(b=1, a=2))  # 默认参数的调用 2是a的值,1是b的值# 4.2 可变参数
def add3(*args):return sum(args)print(add3(1, 2, 3, 4, 5))  # 可变参数的调用 1,2,3,4,5是args的值# 4.3 关键字参数
def add4(**kwargs):return sum(kwargs.values())  # 返回kwargs的所有值的和print(add4(a=1, b=2, c=3, d=4, e=5))  # 关键字参数的调用 a=1,b=2,c=3,d=4,e=5是kwargs的值

6. 函数的作用域

1. 局部变量:在函数内部定义的变量
2. 全局变量:在函数外部定义的变量
3. 全局变量在函数内部可以直接使用
4. 局部变量不能在函数外部直接使用
# 5. 函数的作用域
# 5.1 局部变量
def add5():num_1 = 1num_2 = 2return num_1 + num_2print(add5())# 5.2 全局变量
a = 1
b = 2def add6():return a + bprint(add6())

7. 函数的嵌套调用

1. 函数内部可以调用其他函数
2. 函数内部调用函数时,必须使用全局变量
# 6. 函数的嵌套调用
def add7():return add5()print(add7())

8. 函数的递归调用

1. 函数内部可以调用自身
2. 函数内部调用自身时,必须使用全局变量
3. 函数的递归调用必须有退出条件
# 7. 函数的递归调用
def add8(n=1):if n == 1:return 1else:return n + add8(n - 1)print(add8(10))

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

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

相关文章

Llama网络结构介绍

LLaMA现在已经是开源社区里炙手可热的模型了&#xff0c;但是原文中仅仅介绍了其和标准Transformer的差别&#xff0c;并没有一个全局的模型介绍。因此打算写篇文章&#xff0c;争取让读者不参考任何其他资料把LLaMA的模型搞懂。 结构 如图所示为LLaMA的示意图&#xff0c;由…

域名被污染了只能换域名吗?

域名污染是指域名的解析结果受到恶意干扰或篡改&#xff0c;使得用户在访问相关网站时出现异常。很多域名遭遇过污染的情况&#xff0c;但是并不知道是域名污染&#xff0c;具体来说&#xff0c;域名污染可能表现为以下情况&#xff1a;用户无法通过输入正确的域名访问到目标网…

24.4.20 蚂蚁笔试(开发)a1.09

只是个人记录&#xff0c;玻璃心请大佬轻喷&#xff0c;如果有幸能得到大佬的指教那就更好啦~ 若干单选和多选&#xff0c;感觉没有太难。下面是三个算法题&#xff08;记不住具体的题目了&#xff0c;&#xff09; 题目1 大致题意&#xff1a;数组a有n个元素&#xff0c;让…

Windos环境下配置免费SSL证书详细步骤

获取免费证书 配置本机模拟域名 打开如下目录&#xff0c;hosts文件 C:\Windows\System32\drivers\etc 添加如下配置并保存 127.0.0.1 im.test.com下载安装 OpenSSL 下载链接 进入bin目录&#xff0c; 打开cmd窗口 执行如下命令&#xff0c;生成RSA私钥 ## 使用des3…

大型集团企业 怎么实现多区域文件交换?

很多大型集团企业&#xff0c;都会在全国各地&#xff0c;甚至海外&#xff0c;都设立分支机构&#xff0c;还有银行、邮政这类机构&#xff0c;都会在全国各地设立多个支行和网点&#xff0c;所以在日常经营过程中&#xff0c;都会存在多区域文件交换的场景。 大型集团企业在进…

JVM垃圾收集器--分区收集器

G1收集器 G1&#xff08;Garbage-First Garbage Collector&#xff09;在 JDK 1.7 时引入&#xff0c;在 JDK 9 时取代 CMS 成为了默认的垃圾收集器。G1 有五个属性&#xff1a;分代、增量、并行、标记整理、STW。 分代 G1收集器 将内部分为多个大小相等的区域&#xff0c;另…

Unity Shader 图形学【笔记一】

游戏图形学 源自&#xff1a;计算机图形学 涵盖&#xff1a;图形、动画的创建渲染展示 目标&#xff1a;性能优化、提高视觉质量&#xff0c;增强用户体验 技术&#xff1a;三维模型、纹理、光照、阴影、特效、动画、物理模拟、碰撞检测等 Unity Shader 是&#xff1a;un…

基于Vue+ElementPlus自定义带历史记录的搜索框组件

前言 基于Vue2.5ElementPlus实现的一个自定义带历史记录的搜索框组件 效果如图&#xff1a; 基本样式&#xff1a; 获取焦点后&#xff1a; 这里的历史记录默认最大存储10条&#xff0c;同时右侧的清空按钮可以清空所有历史记录。 同时搜索记录也支持点击搜索&#xff0c;按…

c++ reinterpret_cast类型转换简单实验

1.概要 c提供如下几种转换&#xff0c;具体如下。 static_cast&#xff1a;用于非多态类型的转换。 dynamic_cast:用于多态类型的转换&#xff0c;主要用于向下类型转换&#xff08;从基类指向派生类的指针/引用&#xff09;&#xff0c;会检查转换的有效性&#xff0c;如果转…

371D - Vessels

思路&#xff1a;用并查集维护&#xff0c;如果当前容器没有满&#xff0c;就指向自己&#xff0c;否则指向下一个容器。 这样就可以快速 find 到下一个没有满的容器&#xff0c;从而模拟询问 1。 代码&#xff1a; void solve(){int n;cin >> n;vector<int>p(n …

leetcode:滑动窗口----3. 无重复字符的最长子串

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释: 因为…

算法竞赛相关问题总结记录

前言 日常在校生或者是工作之余的同学或多或少都会参加一些竞赛,参加竞赛一方面可以锻炼自己的理解与实践能力&#xff0c;也能够增加自己的生活费&#xff0c;竞赛中的一些方案也可以后续作为自己论文的base,甚至是横向课题的框架。在算法竞赛中算法的差别个人感觉差距都不大&…

CUDA流与异步

CUDA流与异步 基于流的异步的内核启动和数据传输支持以下类型的粗粒度并发&#xff1a; 1.重叠主机计算和设备计算&#xff1b; 2.重叠主机计算和主机与设备间的数据传输&#xff1b; 3.重叠主机与设备间的数据传输和设备计算&#xff1b; 4.并发设备计算。 理解一个CUDA程序&…

安卓手机APP开发__媒体开发部分__播放器的接口

安卓手机APP开发__媒体开发部分__播放器的接口 目录 概述 组件之间的共同的接口 媒体3的播放的架构 播放器的状态 对改变的监听 当前的播放 定制的播放器实现 概述 一个播放器是你的APP中完成媒体项的播放的组件. 媒体3的播放器接口提供了一个关于播放器处理的功能的总…

一招搞定“找不到xinput1_3.dll,无法继续执行代码”问题

在我们日常使用电脑进行各类工作的过程中&#xff0c;特别是在运行一些关键性软件以完成特定任务时&#xff0c;电脑屏幕上突然弹出一条醒目的错误提示信息&#xff1a;“由于找不到xinput1_3.dll,无法继续执行代码”。这个错误通常发生在使用DirectInput库时&#xff0c;而xin…

Java Spring框架的核心优势是什么?

Spring框架是Java企业应用开发中广泛使用的开源框架&#xff0c;它旨在简化企业级应用的开发。Spring框架的核心优势主要体现在以下几个方面&#xff1a; 轻量级和松耦合&#xff1a;Spring框架设计得非常轻量级&#xff0c;它的大小和复杂性都相对较低&#xff0c;这使得开发者…

BFS解决FloodFill算法:(Leetcode:733. 图像渲染)

题目链接&#xff1a;733. 图像渲染 - 力扣&#xff08;LeetCode&#xff09; 使用广度优先遍历算法解决该问题&#xff1a; 从初始位置开始搜索&#xff0c;初始位置符合条件就入栈&#xff0c;并修改初始位置值。初始位置出栈。 再从初始位置开始广度优先搜索&#xff08;…

代码随想录算法训练营第三十四天|1005.K次取反后最大化的数组和,134. 加油站,135. 分发糖果

目录 1005.K次取反后最大化的数组和思路代码 134. 加油站思路代码 135. 分发糖果思路代码 1005.K次取反后最大化的数组和 题目链接&#xff1a;1005.K次取反后最大化的数组和 文档讲解&#xff1a;代码随想录 视频讲解&#xff1a;贪心算法&#xff0c;这不就是常识&#xff1f…

阿赵UE学习笔记——30、HUD简单介绍

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎&#xff0c;这次来学习一下HUD的基础使用。 一、 什么是HUD HUD(Head-Up Display)&#xff0c;也就是俗称的抬头显示。很多其他领域里面有用到这个术语&#xff0c;比如开车的朋友可能会接触过&#xf…

【Camera Sensor Driver笔记】一、Sensor基本概念

时钟 sensor clock sensor的输入时钟 MCLK 输出时钟&#xff1a; 1. VTPixelClock&#xff1a;会影响sensor内部的帧率、曝光 VTPixelClock(vt_clk)Video Timing Clock, From sensor PLL VTPixelClock Framelengthlines x LinelengthPixelClock x FPS Framelengthlines L…