[IT学习]Python如何处理异常特殊字符
A byte of Python《输入与输出》一节中有一个处理回文的小例子(io_input.py)。作者留了个思考题。
如何将标点去掉、忽略大小写后,再考虑是否回文?
可以学习re模块、学习str的方法来处理。
方法1:使用re正则表达式将特殊字符处理为空字符串。
import re
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text == reverse(text) something = input("Enter text: ")
something = re.sub(r'[,. -!?:]', '', something)
something = something.lower()
print (something)
if is_palindrome(something):
print("Yes, it is a palindrome")
else:
print("No, it is not a palindrome")
方法2:使用循环判断每个字符是否在特殊字符串里面,然后将特殊字符替换为空格。
最后使用join和split将空格替换掉。
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text == reverse(text) something = input("Enter text: ")
specialstr = (",",".","-","!","?",":")
prostr = list(something)
for i in range(len(something)):
if something[i] in specialstr:
prostr[i]= " "
#将列表变为字符串
something = "".join(prostr) #将字符串以空格为分隔符,变为列表,再变为不包含空格的字符串
something = "".join(something.split(" "))
#变为小写字符串
something = something.lower()
#打印字符串,确认是否转换好
print (something)
if is_palindrome(something):
print("Yes, it is a palindrome")
else:
print("No, it is not a palindrome")
RE模块参考文档:
http://www.cnblogs.com/sevenyuan/archive/2010/12/06/1898075.html
[IT学习]Python如何处理异常特殊字符的更多相关文章
- python学习笔记5_异常
python学习笔记5_异常 1.什么事异常 Python使用异常对象(exception object) 来表示异常情况.遇到错误会发生异常. 如果异常对象未被处理或被捕捉,程序就会用所谓的回溯(t ...
- Android(java)学习笔记82:我们到底该如何处理异常?
我们到底该如何处理异常? 原则: 如果该功能内部可以将问题处理,用try,自己能解决就自己解决问题. 如果处理不了,交由调用者处理,这是用throws,自己不能解决的问题,我们就抛出去交个调用者解决这 ...
- python学习日记(异常)
异常和错误 错误 1.语法错误 这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 pr ...
- Android(java)学习笔记22:我们到底该如何处理异常?
1. 我们到底该如何处理异常? (1)原则: 如果该功能内部可以将问题处理,用try,自己能解决就自己解决问题. 如果处理不了,交由调用者处理,这是用throws,自己不能解决的问题,我们就抛出去交个 ...
- 深入学习Python解析并解密PDF文件内容的方法
前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...
- 国内某Python大神自创完整版,系统性学习Python
很多小伙伴纠结于这个一百天的时间,我觉得完全没有必要,也违背了我最初放这个大纲上来的初衷,我是觉得这个学习大纲还不错,自学按照这个来也能相对系统的学习知识,而不是零散细碎的知识最后无法整合,每个人的基 ...
- Python3 学习Python流程--试水中
二.基础语法之后可以搭载服务器练习: 教程 一.1.Python 搭建环境. 初学基本语法 :Python基本语法 2.推荐 IDE : PyCharm CE 下载 菜鸟教程都是基础语法,可以对py ...
- 学习 python 编写规范 pep8 的问题笔记
决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...
- 【Python】Java程序员学习Python(五)— 函数的定义和使用
不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...
随机推荐
- vue-loader 细节
vue-loader 能根据 .vue 文件,导入一个vue组件.我这里从 vue-cli 的构建项目中抽取了vue-loader 一个小例子出来:vuedemo/demo02 vue-loader ...
- 关于Python中包裹传参和解包裹的理解
1.包裹传参 首先思考一个问题:为什么要有包裹传参?原因包括但不仅限于以下两点:①不确定参数的个数.②希望函数定义的更加松散灵活 包裹传参分两种:包裹位置传参和包裹关键字传参.先看包裹位置传参: 在这 ...
- Mybatis中实体类属性和数据列之间映射的四种办法
http://blog.csdn.net/lmy86263/article/details/53150091 Mybatis不像hibernate中那么自动化,通过@Column注解或者直接使用实体类 ...
- 简单的MVC 权限管理
花了3天时间研究了下对于 NHibernate+MVC4+bootstrap+Redis(这个是选配只做了登陆测试)+T4 这些都是第一次使用.用着有些生硬权当鼓励下自己,记录下来有空就继续完善. 思 ...
- 一个监控oracle数据库某个字段值变化并发送邮件报警的脚本
talk is cheap,here is the code: #!/bin/sh export ORACLE_HOME=/u01/app/oracle/product//client_1/ expo ...
- python005 Python3 注释
Python3 注释确保对模块, 函数, 方法和行内注释使用正确的风格Python中的注释有单行注释和多行注释:Python中单行注释以 # 开头,例如:: # 这是一个注释 print(" ...
- 【dfs+理解题意+构造】【待重做】codeforces E. Ice cream coloring
http://codeforces.com/contest/805/problem/E [题意] 染色数是很好确定,最少染色数是max(si)(最小为1,即使所有的si都为0,这样是单节点树形成的森林 ...
- hdu3853:LOOPS
题目大意:r*c个点,每个点有Aij的概率回到自己本身,Bij的概率向右一格,Cij的概率向下一格,求从(1,1)到(r,c)的期望步数. 题解:有了hdu4405的经验,从后往前推期望.那么,E(i ...
- bitset初始化问题
在C++primer上面说,bitset可以用unsigned long来进行初始化,但是上面的例子只是采用了常数如0xffff,而在实际中,当在vs2010中,我采用unsigned long类型的 ...
- VK Cup 2015 - Qualification Round 1 A. Reposts [ dp DAG上最长路 ]
传送门 A. Reposts time limit per test 1 second memory limit per test 256 megabytes input standard input ...