【Python习题集4】字符串与正则表达式

news/2024/10/18 0:32:24/

字符串与正则表达式

  • 一、实验内容
  • 二、实验总结

一、实验内容

1.输人一个字符串,将该字符串中下标为偶数的字符组成新串并通过字符串格式化方式显示。
(1)源代码

x = input("请输入一个字符串:")
y = x[::2]
print("下标为偶数的字符组成的新串为:{}".format(y))

(2)运行结果截图
在这里插入图片描述

2.编写程序,生成一个由15个不重复的大小写字母组成的列表。
(1)源代码

import random
import string
list1 = []
while len(list1) <= 15:x = random.choice(string.ascii_letters)if x not in list1:list1.append(x)
print("15个不重复的大小写字母组成的列表为:",list1)

(2)运行结果截图
在这里插入图片描述

3.给定字符串"site sea suede sweet see kase sse sseeloses",匹配出所有以s开头、e结尾的单词。
(1)源代码

import re
x = 'site sea suede sweet see kase sse ssee loses'
z = re.findall(r's[^0-9]e',x)
print("所有以s开头,e结尾的单词为:",z)

(2)运行结果截图
在这里插入图片描述

4.生成15个包括10个字符的随机密码,密码中的字符只能由大小写字母、数字和特
殊字符“@”“$”“#”“&”“_”“~”构成。
(1)源代码

import random
import stringlist1 = []
x = string.ascii_letters + string.digits + "@$#&_~"
while len(list1) <= 14:y = [random.choice(x) for i in range(10)]list1.append(" ".join(y))
else:print("生成结束:开始输出列表。")
print("列表为:\n", list1)
print("列表元素个数为:", len(list1))

(2)运行结果截图
在这里插入图片描述

5给定列表x=[“13915556234”,“13025621456”,“15325645124”,“15202362459”],检查列表中的元素是否为移动手机号码,这里移动手机号码的规则是:手机号码共11位数字;以13开头,后面跟4、5、6、7、8、9中的某一个;或者以15开头,后面跟01、2、89中的某一个。
(1)源代码

import re
x = ["13915556234", "13025621456", "15325645124", "15202362459"]
for i in x:if len(i) == 11 and (re.findall(r'^13[4-9]', i) or re.findall(r'^15[01289]', i)):print(i)

(2)运行结果截图
在这里插入图片描述

二、实验总结

在Python中,字符串的构造主要通过两种方法来实现,一是使用str函数,二是用单引号、双引号或三引号。在Python中,使用引号是一种非常便捷的构造字符串方式。

  1. 单引号或双引号构造字符串在用单引号或双引号构造字符串时,要求引号成对出现。如:Python World!’、ABC’、"what is your name?”,都是构造字符串的方法。string”在Python中不是一个合法的字符串。
  2. 单双引号构造字符串的特殊用法如果代码中的字符串包含了单引号,且不用转义字符,那么整个字符串就要用双引号来构造,否则就会出错。
  3. 三重引号字符串三重引号字符串是一种特殊的用法。三重引号将保留所有字符串的格式信息。如字符串跨越多行,行与行之间的回车符、引号、制表符或者其他任何信息,都将保存下来。在三重引号中可以自由地使用单引号和双引号。
  4. 正则表达式是一个特殊的字符序列,利用事先定义好的一些特定字符以及它们的组合组成一个“规则”,检查一个字符串是否与这种规则匹配来实现对字符的过滤或匹配。正则表达式是字符串处理的有力工具,但是并不是Python独有的,其他语言也有。
  5. Python中,re模块提供了正则表达式操作所需要的功能。
    大多数字母和字符一般都会和自身匹配。如果在字符串前面加了r,表示对字符串不进行转义。有些字符比较特殊,它们和自身并不匹配,而是表明应和一些特殊的东西匹配,或者会影响重复次数。这些特殊的字符我们称之为元字符。
    re模块中findall()方法以列表的形式返回所有能匹配的子串,如果没有找到匹配的,则返回空列表
  • “.”:表示除换行符以外的任意字符
  • “[]”:指定字符集
  • “∧”:匹配行首,匹配以后面的字符开头的字符串
  • “\”:反斜杠后面可以加不同的字符以表示不同的特殊意义
  • “ ”:匹配位于之前的字符或子模式的0次或多次出现
  • “+”:匹配位于+之前的字符或子模式的1次或多次出现
  • “?”:匹配位于?之前的0个或1个字符
  • “{m,n}”:表示至少有m个重复,至多有n个重复。m和n均为十进制数

