1、提示用户输入自己的名字、年龄、身高,并将该用户信息以JSON格式保存在文件中。再写一个程序读取刚刚保存的JSON文件,恢复用户输入的信息。

import json
name = input('请输入您的名字: ')
while True:try:    #采用异常处理机制,保证输入的格式正确age = int(input('请输入您的年龄: '))breakexcept:print('年龄需要您输入整数')
while True:try:height = float(input('请输入您的身高: '))breakexcept:print('身高需要您输入浮点数')
with open('my.txt', 'w+') as f:    #打开my.txt文件,如果不存在,就建立json.dump({'name': name, 'age': age, 'height': height}, f)    #转换为json格式,保存在文件中with open('my.txt', 'r') as f:      #打开my.txt文件my_info = json.load(f)         #从json格式转化成python格式print(my_info['name'])         #打印出信息print(my_info['age'])print(my_info['height'])

2、给定一个字符串,该字符串只包含数字0~9、英文逗号,英文点号,请使用英文逗号、英文点号将它们分割成多个子串。

import re, sys
while True:string = input('输入字符串: ')if string == 'exit':sys.exit(0)if not re.fullmatch('[0-9,\.]+', string):raise ValueError("您的输入只能包含0-9数字、英文逗号、英文点号")rt_list = re.findall('[0-9]+', string)print(rt_list)

3、定义一个正则表达式,用于验证国内的所有手机号码。

import re, syswhile True:string = input('请输入手机号: ')if string == 'exit':sys.exit(0)if re.fullmatch('^(1[358][0-9]|14[579]|16[6]|17[0135678]|19[89])\d{8}$', string):print('是手机号码')else:print('不是手机号码')

4、提示用户输入一个字符串,程序使用正则表达式获取该字符串中第一次重复出现的英文字母(包括大小写)。

import re, syswhile True:string = input('请输入字符串: ')if string == 'exit':sys.exit(0)m = re.findall(r'([a-zA-Z])[\w ]*?\1', string)if m:print(m[0])

5、提示用户输入一个字符串和一个子串,打印出该子串在字符串中出现的start和end位置:如果没有出现,则打印(-1, -1)。

import re
string, sub = input("请输入第一个字符串: "), input('请输入子串: ')
matches = list(re.finditer(r'(?={})'.format(sub), string))
if matches:print('\n'.join(str((match.start(),match.start() + len(sub) - 1)) for match in matches))
else:print('(-1, -1)')

6、提示用户输入两行,第一行是所有学习python的学员编号(以逗号隔开),第二行是所有学习Java的学员编号(以逗号隔开),计算所有只学python不学java的学员的数量。

import repython_set = set(re.findall('[^,\.\s]+', input('学习Python的学员: ')))
java_set = set(re.findall('[^,\.\s]+', input('学习Java的学员: ')))
print(python_set)
print(java_set)
diff = python_set - java_set
print('只学Python不学Java的学员:', diff)
print('只学Python不学Java的学员有%d人' % len(diff))

7、提示用户输入两行,第一行是所有学习python的学员编号(以逗号隔开),第二行是所有学习Java的学员编号(以逗号隔开),计算所有既学python又学java的学员的数量。

import repython_set = set(re.findall('[^,\.\s]+', input('学习Python的学员: ')))
java_set = set(re.findall('[^,\.\s]+', input('学习Java的学员: ')))
print(python_set)
print(java_set)
inter = python_set & java_set
print('既学Python又学Java的学员:', inter)
print('既学Python又学Java的学员有%d人' % len(inter))

8、计算用户输入的两个带时区的时间戳字符串之间相差的秒数。

from datetime import datetime as dtfmt = '%a %d %b %Y %H:%M:%S %z'
for i in range(int(input('请输入要比较几组:'))):print(int(abs((dt.strptime(input('第一个时间:'), fmt) - dt.strptime(input('第二个时间:'), fmt)).total_seconds())))

例如:

9、提示用户输入一个字符串,程序要输出该字符串中出现次数最多的3个字符,以及对应的出现次数。

from collections import Counterstring = input('请输入一个字符串: ')
c = Counter(string)
[print(t[0]) for t in c.most_common(3)]

10、定义一个fibonacci(n)函数,该函数返回包含n个元素的裴波那契数列的列表。再使用lambda表达式定义一个平方函数,程序最终输出裴波那契数列的前n个元素的平方值。

