1.输入一行字符,统计字符串中包含数字的个数

str = input("请输入一串字符:")
a = {}
for i in str:a[i] = str.count(i)
print(a)

2.已知字符串:"this is a test of python".  按要求执行以下操作:

(1)统计该字符串中字母s出现的次数

(2)取出子字符串"test"

(3)将字符串中每个单词的第一个字母变成大写, 输出到显示器。

(4)用两种方式实现该字符串的倒叙输出

str = "this is a test of python"print(str.count("s"))  # (1)print(str.split()[3])  # (2)print(str.title())  # (3)s1 = str.split(" ")  # (4)  第一种方法
for i in s1[::-1]:print(i, "", end="")print(" ".join(str.split(" ")[::-1]))  #第二种方法

3.给定一个字符串来代表一个学生的出勤记录 ,这个记录仅包含以下三个字符:

‘A’ : Absent ,缺勤       ‘L’:Late,迟到      ‘P’ : Present .到场

如果一个学生的出勤记录中不超过一个A(缺勤)并且不超过两个连续的L(迟到)那么这个学生会被奖赏。 你需要根据这个学生的出勤记录判断他是否会被奖赏。

示例1:     输入: "PPALLP"输出: True

示例2:     输入: "PPALLL"输出:False

A = "缺勤"
L = "迟到"
P = "到场"
a = input("请输入学生的出勤记录:")
if a.count("A") <= 1 and a.count("LLL") == 0:print("True")
else:print("False")

4.有一身份证号,判断此为男还是女,(身份证为18位)

a = input("请输入身份证号:")
b = int(a[16:17])
if b % 2 == 0:print("男")
else:print("女")

5.如下字符串,01#张三#20-02#李四#30-03#王五#40……,解析每个人分数多少。样式如下:
01 张三 20
02 李四 30
03 王五 40  ,并且计算总分。

a = "01#张三#20-02#李四#30-03#王五#40"
list1 = a.split("-")
list2 = [item.split("#") for item in list1]
print(list2)
sum = 0
for item in list2:sum += int(item[2])
print(sum)

6.检测某一个标识符是否是python的合法标识符(请分别用字符串函数和正则表达式两种方法完成)

# 方法一
s = input("请输入字符串:")
if s[0].isalpha() or s[0] == "_":for j in range(1, len(s)):if s[j].isalnum() == False and s[j] != "_":print("标识符非法")breakelse:print("标识符合法")
else:print("标识符非法")
# 方法二
while True:l = input('请输入字符串:')if l == 'exit':breakif l[0].isalpha() or l[0] == '_':for i in l[1:]:if not (i.isalnum() or i == "_"):print('标识符不合法')breakelse:print('标识符合法')else:print('标识符不合法')

7.随机生成验证码:

很多网站的注册登录业务都加入了验证码技术,以区分用户是人还是计算机,有效地防止刷票、论坛灌水、恶意注册等行为。目前验证码的种类层出不穷,其生成方式也越来越复杂,常见的验证码是由大写字母、小写字母、数字组成的六位验证码。

import randoma = ""
for i in range(6):b = random.randint(1, 3)  # b=1,大写字母,b=2,小写字母,b=3,数字if b == 1:  # A(65)-Z(90)c = random.randint(65, 90)a = a + chr(c)elif b == 2:  # a(97)-z(122)c = random.randint(97, 122)a = a + chr(c)elif b == 3:c = random.randint(0, 9)a = a + str(c)
print(a)

8.编程匹配简单的以www.开头以.com结尾的web域名,例如www.baidu.com

import repatt = 'www.+\.com'
m = re.match(patt, 'www.baidu.com')
if m is not None: m.group()
print(m)

9.判断某一个字符串是否符合如下规则:用一个空格分隔的任意一对单词,比如名和姓,若符合,输出字符串,否则输出“匹配失败”。

import rea = input("请输入字符串:")
for i in a:if re.match(r'\s', i):print("匹配成功")break
else:print("匹配失败")

10.匹配一个点(.)和一个空格分开的一字母和一个单词,如英国人名中的姓和名。

