Python——2

news2024/11/24 14:58:10

一、循环

1.range() 函数

        用于生成一个整数序列,返回的是一个迭代对象,可用 in / not in查看。

(1)range(stop)

        创建一个 [0,stop) 的整数序列,步长为1。

(2)range(start, stop)

        创建一个 [start, stop) 的整数序列,步长为1。

(3)range(start, stop, step)

        创建一个 [start, stop) 的整数序列,步长为step。

a = range(10)
print(a)        #range(0, 10)
print(list(a))  #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

b = range(1,10)
print(b)        #range(1, 10)
print(list(b))  #[1, 2, 3, 4, 5, 6, 7, 8, 9]

c = range(1,10,2)
print(c)        #range(1, 10, 2)
print(list(c))  #[1, 3, 5, 7, 9]

2.循环结构

        反复做同一件是的情况。选择结构中的 if 与循环结构的 while 区别:if 是判断一次,条件为 True 执行一行;while 是判断 N+1 次,条件为 True 执行 N 次。

(1)while 循环

        四步循环法:初始化变量 -> 条件判断 -> 条件执行体 -> 改变变量

# 初始化变量
a = 1
# 条件判断
while a<3:
    # 条件执行体
    print("Hello World")
    # 改变变量
    a += 1
'''
Hello World
Hello World
'''

(2)for-in 循环体(for循环)

        in 表达从(字符串、序列)中依次取值,又称为遍历。for-in 的循环对象必须是可迭代对象。语法结构:

for 自定义变量 in 可迭代对象:

        循环体

若循环体中不需要访问自定义变量,可将自定义变量替代为下划线。

for i in range(5):
    print(i)
'''
0
1
2
3
4
'''
for _ in range(3):
    print("Hello World")
'''
Hello World
Hello World
Hello World
'''

3.break 语句

        用于结构循环结构,通常与分支结构 if 一起使用。

for i in range(3):
    pwd = input("请输入密码:")
    if pwd == '666':
        print("密码正确!")
        break;
    else:
        print("密码错误")

# while循环四部循环法
i = 1
while i<4:
    pwd = input("请输入密码:")
    if pwd == '666':
        print("密码正确!")
        break;
        print("密码错误")
    i += 1

4.continue 语句

        用于结束当前循环结构,进入下一次循环,通常与分支结构 if 一起使用。

# 输入 1-50 之间 5 的倍数
for i in range(1,51):
    if i % 5 == 0:
        print(i)
# 使用 continue 后
for i in range(1,51):
    if i % 5 != 0:
        continue
    print(i)

5.else 语句

        一般搭配以下三种情况:

6.嵌套循环

        循环结构体中又 嵌套另外的完整的循环结构,其中内层循环作为外层的循环体执行。其中,二重及多重循环中的 break 和 continue 用于控制本层循环。

二、列表

        变量可以存储一个元素,而列表是一个“大容器”,可存储多个变量,相对于数组。

 1.列表的创建

        (1)语法格式:列表对象名 = [..., ..., ..., .....] (使用英文中括号)

        (2)语法格式:列表对象名 = list( [..., ..., ..., .....] )(使用 list() 函数 )

2.列表的特点

        (1)列表对象按顺序有序排列;

        (2)索引映射唯一数据;

        (3)列表可以存储重复数据;

        (4)任何数据类型混存;

        (5)需动态分配和回收内存。

# 列表的创建及特点
lst1 = ['姓名','年龄',18]
lst2 = list(['班级','学号',101,101])
print(lst1[0])          # 姓名
print(lst2)             # ['班级', '学号', 101, 101]
print(lst2[2],lst2[3])  # 101 101

3.列表的常规操作

        (1)查询操作

        a.获取列表中指定元素的索引(即给元素值求索引值)

                index() :①若被查列表中存在 N 个相同元素。则返回该元素的第一个索引值;②若查询的元素不存在,则抛出 ValueError 异常;③可以在指定的 start 和 stop 之间查找。

        b.获取列表中的单个元素(即给索引值获取元素值)

                ①正向索引:从 0 到 N-1;②逆向索引:从 -N 到 -1;③若指定索引不存在时,则抛出 IndexError 异常。

        c.获取列表中的多个元素

        语法格式:列表名 [ start: stop: step ]

        切片操作:

                ①切片结果:原列表片段的拷贝;②切片范围:[ start: stop );③step 默认为1,可以简写为:列表名 [ start: stop ];④step 为正数时,⑤⑥⑦⑧⑨

        d.判断指定元素在列表中是否存在

        语法格式:元素 in 列表名 / 元素 not in 列表名

        e.列表元素遍历

        语法格式:for 可迭代变量 in 列表名:        操作

