python02 循环与容器

一、if的条件判断

1-1 if elif else

  • 判断年龄属于哪个年龄段

# 判断学生
core = input('请输入成绩')
​
if int(core) >=90 :print('优秀')
elif int(core) >=70 and int(core) <90:print('中等')
elif int(core) >=60 and int(core) <70:print('及格')
else:print('不及格')​

时间段, 成绩的划分,星座判断

1-2 if 嵌套

if 判断条件1:if 判断条件2:if 判断条件3:else:第3个条件不成时执行else:第2个条件不成时执行
else:第1个条件不成时执行

可以控制判断的执行顺序,进行多次判断

# if嵌套使用
name = input('请输入用户名:')
password = input('请输入密码:')
# 先判断用户名是否正确
if name == '张三':# 在判断密码是否正确if password=='123456':print('登录成功')
​else:print('密码不正确')
else:print('用户名不正确')

二、While循环

保证Python程序根据要求能持续运行

可以使用循环语句的语法实现循环运行,可以执行循环条件,当不满足条件后退出循环

  • 语法格式

    • 循环的代码逻辑要在下一行开始,开头空四格

    • 条件成立,循环中代码逻辑会一直执行

while 数据判断条件:编写循环执行的业务逻辑修改退出条件数据
# while 一般用在需要程序持续运行时使用
a = 1
while a == 1:# 条件成立,会一直运行while内的代码逻辑name = input('请输入用户名:')password = input('请输入密码:')# 先判断用户名是否正确if name == '张三':# 在判断密码是否正确if password == '123456':print('登录成功')# 通过修改变量值,改变判断条件不成立,此时就可以退出循环a = 2else:print('密码不正确')else:print('用户名不正确')
​
  • 控制循环输入次数不能超过三次

a = 1
while a <= 3:# 条件成立,会一直运行while内的代码逻辑name = input('请输入用户名:')password = input('请输入密码:')# 先判断用户名是否正确if name == '张三':# 在判断密码是否正确if password == '123456':print('登录成功')# 通过修改变量值,改变判断条件不成立,此时就可以退出循环a = 6else:print('密码不正确')else:print('用户名不正确')

三、For循环

while 主要控制数据处理的次数

for 遍历获取数据(容器形式的数据)中每个元素数据,字符串,列表,字典,元祖,集合,range方法

for循环的次数是有容器内的元素个数决定

  • 语法格式

for i(临时变量,接收循环的元素数据) in 容器数据:对临时变量中的数据进行操作
  • range的使用,可以根据指定数值生成范围内的容器数据

    • range(10) 生成0-10范围内的数据 起始从0开始

    • range(2,10) 生成的范围是 2-10

    • 生成的范围数据是左闭右开 [0,10) 0可以取到值,10取不到值

# for循环  [0,5)
for i in range(5):print(i)
​
for i in range(2,5): # [2,5)print(i)

四、Break和Continue

break 跳出循环或结束循环

continue 跳过当前这一次循环,执行下次循环

可以对循环的数据进行判断,如果符合条件可以进行跳出循环或跳过循环

  • break退出for循环

for num in range(3): # [0,3)  0,1,2name = input('请输入用户名:')password = input('请输入密码:')# 先判断用户名是否正确if name == '张三':# 在判断密码是否正确if password == '123456':print('登录成功')# 使用break关键,会结束循环,不再进行取值breakelse:print('密码不正确')else:print('用户名不正确')

  • 遍历1-10数据,只对偶数数据输出

for data in range(1,11):# 对data数据进行奇数判断if data % 2 !=0:# 跳过continue# continue被执行,continue后面逻辑就不会被执行print(data)

五、容器类型介绍

容器就是存放数据的

python 中的容器数据有多种形式,每种形式有自己的存储格式, 数据存储特性不一样

字符串 str 就是容器 存放一个一个字母 格式 : 单引号 '数据' ,双引号 "数据" ,三个引号 """ 数据 """

