当前位置: 首页 > news >正文

Python基础学习004——for循环与字符串

"""
1.for循环基本语法
2.做指定次数的循环,range()函数
3.continue的使用
4.字符串的定义与使用:转义符,原生字符
5.获取字符串长度,字符串索引的使用
6.切片,翻转字符串
7.字符串的查找find
8.字符串的替换replace
9.字符串的拆分split
10.字符串的链接join
"""# 最简单的for循环,遍历容器my_str中的内容
my_str = "123456"
for i in my_str:print(i)# 做指定次数的循环,range(n),左闭右开区间0-n-1的整数.循环执行多少次,n就是几.
for q in range(10):print(q)
# range的变形使用,使用for循环获取5-10之间的和.
s_num = 0
for w in range(5, 11):s_num += w
print('5+6+7+8+9+10=', s_num)# break:只在循环中使用,终止循环.
# continue:只跳过本次循环.
str1 = "hello"
for i in str1:if i == 'e':continueprint(i)"""
容器又称数据序列:字符串,列表,字典,元组
字符串,列表,元组支持加法运算,乘法运算
in在容器中的使用是共通的,在字典中判断的是键是否存在
容器为空时,容器表示为False,其余情况为True
"""
# 字符串
str2 = '1234567sdg'
str3 = "11dzkjhoiwd"
str4 = """hello"""
print(str2+str3)            # 字符串加法
print('+'*30)               # 字符串乘法
print('str2:', type(str2), 'str3:', type(str3), 'str4:', type(str4))
# 特殊字符在字符串中的处理:1.字符串中包含的引号和将字符串括起来的引号不同即可.
# 2.使用转义符\将特殊字符转义
# 3.原生字符:在字符串前加一个r
str5 = "I'm sunny"
str6 = 'I\'m sunny2'
str7 = r'\我们想吃烧鸡\''       # r表示原生字符串,\不会被当做转义符,通常用在文件操作,处理路径
print(str5, str6,str7)# 字符串的下标(索引):正数索引从0开始.python中支持负数下标,从右向左计数从-1开始
print(str2[3]+str2[-3])# 获取字符串长度len()
num = len('123456')
num1 = len(str2)
print(num, num1, str2[num1-1], str3[len(str3)-1])           # 输出两个字符串的长度及str2和str3的最后一个字符# 字符串切片:获取字符串中的多个字符,结果是一个字符串
# 字符串[start:end:step]:start开始位置下标(默认为0),end结束位置下标,step步长(默认为1)即隔step-1个取一个
print(str2[0:6:2])       # 隔一个取一个
print(str2[0:6])            # 挨个取,step为1可以省略不写
print(str2[:6:2])           # 隔一个取一个,起始位置为0可以省略不写
print(str2[2::2])           # 隔一个取一个直到最后一个字符,end也可以不写
print(str2[::2])            # 隔一个取一个,从第一个字符开始到最后一个字符结束
print(str2[::-1])           # 步长为负数,翻转字符串# 字符串的查找:str.find(sub_str,start,end)从start(默认为0)开始到end(默认为len(str)-1结束,在字符串中是否存在sub_str
# 找到了返回第一次出现sub_str的下标,没找到返回-1
print(str2.find('45', 1, 7))     # 能找到
print(str2.find('8', 1, 7))     # 找不到
print(str2.find('4', 1))               # end默认不写
print(str2.find('4'))                               # start和end都不写
# 查找sub_str第n次出现位置,从第n-1次出现的位置开始查找
sub_str = str5.find('n')
print(str5.find('n', sub_str-1))            # 第二次出现的位置# 字符串替换:str.replace(old_str,new_str,count)
# count为替换次数(即用new替换几次old字符),一般不写,默认全部替换
# 替换后原字符是不变的.要使用替换后的字符,需赋值给新的变量
str8 = '1234567890abcdefgaaa'
str8_1 = str8.replace('a', 'A', 3)
str8_2 = str8.replace('a', 'A')
print('原字符是:', str8)
print('替换3次后的字符是:', str8_1)
print('全部替换后的字符是:', str8_2)
# 只替换第三个a:先替换3个,再将前边2个换回来.只替换第n-m个同理,先替换m个,再把前边n个替回来.
str8_4 = str8_1.replace('A', 'a', 2)
print('只替换第三个a:', str8_4)# 字符串的拆分:
# str.split(sep,max_split)把字符串在sep处截断拆分,并删除sep,默认是空白字符:空格,换行\n,\t,
# max_split为拆分次数,默认全部拆分
# 结果是一个列表
str9 = 'good good study and day day up!and never give up!'
str9_1 = str9.split('and')
str9_2 = str9.split(' ')
str9_3 = str9.split(' ',2)
print('按照and分割:', str9_1)
print('按照空格分割:', str9_2)
print("按照空格拆分,只拆分2次", str9_3)# 字符串的链接
# str.join(列表)主要是用列表拼接,也可以用其他容器
# 将字符串插入到列表中两个数据之间,要求列表中的数据必须全部是字符串
str10 = ' '
list1 = ['good', 'good', 'study', 'and', 'day', 'day', 'up!and', 'never', 'give', 'up!']
str10_1 = str10.join(list1)                 # 可以用自定义的变量
str10_2 = str10.join(str9.split('and'))     # 拆分结果也是列表
print(str10_1)
print(str10_2)