# 列表的查询操作1 —— 获取列表中指定元素的索引
lst3 = ['Hello',985,211,'Hello']
print(lst3.index(985))      # 1
print(lst3.index('Hello'))  # 0
# print(lst3.index('985'))  # ValueError: '985' is not in list
print(lst3.index('Hello',1,4)) # 3

# 列表的查询操作2 —— 获取列表中的单个元素
lst4 = [985,'World',211,'World',123]
print(lst4[0])  # 985
print(lst4[-5]) # 985
# print(lst4[10]) # IndexError: list index out of range

# 列表的查询操作3 —— 获取列表中的多个元素
lst5 = [10,20,30,40,50,60,70,80]
lst6 = lst5[1:6:1]
print(lst5,id(lst5)) # [10, 20, 30, 40, 50, 60, 70, 80] 2120896680192
print(lst6,id(lst6)) # [20, 30, 40, 50, 60] 2120896681408
print(lst5[1:6])    # [20, 30, 40, 50, 60]
print(lst5[1:6:])   # [20, 30, 40, 50, 60]

# 列表的查询操作4 —— 判断指定元素在列表中是否存在
print('p' in 'python')      # True
print('p' not in 'python')  # False
lst7 = ['P',123,456,'Python']
print('P' in lst7)          # True
print('789' not in lst7)    # False

# 列表的查询操作5 —— 列表元素遍历
for i in lst7:
    print(i)
'''
P
123
456
Python
'''

        (2)添加操作

        a.append() 函数:在列表末尾添加一个元素;

        b.extend() 函数:在列表末尾至少添加一个元素;

        c.insert() 函数:在列表任意位置添加一个元素;

        d.切片:在列表任意位置至少添加一个元素。

# 列表的添加操作1 —— append() 函数
lst8 = [10,20,30,40,'python','Hello World']
lst9 = ['Just Do Yourself!']
lst8.append(10)
print(lst8) # [10, 20, 30, 40, 'python', 'Hello World', 10]
lst8.append(lst9)
print(lst8) # [10, 20, 30, 40, 'python', 'Hello World', 10, ['Just Do Yourself!']]

# 列表的添加操作2 —— extend() 函数
lst8.extend(lst9)
print(lst8) #[10, 20, 30, 40, 'python', 'Hello World', 10, ['Just Do Yourself!'], 'Just Do Yourself!']

# 列表的添加操作3 —— insert() 函数
lst8.insert(1,'99')
print(lst8)
[10, '99', 20, 30, 40, 'python', 'Hello World', 10, ['Just Do Yourself!'], 'Just Do Yourself!']

# 列表的添加操作4 —— 切片
lst10 = [10,20,30,40,'python','Hello World']
print(id(lst10))    # 2257809121152
lst11 = [1,2,'3']
lst10[1:] = lst11
print(lst10)    # [10, 1, 2, '3']
print(id(lst10))    # 2257809121152

        (3)删除操作

        a.remove() 函数

                一次删除一个元素;重复元素只删除第一个;元素不存在,则抛出 ValueError 异常。

        b.pop() 函数

                删除一个指定索引位置上的元素;指定索引不存在,则抛出 IndexError 异常;不指定索引,则删除最后一个元素。

        c.切片

                一次至少删除一个元素。

        d.clear() 函数

                清空列表。

        e.del

                删除列表。

# 列表的删除操作1 —— remove() 函数
lst1 = ['123',123,'456',456,'456']
lst1.remove('456')
print(lst1) # ['123', 123, 456, '456']
# lst1.remove(1234) # ValueError: list.remove(x): x not in list
print(lst1)

# 列表的删除操作2 —— pop() 函数
lst2 = ['123',123,'456',456,'456']
# lst2.pop(10) # IndexError: pop index out of range
lst2.pop(0)
print(lst2) # [123, '456', 456, '456']
lst2.pop()
print(lst2) # [123, '456', 456]

# 列表的删除操作3 —— 切片
lst3 = [10,20,30,40,50]
new_list = lst3[1:3]
print('原列表:',lst3,id(lst3)) # 原列表: [10, 20, 30, 40, 50] 2443498232512
print('切片后的列表:',new_list,id(new_list)) # 切片后的列表: [20, 30] 2443498361408

# 列表的删除操作4 —— clear() 函数
lst4 = [10,20,30,40,50]
lst4.clear()
print(lst4) # []

# 列表的删除操作5 —— del
lst5 = [10,20,30,40,50]
del lst5
# print(lst5) # ameError: name 'lst5' is not defined

        (4)修改操作

        a.为指定索引的元素赋予一个新值;

        b.为指定切片赋予一个新值。

# 列表的修改操作1 —— 为指定索引的元素赋予一个新值
lst1 = [10,20,30,40]
lst1[2] = 20
print(lst1) # [10, 20, 20, 40]