列表 list 格式: [数据1,数据2,数据3.....]

元祖 tuple 格式: (数据1,数据2,数据3,)

集合 set 格式: {数据1,数据2,数据3,}

字典 dict 格式: {key1:value1,key2:value....}

数据存储的特性

  • 有序和无序

    • 有序: 字符串,列表,元祖,字典

    • 无序: 集合

  • 数据重复性

    • 允许数据重复 字符串,列表,元祖,字典的value部分可以重复

    • 不允许重复 集合,字典的key值

  • 数据是否允许修改

    • 允许修改 列表,字典value数据可以修改,

    • 不允许修改 字符串 ,元祖

常用的字符串,列表和字典

六、字符串

字符串就是有一个一个字母构成,使用引号包裹数据

data_str1 = '数据'
data_str2 = "数据"
data_str3 = '''数据'''

6-1 下标取值

在有序的容器中,会对数据的顺序进行编号,该编号就称为数据下标。可以通过下标取出对应位置中的数据

下标编号是从0开始

数据:i t c a s t

下标:0 1 2 3 4 5

  • 字符串的下标取值

    • 一次取出一个下标对应的数据

# 有序容器的下标取值
data_str = 'itcast'
​
# 下标取一个值
print(data_str[2])
  • 切片

    • 指定下标范围进行取值

    • [起始下标:结束下标] 下标的范围是左闭右开的,结束下标的值取不到

# 有序容器的下标取值
data_str = 'itcast'
​
# 下标取一个值
print(data_str[2])
​
# 下标取多个值 使用切片  [起始下标:结束下标]  取值范围也是左闭右开 结束下标的数据无法取到
print(data_str[1:4])
​
​
​
  • 间隔步长取值

# 有序容器的下标取值
data_str = 'itcast'
​
# 下标取一个值
print(data_str[2])
​
# 下标取多个值 使用切片  [起始下标:结束下标]  取值范围也是左闭右开 结束下标的数据无法取到
print(data_str[1:4])
​
# 间隔取多个值  使用切片  [起始下标:结束下标:步长]
print(data_str[1:6:2]) # 起始从1开始  下一个值是 1+2=3   1+2+2=5
  • 下标的其他操作

# 单个取值时超过下标值或报错
print(data_str[6])

# 切片进行多个数据取值超出下标,不会报错,将后面的数据全部取出
print(data_str[1:1000])
# 取值的下标可以是负数
print(data_str[-4:-2])

# 如果需要改变起始位置从右边开始,则需要将步长设置为-1
# 可以实现字符串的反转
print(data_str[-1:-7:-1])
# 需要获取所有的的字符可以省略起始和结束下标
print(data_str[::-1])

6-2 for循环取值

依次从字符串中取出每一个字母,该过程叫做数据遍历

# 遍历字符串数据
data = 'itcast'
for i in data:print(i)

6-3 函数方法

  • find 找字符在字符串中位置,返回对应的首字母的下标,数据不存在返回-1

# 字符串的函数操作方法
# 查找字符在字符串中的下标位置
data = 'itcast'
# num接收查找到的下标 如果存在返回对应位置下标,不存在返回-1
num = data.find('w')
print(num)
  • index 找字符在字符串中位置,返回对应的首字母的下标,数据不存在报错

num2 = data.index('w')
print(num2)
  • split 字符串的切割

    • 切割后的数据会放入列表中返回

data_str = 'python,hadoop,spark,flink'
# split的切割字符串
res =  data_str.split(',')
print(res)
  • replace 字符串的替换,替换字符串中的数据

    • 除了可以替换数据,还可以清洗数据

data_str2 = '2024-10-11'
# 字符串替换
res2 = data_str2.replace('-','/')
print(res2)
​
​
data_str3 = '机器哦@我觉得#千库网'
# 通过replace的替换去除特殊字符
res3 = data_str3.replace('@','').replace('#','')
print(res3)

七、列表

7-1 列表定义