http://www.ppmy.cn/news/59355.html

相关文章

【机器学习】决策树如何实现回归

【机器学习】决策树如何实现回归 文章目录 【机器学习】决策树如何实现回归1. 介绍2. 回归树的构建方法3. 递归二分法4. 回归树的剪枝5. 总结参考 1. 介绍 在 https://blog.csdn.net/qq_51392112/article/details 中&#xff0c;我们详细介绍了决策树基本内容&#xff1a;如何…

【模拟IC学习笔记】 负反馈系统的稳定性

反馈方程 输出方程 误差方程 环路增益 定义:当输入电压接地、并将环路断开时&#xff0c;所计算的增益就是环路增益 时&#xff08;幅度1&#xff0c;相位-180&#xff09;电路稳定在电源或低状态或在电源和地之间振荡。 分析稳定性时是对环路增益进行分析&#xff0c;通过环…

静态路由配置

静态路由原理 静态路由是指由管理员手动配置和维护的路由 静态路由配置简单,被广泛应用于网络中。另外,静态路由还可以实现负载均衡和路由备份。因此,学习并掌握好静态路由的应用于配置使非常必要的。 静态路由是一种需要管理员手工配置的特殊路由。 静态路由在不同网络…

长衫是把双刃剑

孔乙已是鲁迅笔下人物&#xff0c;穷困流倒还穿着象征读书人的长衫&#xff0c;迁腐、麻木。最近&#xff0c;大家自我调佩是“当代孔乙己”&#xff0c;学历成为思想负担&#xff0c;找工作时高不成低不就。 学历对于职业的影响是正面的。 有了一份好的学历&#xff0c;就有了…

2-Lampiao百个靶机渗透(精写-思路为主)框架漏洞利用2

特别注明&#xff1a;本文章只用于学习交流&#xff0c;不可用来从事违法犯罪活动&#xff0c;如使用者用来从事违法犯罪行为&#xff0c;一切与作者无关。 文章目录 前言一、环境重新部署二、AWVSxray联动和xraybs联动1.安装AWVSxray2.让xray和bs先联动3.AWVS和xray联动 三、p…

java 异常

Throwable&#xff1a; Throwable 是 Java 编程语言中所有错误和异常类的超类&#xff0c;用于表示可以被抛出的任何对象。它定义了两个子类&#xff1a;Error 和 Exception。 Error 表示严重问题&#xff0c;一般由 JVM 抛出&#xff0c;如 OutOfMemoryError、StackOverflow…

Java程序设计入门教程---循环结构(while)

目录 思考 概念 语法 案例&#xff1a;求1到100的整数和&#xff1f; 案例分析 思考 1. 让你输出10000000000000000句“Hello,world!”&#xff0c;你怎么写代码&#xff1f; 2. 求1到100的整数和&#xff1f; 概念 循环结构程序多次循环执行相同或相近的任务。 while循环…

NIST SP 800-193: BIOS 平台固件弹性指南

NIST SP 800-147&#xff0c;BIOS 保护指南 ( NIST SP 800-147 [1]、NIST SP 800-147B [2]&#xff09;解决了 BIOS 的保护问题 可从此处免费获得&#xff1a; https://doi.org/10.6028/NIST.SP.800-193 摘要 此文档提供了关于支持平台固件和数据对抗潜在地具有破坏性的攻…