def fibonacci(n):rvt_list = [1, 1]# 生成fibonacci数列[rvt_list.append(rvt_list[-1] + rvt_list[-2]) for i in range(2, n)]return rvt_list
print(fibonacci(10))
# 计算fibonacci数列的元素的平方
x = map(lambda x: x*x , fibonacci(10))
print([e for e in x])

python练习题(六)正则表达式相关推荐

  1. Python练习题六

    博主:

  2. 《Python进阶系列》十六:详解Python中的正则表达式

    正则表达式 概述 正则表达式为高级的文本模式匹配.抽取.与/或文本形式的搜索和替换功能提供了基础.简单地说,正则表达式是一些由字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则 ...

  3. 孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2

    孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第九天. 今天继续学习mongoDB的简单操作, ...

  4. python(六)动态网页爬虫

    python(六)动态网页爬虫 什么是动态网页爬虫 动态网页 在网站不重新加载的情况下(网页的url不发生改变),通过ajax技术动态更新网站中的局部数据. ajax 异步JavaScript和XML ...

  5. Python第六周作业

    Python第六周作业 1. 正则表达式的点星匹配 2. 计算函数曲线与x轴包围的面积 3. 哥德巴赫猜想 4. 鸡兔同笼B 5. 与7无关的数 6. 完美立方数 7. 高次方程求根 8. 在终端输出 ...

  6. 站长在线零基础Python完全自学教程20:在Python中使用正则表达式完全解读

    欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础 Python完全自学教程>今天给大家分享的是第20课< 在Python中使用正则表达式完全解读>.本节课是一个大课,我分 ...

  7. 05、Python爬虫之正则表达式常用方法(超全)

    文章目录 前言 一.search()函数 二.match()函数 三.compile()函数 四.findall()函数 五.sub()函数 六.subn()函数 七.split()函数 八.补充说明 ...

  8. (收藏)Python 10个正则表达式写法

    关于Python 10个正则表达式写法 主要是用到了 re这个库 (1).其中re.compile用于编译正则表达式,生成一个正则表达式( Pattern )对象 (2). .findall用于在字符 ...

  9. 站长在线Python精讲:在Python中使用正则表达式的sub()方法替换字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的sub()方法替换字符串详解>. 在Python中使用正则表达式的sub()方法替换字符串. ...

  10. Python练习题__目录(更新中。。。)

    Python练习题__目录 人生有时真的很无助,特别是当社会走向了极端,当我们一无所知地憧憬着美好的未来时,却不知原本属于我们生来就拥有的一切,会被某些...暗中窥视后强行夺走(亲人.健康.技术.生命 ...

最新文章

  1. 【制作镜像】BCEC制作镜像
  2. excel在线_怎么能在线免费将PDF转Excel?
  3. 帝国cms文章页调用当前文章URL如何操作?
  4. linux read nchars,Linux常用命令--read
  5. *【POJ - 3061】 Subsequence (尺取或二分)
  6. 时空大数据实践之GeoWave安装部署实践
  7. Python实现局域网内屏幕广播的技术要点分析
  8. nginx ---- 背景介绍及环境准备
  9. 如何精简持仓基金数量?
  10. 在HDFS集群中优化secondary namenode到datanode1节点上,并做重启hdfs集群后,datanode1启动失败...
  11. Cognos 11.0快速开发指南 Ⅱ
  12. java 权限管理都用什么_java权限管理框架有哪些?
  13. Oracle数据库备份与还原语句
  14. 几十个精选壁纸网站,配色网站,字体网站
  15. 嵌入式开发培训学哪些?嵌入式培训课程好学吗
  16. HTML做一个简单的页面(纯html代码)地球专题学习网站
  17. 灰色关联分析法详细步骤解释
  18. Android隐藏软件盘
  19. 悟空 mobile.php,悟空crm系统pc+手机端PHPJAVA源码授权永久使用
  20. C语言 求最大值和最小值

热门文章

  1. KDD 2019|DuerQuiz:一个面向智能招聘笔试、面试的个性化试题推荐系统
  2. 3.关于普通三极管的类型及引脚判断
  3. Python GUI编程(Tkinter) 之 股票选股器
  4. 禾赛科技获得新融资背后:缺钱又缺爱,花钱求人和解专利官司
  5. sz和rz命令:提示*B00000000000000
  6. Jeff Bezos计划回收阿波罗11号飞船引擎
  7. 银行取款--Python学习小实例
  8. [转]阳光加利福尼亚 --土老冒的硅谷、旧金山见闻
  9. 计算机 ps 文书,什么是补充文书?它和PS有啥区别?答案都在这了!
  10. Facebook 、Twitter、Snapchat等巨头齐聚GMIC在线,畅谈营销增长