语法格式

[数据1,数据2.....]

# 列表的定义及取值
# 在列表中可以定义指定多个数据内容,尽量保证数据类型一致
data_list = [1, 20, 33, 15, 18, 21]
data_list2 = ['spark', 'hadoop', 'flink', 'python']
data_list3 = [1, '张三', 20]

7-2 列表取值

可以通过下标和切片取值

for循环遍历取值

# 列表的定义及取值
# 在列表中可以定义指定多个数据内容,尽量保证数据类型一致
data_list = [1, 20, 33, 15, 18, 21]
data_list2 = ['spark', 'hadoop', 'flink', 'python']
data_list3 = [1, '张三', 20]
​
# 列表也是有序容器,所以支持下标取值
# 单个取值
print(data_list[1])
print(data_list2[2])
​
# 切片取多个值
print(data_list[1:5])
​
# 步长间隔取值
print(data_list[1:5:2])
​
# 循环遍历取值
for i in data_list3:print(i)
​
​
# 列表嵌套列表
data_list4 =[[1,2,3],['a','b','c']]
​
print(data_list4[1][0])

7-3 列表的增删改查方法

增加
  • append

    • 常用来增加一个元素数据

  • extend

    • 将另一个列表的数据合并当前列表

  • insert

    • 指定下标位置增加数据

# 添加列表数据
data_book = []  # 定义一个空列表
# append添加数据,将数据添加到列表末尾
data_book.append('昆仑')
data_book.append('沧海')
data_book.append('五大贼王')
# 查看原始数据
print(data_book)
# insert 可以指定下标位置添加
data_book.insert(1, '青盲')
# 查看数据
print(data_book)
​
# extend将一个列表数据合并另一个列表中
data_book_new = ['大魔术师', '冒死记录']
data_book.extend(data_book_new)
print(data_book)
​
# 使用运算符 + 将列表合并
data_book_new2 = ['死亡通知单', '暗黑者', '摄魂谷', '凶画']
res = data_book + data_book_new2
print(res)
​
删除
  • del 数据[下标] 删除指定下标的数据

  • remove 删除列中指定的数据

  • pop() 弹出列表中的数据,数据弹出后会从列表中删除

    • 默认从最后一个数据弹出

  • clear() 清除所有列表中的数据,变成空列表

# 删除列表中的数据
data_book = ['诛仙','斗破苍穹','盗墓笔记','年少荒唐','极品家丁','坏蛋是怎么练成的']
​
# 通过指定下标删除
del data_book[3]
print(data_book)
# 指定数据删除
data_book.remove('极品家丁')
print(data_book)
# 弹出数据删除  将末尾数据弹出 可以定义接收变量,接收弹出的数据
res = data_book.pop()
print(data_book)
# 清空列表数据
data_book.clear()
print(data_book)
修改
  • 指定下标对应的数据进行修改

    • 列表[下标] = 修改的值

  • 列表数据的反转 修改顺序

  • 排序

# 修改列表数据
data_book = ['紫川', '三重门', '从你的全世界路过', '梦里花落知多少']
​
# 通过下标修改数据
data_book[1] = '善恶的彼岸'
print(data_book)
​
# 列表反转
data_book.reverse()
print(data_book)
​
# 列表排序
data_list = [1,7,2,4,3]
data_list.sort(reverse=False)
print(data_list)
data_list.sort(reverse=True)
print(data_list)
查询
  • index 查询数据在列表中的下标位置

  • count 查询数据出现的次数

  • in 查找数据是否在列表中

    • not in 不在列表中

  • len 获取列表的元素个数

# 查询列表数据
data_book = ['道德的谱系','反基督','瞧,这个人','飞鸟集']
​
# index查询数据
num = data_book.index('反基督')
print(num)
# num = data_book.index('aa')
# print(num)
​
# count  统计数据出现次数
num2 = data_book.count('飞鸟集')
print(num2)
​
# 查询元素个数
num3 = len(data_book)
print(num3)
​
# 判断元素是否在列表中
if '道德的谱系' in data_book:print('数据在列表中')# not in 是判断不在列表中

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

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