import res = "xian ming.xiao wang"
re.findall('\w+', s)
print(s)

11.利用正则表达式匹配163邮箱地址,以检测输入的邮箱是否合法.

import rea = input("请输入邮箱地址:")
while True:b = re.match("^163\w", a)if b:print("邮箱地址合法")breakelse:print("邮箱地址不合法")break
else:print("邮箱地址不合法")

12.假设有一段英文,其中有单独的字母“I”误写为“i”,请编写程序进行纠正。例如,这一段英文是: "i am a teacher,i am man, and i am 38 years old.I am not a businessman.",请编写程序,将文中的i改为I,要求用户两种方法完成。

# 方法一
import rea = "i am a teacher,i am man, and i am 38 years old.I am not a businessman."b = re.compile(r"(?:[^\w]|\b)i(?:[^\w])")
while True:c = b.search(a)if c:if c.start(0) != 0:a = a[:c.start(0) + 1] + "I" + a[c.end(0) - 1:]else:a = a[:c.start(0)] + "I" + a[c.end(0) - 1:]else:break
print(a)
# 方法二
a = "i am a teacher,i am man, and i am 38 years old.I am not a businessman."
b = a.replace("i", "I")
print(b)

13.有一段英文文本,其中有单词连续重复了2次,编写程序检查重复的单词并只保留一个。例如文本内容为“This is is a desk.”,程序输出为“This is a desk.”

a = "This is is a desk"
b = re.compile(r"\b(\w+)(\s+\1){1,}\b")
c = b.search(a)
a = b.sub(c.group(1), a)
print(a)

14.判断手机号所属运营商

说到手机号大家并不陌生,一个手机号码由11位数字组成,前3位表示网络识别号,第4~7位表示地区编号,第8~11位表示用户编号。因此,我们可以通过手机号前3位的网络识别号辨别手机号所属运营商。在我国手机号运营商有移动、联通、电信,各大运营商的网络识别号如表1所示。

表1 运营商和网络识别号

运营商

号码段

移动

134、135、136、137、138、139、147、148、150、151、152、157、158、 159、165、178、182、183、184、187、188、198

联通

130、131、132、140、145、146、155、156、166、185、186、175、176

电信

133、149、153、180、181、189、177、173、174、191、199

本实例要求编写程序,实现判断输入的手机号码是否合法以及判断其所属的运营商的功能。

import retel = input("请输入电话号码:")
if re.match(r"^1\d{10}", tel):if re.match(r"^13[4-9]\d{8}", tel) or \re.match(r"^14[78]\d{8}", tel) or \re.match(r"^15[012789]\d{8}", tel) or \re.match(r"^165\d{8}", tel) or \re.match(r"^178\d{8}", tel) or \re.match(r"^18[23478]\d{8}", tel) or \re.match(r"^198\d{8}", tel):print("中国移动")elif re.match(r"^13[0-2]\d{8}", tel) or \re.match(r"^14[056]\d{8}", tel) or \re.match(r"^15[56]\d{8}", tel) or \re.match(r"^166\d{8}", tel) or \re.match(r"^17[56]\d{8}", tel) or \re.match(r"^18[56]\d{8}", tel):print(" 中国联通")
else:print("中国电信 ")