相关文章:

Python基础学习004——for循环与字符串

""" 1.for循环基本语法 2.做指定次数的循环,range()函数 3.continue的使用 4.字符串的定义与使用:转义符,原生字符 5.获取字符串长度,字符串索引的使用 6.切片,翻转字符串 7.字符串的查找find 8.字符串的替换replace 9.字符串的拆分split 10.字符串的链接join &…...

【发展史】鼠标的发展史

最早可以追溯到1952年,皇家加拿大海军将5针保龄球放在能够侦测球面转动的硬件上,这个硬件再将信息转化成光标在屏幕上移动,用作军事计算机输入。这是我们能够追溯到的最早的依靠手部运动进行光标移动的输入设备。但当时这个东西不叫鼠标&…...

ThinkPHP6 多应用模式之验证码模块的配置与验证

Thinphp6 官方的验证码模块的配置是有问题的,或者说需要手工配置。 在配置期间,我尝试了多种(包括按照官方文档、路由等)方法都验证失败。 存在2个问题: 1、多应用模式下,验证码的配置文件依然读取全局的…...

数据结构笔记——树和图(王道408)(持续更新)

文章目录 传送门前言树(重点)树的数据结构定义性质 二叉树的数据结构定义性质储存结构 二叉树算法先中后序遍历层次展开法递归模拟法 层次遍历遍历序列逆向构造二叉树 线索二叉树(难点)定义线索化的本质 二叉树线索化线索二叉树中…...

Redis 主从

目录 ​编辑一、构建主从架构 1、集群结构 2、准备实例和配置 (1)创建目录 (2)修改原始配置 (3)拷贝配置文件到每个实例目录 (4)修改每个实例的端口,工作目录 &a…...

嵌入式学习笔记(63)位操作实战

(1)给定一个整型数a&#xff0c;设置a的bit3&#xff0c;保证其他位不变。 a | (1<<3) (2)给定一个整形数a&#xff0c;设置a的bit3~bit7&#xff0c;保持其他位不变 a | (0x1f<<3) (3)给定一个整型数a&#xff0c;清除a的bit15&#xff0c;保证其他位不变。 a …...

8位机adc采样正弦波频率

相位/峰峰值高电平&#xff1f; 检 测峰值电压&#xff1f; y 开始计数 检测零电压 y 计数器值16ms/20ms 斩波开x关x延时 tt 频率 1/2t 电路 增减常数 aT...

react中使用监听

在 React 中&#xff0c;您可以使用 addEventListener 函数来监听事件。以下是一个示例&#xff1a; import React, { useRef, useEffect } from react;function App() {const inputRef useRef(null);useEffect(() > {inputRef.current.addEventListener(input, handleInp…...

Java基础总结

0、Java语言 1.java和c 2.编译和解释 3.jre和jdk&#xff0c;jvm 简单来说&#xff0c;编译型语言是指编译器针对特定的操作系统将源代码一次性翻译成可被该平台执行的机器码&#xff1b;解释型语言是指解释器对源程序逐行解释成特定平台的机器码并立即执行。 Java 语言既具…...

基于SSM的OA办公系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…...

【第25例】IPD体系进阶:需求分析团队RAT

目录 简介 RAT CSDN学院相关内容推荐 作者简介 简介 RAT是英文Requirement Analysis Team英文首字母的简称,也即需求分析团队,每个产品线都需要设定对应的一个RAT的组织。 RAT主要负责产品领域内需求的分析活动,是RMT的支撑团队: 这个时候可以将RAT细化为PL-RAT团队,…...

5G与无人驾驶:引领未来交通的新潮流

5G与无人驾驶&#xff1a;引领未来交通的新潮流 随着5G技术的快速发展和普及&#xff0c;无人驾驶技术也日益受到人们的关注。5G技术为无人驾驶提供了更高效、更准确、更及时的通信方式&#xff0c;从而改变了我们对交通出行的认知和使用方式。本文将探讨5G技术在无人驾驶领域的…...

FreeRTOS学习2018.6.27

《FreeRTOS学习》 1.freeRTOS基本功能函数&#xff1a; 定义任务&#xff1a;ATaskFunction(); 创建任务&#xff1a;xTaskCreate(); 改优先级&#xff1a;vTaskPrioritySet(); 系统延时&#xff1a;vTaskDelay(); 精确延时&#xff1a;vTaskDelayUntil(); 空闲任务钩子函数&…...

【异常】理解Java中的异常处理机制

标题&#xff1a;理解Java中的异常处理机制 摘要&#xff1a; 异常处理是Java编程中的重要概念之一&#xff0c;它可以帮助开发者识别和处理程序运行过程中的错误和异常情况。本文将深入探讨Java中的异常处理机制&#xff0c;包括异常的分类、异常处理的语法和最佳实践。通过示…...

很久没写JAVA程序了,原来用GMAIL发送邮件这么简单

写完代码,配置了GMAIL,死活发布出去,碰到了错误535-5.7.8 Username and Password not accepted. 首先先写代码,然后配置GMAIL. 第一写代码: 当你需要在 Spring Boot 中实现邮件通知时,你可以使用 Spring 的 JavaMailSender 来发送电子邮件。首先,确保你的 Spring Boo…...

Spring Security获得认证流程解析(示意图)

建议先看完Spring Security总体架构介绍和Spring Security认证架构介绍&#xff0c;然后从FilterChainProxy的doFilterInternal函数开始&#xff0c;配合文章进行debug以理解Spring Security认证源码的执行流程。 在之前的Spring Security认证架构介绍中&#xff0c;我们已经知…...

scrapy typeerror: attrs() got an unexpected keyword argument ‘eq‘

问题&#xff1a; scrapy 爬虫程序报错 scrapy typeerror: attrs() got an unexpected keyword argument eq原因&#xff1a; Twisted 版本过高 解决方法&#xff1a; # 安装指定版本 pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ Twisted21.7.0# 几个可…...

非侵入式负荷检测与分解:电力数据挖掘新视角

电力数据挖掘 概述案例背景分析目标分析过程数据准备数据探索缺失值处理 属性构造设备数据周波数据模型训练 性能度量推荐阅读 主页传送门&#xff1a;&#x1f4c0; 传送 概述 摘要&#xff1a;本案例将根据已收集到的电力数据&#xff0c;深度挖掘各电力设备的电流、电压和功…...

抽丝剥茧,Redis使用事件总线EventBus或AOP优化健康检测

目录 前言 Lettuce 什么是事件总线EventBus&#xff1f; Connected Connection activated Disconnected Connection deactivated Reconnect failed 使用 一种另类方法—AOP 具体实现 前言 在上一篇深入浅出&#xff0c;SpringBoot整合Quartz实现定时任务与Redis健康…...

【Tailwind CSS】当页面内容过少,怎样让footer保持在屏幕底部?

footer通常写版权信息等&#xff0c;显示在页面底部。如果页面内容过少&#xff0c;则footer会出现在屏幕中间位置&#xff0c;很尴尬。在 Tailwind 中&#xff0c;你可以使用flex来实现footer保持在屏幕或页面底部。 代码&#xff1a; <div class"flex flex-col min…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...