相关文章

20240521在Ubuntu20.04下编译RK3588的IPC方案的编译环境问题makeinfo: not found

20240521在Ubuntu20.04下编译RK3588的IPC方案的编译环境问题makeinfo: not found 2024/5/21 20:52 viewproviewpro-ThinkBook-16-G5-IRH:~/RK3588_IPC_SDK$ sudo apt-get install texinfo viewproviewpro-ThinkBook-16-G5-IRH:~$ viewproviewpro-ThinkBook-16-G5-IRH:~$ md5su…

【Basic】Linux Labs

文章目录 前言一、Linux Labs二、知识点ssh介绍ssh的主要功能SSH的工作原理SSH的常见用法 解题感悟 前言 由于我参加了网络安全的比赛(被迫)… but我毛都不会&#xff0c;所以我只能临时抱佛脚… 顺便把学习的过程记录下来&#xff0c;欢迎收看小白0基础ctf踩坑分享 一、Linux…

【正点原子Linux连载】 第四十六章 M.2硬盘驱动实验摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南

1&#xff09;实验平台&#xff1a;正点原子ATK-DLRK3568开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id731866264428 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第四十…

【selenium】自动化测试chrome webdriver驱动下载网址,V123版本以上

Hi&#xff0c;大家好&#xff0c;今天和大家分享下最新的selenium自动化测试&#xff0c;chrome浏览器驱动下载的最新地址 chrome webdriver下载网址&#xff0c;适用于浏览器版本V123以上

结构型模式 (Python版)

代理模式 from abc import ABC, abstractmethod# 买的行为&#xff08;抽象类&#xff09; class Buy(ABC):abstractmethoddef buy_ticket(self):pass# 男人&#xff08;具体类&#xff09; class Man(Buy):# 男人买票def buy_ticket(self):print("Man 买票成功&#xff…

【输入示例100,999 输出示例4】水仙花数

// “水仙花数”是指一个三位正整数&#xff0c;其各位上的数字的立方和等于该数本身。如:1^35^33^3153&#xff0c;因此153是一个水仙花数。输入两个三位正整数a和b(其中a<b)&#xff0c;求[a,b]范围内水仙花数的个数。 //输入示例100,999 //输出示例4 #include <stdio.…

AI爆文写作:如果你有一篇文章爆了,正确的做法是:自己抄袭自己,重复发,还可以继续爆!

爆款总是相似的&#xff0c;如果你有一篇文章爆了&#xff0c;正确的做法&#xff0c;就是重复发&#xff0c;让它继续爆下去。 以前我在小红书看到一个人&#xff0c;将一篇自己火的笔记&#xff0c;连续发了5次&#xff0c;每次点赞数据都不错。 公众号文章也是一样的。 我…

Gin与OpenAPI(Swagger)的使用

一、背景 1、swagger与openapi Swagger&#xff1a; 一种用于描述RESTFUL API的规范&#xff0c;它提供了一种简单的来描述API的请求和相应参数、错误码、返回数据类型等信息&#xff0c;是开发者可以方便了解API使用方式。 官网: https://swagger.io/ OpenAPI : 始于 …

gazebo仿真不起飞——QGC地面站查看下是否参数正确

检查方法&#xff1a;打开QGC地面站查看是否能够切入定点模式&#xff0c;不能的话查看定位数据来源参数

uniapp(微信小程序)退出小程序方法

一、描述 场景是&#xff1a;当用户不予授权的时候&#xff0c;不允许使用该小程序&#xff0c;在用户点击取消之后&#xff0c;应该关闭当前小程序&#xff0c;不让他继续使用。 二、代码 uni.exitMiniProgram({success: function() {console.log(退出小程序成功);},fail: …

鸿蒙HarmonyOS实战-Stage模型(信息传递载体Want)