# 列表的修改操作2 —— 为指定切片赋予一个新值
lst2 = [10,20,30,40]
lst2[1:3] = [1,2]
print(lst2) # [10, 1, 2, 40]

        (5)排序操作

        a.sort() 函数

                默认按从小到大的序列排序;可指定 reverse = True,即进行降序排序。原列表发生改变。

        b.sorted() 函数

                默认按从小到大的序列排序;可指定 reverse = True,即进行降序排序。原列表不发生改变。即产生一个新的列表对象。

# 列表的排序操作1 —— sort() 函数
lst1 = [8,9,795,29418,7263,336,456,985]
print('排序前的列表',lst1,id(lst1)) # 排序前的列表 [8, 9, 795, 29418, 7263, 336, 456, 985] 1330168607744
lst1.sort()
print('排序后的列表',lst1,id(lst1)) # 排序后的列表 [8, 9, 336, 456, 795, 985, 7263, 29418] 1330168607744
lst1.sort(reverse=True)
print(lst1) # [29418, 7263, 985, 795, 456, 336, 9, 8]

# 列表的排序操作2 —— sorted() 函数
lst2 = [8,9,795,29418,7263,336,456,985]
new_list1 = sorted(lst2)
new_list2 = sorted(lst2,reverse=True)
print('排序前的列表',lst2,id(lst2)) # 排序前的列表 [8, 9, 795, 29418, 7263, 336, 456, 985] 2882593888832
print('排序后的列表',new_list1,id(new_list1)) # 排序后的列表 [8, 9, 336, 456, 795, 985, 7263, 29418] 2882593888768
print(new_list2,id(new_list2)) # [29418, 7263, 985, 795, 456, 336, 9, 8] 2882594005888

4.列表生成式

        简称 “生成列表的公式”,语法格式:[ 表示列表元素的表达式 for 自定义变量 in 可迭代对象 ]。注意:“表示列表元素的表达式” 中通常包含自定义变量。

lst1 = [i*i for i in range(1,10)]
print(lst1) # [1, 4, 9, 16, 25, 36, 49, 64, 81]

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

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

相关文章

面试谎报了职级,本来是6,谎报成7,已经到HR这一步了,怎么了?

面试时谎报职级&#xff0c;公司能查出来吗&#xff1f; 一位网友说&#xff0c;自己在业务面时谎报了职级&#xff0c;把6报成7&#xff0c;现在已经到hr这一步了&#xff0c;该怎么办&#xff1f;是继续编吗&#xff1f; 有人不明白&#xff0c;为什么要谎报职级&#xff1f;…

Pycharm 安装教程,及常用快捷键,附教程

简介 PyCharm是一款Python IDE&#xff0c;其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#xff0c;比如&#xff0c; 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。此外&#xff0c;该IDE提供了一些高级功能&a…

有史以来最强的5G入门科普!

一个简单且神奇的公式 今天的故事&#xff0c;从一个公式开始讲起。 这是一个既简单又神奇的公式。说它简单&#xff0c;是因为它一共只有3个字母。而说它神奇&#xff0c;是因为这个公式蕴含了博大精深的通信技术奥秘&#xff0c;这个星球上有无数的人都在为之魂牵梦绕。…

CloudCompare二次开发之如何配置PCL点云库?

文章目录 0.引言1.修改两个CMakeLists.txt文件2.源码编译3.测试PCL 0.引言 因笔者课题涉及点云处理&#xff0c;需要通过PCL进行点云数据分析处理&#xff0c;查阅现有网络资料&#xff0c;实现了VisualStudio2015(x86)配置PCL1.8.1点云库&#xff08;见&#xff1a;VisualStud…

基于卷积的图像分类识别(七):SENet

系列文章目录 本专栏介绍基于深度学习进行图像识别的经典和前沿模型&#xff0c;将持续更新&#xff0c;包括不仅限于&#xff1a;AlexNet&#xff0c; ZFNet&#xff0c;VGG&#xff0c;GoogLeNet&#xff0c;ResNet&#xff0c;DenseNet&#xff0c;SENet&#xff0c;MobileN…

网络编程 lesson3 UDP基础编程

目录 UDP介绍 UDP编程 函数接口 recvfrom sendto 小练习&#xff1a;实现服务器和客户端相连&#xff08;使用UDP实现&#xff09; client server UDP介绍 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是一种在计算机网络中常用的传输…

C++常量成员函数(类成员函数后加const、类成员函数参数列表后加const)常量对象(类名前加const)和非常量对象

文章目录 常量对象和非常量对象&#xff08;常量对象不能调用非常量成员函数&#xff09;常量成员函数&#xff08;常量成员函数不能修改类的数据成员&#xff1b;常量成员函数只能调用常量成员函数&#xff0c;不能调用非常量成员函数&#xff09; 常量对象和非常量对象&#…

网络编程 lesson1 网络概念

