高分问题!Python程序:怎么检测用户的输入是否正确

我现在用Python,想要编辑一段程序:让用户属于一串字母,只要用户输入的一串字母中含有”M,D,L,X,C,V,I“这七个字母以外的字母,比如A,就让用户重新输入。有没... 我现在用Python,想要编辑一段程序:

让用户属于一串字母,只要用户输入的一串字母中含有”M,D,L,X,C,V,I“这七个字母以外的字母,比如A,就让用户重新输入。

有没有人帮帮忙,我已经想过好多天了。。。还是没有解决。。。最好能给个程序代码让我看看,我实在实在是不会了。。。快绝望了。。。要是帮我解决了,分数不是问题!!!
还有一个问题,如果用户输入了一串字母,但是这串字母必须按照M,D,C,L,X,V,I的顺序排列,不分大小写。我怎么才能检测是不是按照顺序呢?
展开
 我来答
tim_spac
2012-02-23 · TA获得超过3628个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2019万
展开全部
关于问题的问题:是否这7个字母都必须至少出现一次(若可不出现则将下面的“?”去掉)

import re
patt = re.compile(r'''
[mM]+?
[dD]+?
[lL]+?
[xX]+?
[cC]+?
[vV]+?
[iI]+?
''', re.I|re.X|re.U)

def checkStr(s):
return patt.match(s)

req = ''
while not checkStr(req):
req = raw_inpeut("please input")

# do something you want with the req
更多追问追答
追问
你这个是什么东西。。。。解释解释。。。。我是新手。。。。你那个import re,re是什么东西。。。
追答
“正则表达式”是很广泛应用的,强大的,从字符串中查找、提取数据的一种手段
import re # 导入python的正则表达式处理模块
re.compile(..) # 定义一个正则逻辑 ...

有专门的书籍、课程介绍,建议研究一番
ubuntusir
2012-02-23 · TA获得超过712个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:104万
展开全部
while True:
request = raw_inpeut("please input")
for x in request:
if x not in ['M', 'D', 'L', 'X', 'C', 'V', 'I']: #检查输入的字母是否在指定的字母之中
print 'input error, please input again'
continue
else:
print 'input right'
if request == 'MDCLXVI': #检查输入的字符串是否与制定的相等
print 'OK ,It's right order'
else: print 'Error order'
break

以上的程序,就可以完成你的要求
更多追问追答
追问
大体意思上是对的,可是有问题啊(我是新手,所以有很多问题。。。):
1。如果我输入MMMDDCLXVIIIII,那么这个序列不等于MDCLXVI啊,我输入的要比这个长啊。。
2。如果发生"input error, please input again“,需要用户重新输入的话,是不是应该要在这句话下面添加一句request = raw_input("please input")才对啊?
3。那个continue是什么意思?
5。你的那个break,是退出整个程序吗?还是说退出这个大的while循环?
追答
1、楼下的回答可用,使用的正则表达式,import re,re为正则表达式模块,如果不用正则表达式就得多写点。
for x in range(len(request)-1):
if 'MDCLXV'.index(request[x]) > 'MDCLXV'.index(request[x+1]):
print 'Order error'
else:print 'Right error'
当然这没考虑大小写。
如果要考虑的话,还得在if中嵌套循环。
处理文字方面的问题还是正则表达式比较在行,建议使用楼下的回答。
2、不用重新添加request = raw_input("please input"),continue 是代表继续while循环,自动跳到循环的开始,开始执行。
3、上面已经解释。
4、break是跳出while循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式