&#x1f680;前言 应用中的信息传递是为了实现各种功能和交互。信息传递可以帮助用户和应用之间进行有效的沟通和交流。通过信息传递&#xff0c;应用可以向用户传递重要的消息、通知和提示&#xff0c;以提供及时的反馈和指导。同时&#xff0c;用户也可以通过信息传递向应用…

FPGA 第4章 摄像头Bayer转rgb

参考文献 彩色MT9V034摄像头 Bayer转rgb FPGA实现 https://www.cnblogs.com/hqz68/p/10413896.html 文章目录 前言Bayer转rgb算法解析 总结 前言 Bayer格式是相机内部的原始数据, 一般后缀名为.raw。 对于彩色图像,一般是三原色数据&#xff0c;rgb格式。但是摄像头一个像素…

【linux-IMX6ULL-LED字符驱动框架完善】

目录 1.简介&#xff12;.前置知识2.1 重要函数及结构体2.2 程序框架流程 3. 代码详解&#xff1a; 1.简介 在上节&#xff0c;我对linux-IMX6ULL-字符设备驱动简单框架实验进行了说明和构建&#xff0c;但是也存在几个问题&#xff1b; 需要手动指定设备号&#xff0c;不能自…

TCP 与 UDP

0. tcp 与 udp 的 异同特性 TCPUDPname传输控制协议用户数据报协议面向连接&#xff1f; 需要 传输数据前建立连接传输完毕后断开连接不需要可靠的传输数据&#xff1f; 可靠 有确认机制&#xff08;三次握手&#xff09; 有确认、窗口、重传、拥塞控制的机制保证数据可靠传输…

itertools拼装迭代器

itertools拼装迭代器 连接多个迭代器 内置的itertools模块有一些函数可以把多个迭代器连城一个使用。 chain chain可以把多个迭代器从头到尾连成一个迭代器。 import itertoolsit itertools.chain([1, 2, 3], [4, 5, 6]) print(list(it))>>> [1, 2, 3, 4, 5, 6]…

操作视频号小店,新手最关心的问题,一篇给你讲解清楚!

大家好&#xff0c;我是电商小V 新手去做视频号小店的时候&#xff0c;心里面一定是有很多疑问的&#xff0c;会反复咨询一些最关心的问题&#xff0c;因为他们要做好准备&#xff0c;以防后续做店过程中出现问题&#xff0c;其实新手关心的问题就那几个&#xff0c;咱们今天就…

C++贪心算法3

过河的最短时间 #include<bits/stdc.h> using namespace std; void f(int); int n; int main() {system("color 1");cin>>n;int a[10010];for(int i0;i<n;i){cin>>a[i];}sort(a0,an);int ta[1];int k1n-2;int k2n-1;while(true){int t1a[0]a[k…

springboot2+mybatis-plus+vue3创建入门小项目[学生管理系统]02[实战篇]

创建一个 vue 项目 创建这个新的文件夹 创建前端项目 eggbox 数据库 SQL CREATE DATABASE IF NOT EXISTS egg DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; USE egg;CREATE TABLE stu (id INT AUTO_INCREMENT, -- 自增主键name VARCHAR(64) NOT NULL, -- 非空姓名字段&a…

前端传参的三种方式

1、params 传参 参数拼接在地址 url 的后面给后台&#xff1b;地址栏中可见 案例1 地址栏&#xff1a;https://xxxxxxxx/admin/clues/detail?id558 接口代码&#xff1a; export function getClueDetail(query: any) {return request<clueItem>({url: /clues/detai…

Java:图书管理系统

目录 一.book 1.在book包中的Book 类用来定义和引用书的名字&#xff0c;作者&#xff0c;价格&#xff0c;类型等。 2.在book包中的第二个类是BookList是用来构建书架&#xff0c;和书架上的初始书本&#xff0c; 二、ioperations 1.AddOperation (增加图书) 2.BorrowOp…