python练习题(3)--字符串及正则表达式的应用相关推荐

  1. python基础系列教程——python中的字符串和正则表达式全解

    全栈工程师开发手册 (作者:栾鹏) python教程全解 转义字符 正则表达式是建立在字符串的基础上,当需要在字符中使用特殊字符时,python用反斜杠\转义字符.如下表: 转义字符 描述\(在行尾时 ...

  2. python获取月份字符串_python 正则表达式获取字符串中所有的日期和时间

    提取日期前的处理 1.处理文本数据的日期格式统一化 text = "2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损 ...

  3. python练习题(六)正则表达式

    1.提示用户输入自己的名字.年龄.身高,并将该用户信息以JSON格式保存在文件中.再写一个程序读取刚刚保存的JSON文件,恢复用户输入的信息. import json name = input('请输 ...

  4. python怎么匹配字符串_python正则表达式如何匹配字符串

    python正则表达式匹配字符串的方法:1.使用[(.+?)]这个正则表达式来提取单个位置的字符串:2.使用[(?P-)]这个正则表达式[匹配连续多个位置的字符串. python正则表达式匹配字符串的 ...

  5. Python练习题——统计字符串中分别有多少个字母数字空格及特殊字符

    # 统计字符串中分别有多少个字母数字空格及特殊字符 # 如: # 输入 # str='123as###fcef87e4%&*jb s wqed 41 24 你好1234v3' # 输出 # 字 ...

  6. python re库 详解(正则表达式)

    python re库 详解(正则表达式) 说明 则表达式(英文名称:regular expression,regex,RE)是用来简洁表达一组字符串特征的表达式.最主要应用在字符串匹配中. 1).re ...

  7. RUNOOB python练习题27 递归逆向输出字符串

    用来练手的python练习题,原题链接: python练习实例27 题干: 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来. 实际要实现这个功能很简单,我们只需要反向遍历字符串即可.源代 ...

  8. 叠数的加法与字符串 RUNOOB python练习题 18

    用来练手的python 练习题其十八,原链接 : python练习实例18 题干: 求s=a+aa+aaa+aaaa+aa-a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共 ...

  9. Python入门基础篇(五)字符串的正则表达式re模块,全面解析!!!

    文章目录 前言 一.匹配字符串的方法 1.使用match()方法进行匹配 2.使用search()方法进行匹配 3.使用findall方法进行匹配 二.替换字符串 三.使用正则表达式分割字符串 前言 ...

  10. python正则表达式中的r与转义字符_左手用R右手Python系列13——字符串处理与正则表达式...

    原标题:左手用R右手Python系列13--字符串处理与正则表达式 杜雨,EasyCharts团队成员,R语言中文社区专栏作者,兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化.个 ...

最新文章

  1. 如何解决传输模式解决FTP连接问题
  2. codeforces 293E Close Vertices 点分治+滑窗+treap
  3. nuke linux 插件,Nuke 插件:镜头光晕 Optical Flares v1.0.86(含预设)Win/Mac/Linux
  4. oracle db-link 分布式数据库网络配置协议错误,Oracle学习(18)【DBA向】:分布式数据库...
  5. linux-时间日期类
  6. JAVA随机数之多种方法从给定范围内随机N个不重复数
  7. JavaScript 几种简单的table切换
  8. 【英语学习】【Level 08】U04 What I love L6 Information overload
  9. 原始线性结构单链表的实现以及操作
  10. 李煜东算法进阶指南打卡题解
  11. 实现挖掘大数据价值的三大因素
  12. 安卓期末大作业(AndroidStudio开发),日记本app,代码注释详细,能正常运行
  13. 计算机上硬盘驱动器,什么是计算机硬盘驱动器?它有什么作用?如何维护?
  14. 数据库变为可疑_数据库显示可疑的修复方法
  15. CRC校验算法及实现
  16. 图像处理我是这样入门的------我的第一篇csdn博文
  17. 青海电大随学随考计算机,[青海电大]17秋随学随考中国现当代文学名著导读(1)作业4资料...
  18. 微流控芯片进样用多通道正负压力控制器的解决方案
  19. Pandas之skew,求偏度
  20. 微信里的网址链接域名如何自动跳转到外部浏览器访问源码

热门文章

  1. 用python写一个PDF翻译软件
  2. 【Android】使用后端云Bmob实现登录、注册
  3. word2vec python实现
  4. 北大计算机mooc题库,人工智能原理MOOC习题集及答案 北京大学 王文敏
  5. python 气泡图 聚类_R可视化 | 气泡图
  6. 前厅(the backrooms)
  7. 爱快中的虚拟机不能获取IPV4地址
  8. 交叉编译ortp、osip2、eXosip2、mediastreamer2及其附带的库实现SIP软电话
  9. 配置Hiveserver 高可用,新增Hiveserver2启动失败
  10. pandas使用read_csv函数读取文件的前N行数据并保留表头、pandas使用read_csv函数读取制表符分割的文件(tab-delimited)、自定义设置sep参数