目录 网络发展史&#xff08;了解&#xff09; 局域网和广域网 局域网 广域网 IP地址 IP地址划分&#xff08;IPV4&#xff09; IP地址取址范围&#xff1a; 特殊地址 子网掩码 子网号&#xff08;注意和前面进行区分&#xff09; 练习 练习1&#xff1a; 练习2&…

MySQL 数据库之 MMM 高可用架构构建

一、MMM 概述 1. 什么是 MMM   MMM&#xff08;Master-Master replication manager for MySQL&#xff0c;MySQL 主主复制管理器&#xff09;是一套支持双主故障切换和双主日常管理的脚本程序。MMM 使用 Perl 语言开发&#xff0c;主要从来监控和管理 MySQL Master-Master&a…

工厂模式中简单工厂模式、工厂方法模式、抽象工厂模式的分析与总结

工厂模式 工厂模式有许多变体,其中最常见的有三种 简单工厂模式工厂方法模式抽象工厂模式 简单工厂代码分析 UML图中我们可以清晰的看到代码结构 ,首先我们创建一个Car的汽车接口,定制汽车的基本规范,汽车可以的方法是可以跑,所以我们定义了一个抽象的run方法. 定义汽车接口…

【sed编辑器】

目录 一、sed编辑器二、sed的命令格式操作命令1.1、命令演示 二、替换三、插入 一、sed编辑器 1、sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 2、sed编辑器可以根据命令来处理数据流中的数据&#xff0c;这些命令要么…

OSC Liblo Window10配置

OpenSoundControl一种网络通讯协议&#xff0c;想了解详情的自行打开网站。 liblo 是最知名的OSC库&#xff0c; 功能完整&#xff0c;用 C 和 LGPL 许可编写。 下载请前往GitHub库。 解压后安装过程如下&#xff0c;需要用到CMake&#xff1a; 1.选择源代码文件和构建工程的文…

一文读懂“生成式 AI”

一、前言 本文基于谷歌的&#xff1a;《Introduction to Generative AI》 并且借助 ChatGPT 整理而成&#xff0c;帮助大家理解生成式 AI 这个概念。 主要包括 4 个部分&#xff1a; 生成式 AI 的定义生成式 AI 的工作原理生成式 AI 模型的分类生成式 AI 的应用 二、生成式…

【数据结构】双向带头循环链表的实现

目录 全部代码 图例&#xff08;双向带头循环链表&#xff09; 各个功能的实现 创建该链表的节点 创建初始链表 链表的头插 链表的尾插 链表的随机插入 链表的头删 链表的尾删 链表的随机删除 链表的销毁 链表是否为空的判断 链表节点的创建 总结 全部代码 typ…

命令行更新Windows

命令行更新Windows powershell命令行更新安装 Windows Update module for Windows Powershell连接到 Windows Update 服务器并下载更新安装下载好的 Windows Update 更新 cmd执行Windows update更新检查更新下载 Windows Update 更新安装更新安装更新后重新启动设备 win10以下版…

Python中Pandas库的相关操作

目录 Pandas库 常用操作 创建DataFrame 查看数据 数据选择和过滤 数据排序和排名 缺失数据处理 数据聚合和分组 数据的合并和连接 Pandas库 Pandas是Python中常用的数据处理和分析库&#xff0c;它提供了高效、灵活且易于使用的数据结构和数据分析工具。 1.Series&a…

实例35---字符串反转,如将字符串 “www.runoob.com“ 反转为 “moc.boonur.www“。

文章目录 前言一、题目描述 二、题目分析 三、解题 1.解题方法一--- for循环来将字符的下标数值进行对每一个字符进行交换 ---程序运行代码 2.解题方法二------ 指针 ------ 程序运行代码(1)程序运行代码优化 总结 前言 本系列为C语言菜鸟100道基础经典例题详解刷题系列。点滴…

微服务:服务发现

1. 服务发现 eureka、nacos、Consul、etcd 和 zk 都是主流的服务发现工具&#xff0c;而 Dubbo 和 Polaris Mesh 则是基于服务发现的 RPC 框架。 它们的主要区别在于&#xff1a; eureka 是 Netflix 开源的一个服务发现组件&#xff0c;支持高可用和数据同步&#xff0c;具有…

如何使用Linkage Mapper揭示栖息地变化的故事

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 文章目录 引言1.1 定义和作用1.2 Linkage Mapper的历史和发展2.1 揭示栖息地变化的重要性2.2 Linkage Mapper的优势和不足

Windows下载安装RocketMq

Windows下载安装RocketMq 下载安装包启动NAMESERVER 和 BROKER启动NAMESERVER启动BROKER 安装可视化插件 下载安装包 RockitMQ官网下载地址&#xff1a;https://rocketmq.apache.org/release-notes/ 解压到指定的文件夹下 先配置JAVA_HOME 配置ROCKETMQ_HOME环境变量 …