免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 作业没做完
打印 上一主题 下一主题

绝望的来问问题。。。 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2009-02-27 15:53 |只看该作者

回复 #28 作业没做完 的帖子

import sys
try:
    s = int(raw_input("Enter a 7-bit string to be checked: "))
except ValueError:
    print "OVER"
    sys.exit()
s=str(s)
import re
if re.search('[2~9]+',s):
        print "OVER"
else:
    l=s*4
    print l
我改进了下加入了 sys.exit()
原来输出字母虽然会打印over但实际上程序没结束
会引发莫名其妙的name error

论坛徽章:
0
32 [报告]
发表于 2009-02-27 16:04 |只看该作者

回复 #30 作业没做完 的帖子

对用digit函数
但是有另外一个问题
你需要的是一个字符窜 0和1 二进制的
不是数字
如果你输入的数字的 0011 那么他会自己变成11 那是你想要的结果么?

论坛徽章:
0
33 [报告]
发表于 2009-02-27 16:11 |只看该作者
原帖由 zhenglxd 于 2009-2-27 16:04 发表
对用digit函数
但是有另外一个问题
你需要的是一个字符窜 0和1 二进制的
不是数字
如果你输入的数字的 0011 那么他会自己变成11 那是你想要的结果么?


我试着运行了代码,得到的结果都是对的(汗……只要结果这种思想正确么 远目)
这个……我在S处加了STR,所以代码处理的时候是当作STR来对待的吧
应该没有0011变11的情况

囧!不是很了解DIGIT的用法啊 扶额 搜到说这种方法可以分辨数字和字母 就直接拿来用了= =||

论坛徽章:
0
34 [报告]
发表于 2009-02-27 20:37 |只看该作者

回复 #33 作业没做完 的帖子

isdigit
|  isdigit(...)
|      S.isdigit() -> bool
|      
|      Return True if all characters in S are digits
|      and there is at least one character in S, False otherwise.
返回True如果所有的字符是数字 并且至少要有一个字符,负责False
很神奇的东西啊 rawinput默认是输入str格式的
所以加不加str都是str
这个功能默认的把字符窜里的数字当数字识别的

论坛徽章:
0
35 [报告]
发表于 2009-02-28 11:13 |只看该作者
但是如果我不加STR。。。运行就会出错 很囧

论坛徽章:
0
36 [报告]
发表于 2009-02-28 11:58 |只看该作者
我没事。
>>> raw_input().isdigit()
a
False
>>> raw_input().isdigit()
123a
False

[LS,别用M$的垃圾了,用linux吧]

论坛徽章:
0
37 [报告]
发表于 2009-02-28 12:25 |只看该作者
原帖由 作业没做完 于 2009-2-27 15:36 发表
= = 我没有用那个IPROD 试……
我就用的
try:
    s = int(raw_input("Enter a 7-bit string to be checked: "))
except ValueError:
    print "OVER"
s=str(s)
import re
if re.search('[2~9]+',s):
...



是-不是~
你都已经2-9了, 为什么还要去int呢

import re
numStr = raw_input()
print re.match(r'^[01]+$', numStr.rstrip())

如果需要多次匹配的话先compile再match

论坛徽章:
0
38 [报告]
发表于 2009-02-28 18:50 |只看该作者

回复 #37 Lonki 的帖子

print re.match(r'^[01]+$', numStr.rstrip())
这个是只匹配01的吧
我刚学的正则那时候还不太会用你的是只匹配我的是排除匹配所以你的更加简练,比我写的好

但是为什么不用numStr.strip())
单用rstrip?
右边的空格无视 左边的就不处理了。。。?

论坛徽章:
0
39 [报告]
发表于 2009-02-28 19:02 |只看该作者
原帖由 zhenglxd 于 2009-2-28 18:50 发表
print re.match(r'^[01]+$', numStr.rstrip())
这个是只匹配01的吧
我刚学的正则那时候还不太会用你的是只匹配我的是排除匹配所以你的更加简练,比我写的好

但是为什么不用numStr.strip())
单用rstrip?
...



不是要判断是否是二进制的字符串么??? 反正大同小异.
收尾空白用正则式判断了. 只是想用rstrip去掉\r\n

论坛徽章:
0
40 [报告]
发表于 2009-02-28 21:55 |只看该作者

回复 #39 Lonki 的帖子

原来如此又学到了,你的头像是暗黑伊布吗? 以后就叫你小黑了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP