请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于group()的问题

10-12章节中matched=value.group()返回字符,所以后面if语句判断要采用int(matched) 判断操作;然是10-13章节中r1.group()为什么返回是数字8,而不是字符?

正在回答 回答被采纳积分+3

3回答

7七月 2018-05-10 13:28:52

怎么看出是数字8?有type一下结果吗?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕莱坞4103370 #1
    type 了下结果,果然是str, 看来python 运行结果不能只看表面, 它的结果是8, 脑子里认为应该是‘8’。 多谢老师提醒,后面注意多type检验下。
    
    另外借此请教老师: 我大学读的数学,参加工作6年搞的是地质勘探,现在转行
    学习python(自认为大学学习过C,有一定基础),以后往哪个方向发展比较好?学习过程老师能否给些建议?
    回复 有任何疑惑可以回复我~ 2018-05-10 20:48:45
提问者 慕莱坞4103370 2018-05-10 12:59:59
#10-12章代码
import re 
s = 'A4587kjh45JHF68' 
def convert(value): 
    matched = value.group() 
    if int(matched) >=6 : 
        return '9' 
    else: 
        return '0' 
r = re.sub('\d', convert, s) 
print(r) 

#10-13章代码 
import re 
s = '87jslkdjl45' 
r = re.search('\d', s) 
print(r.group())


0 回复 有任何疑惑可以回复我~
7七月 2018-05-09 06:34:20

可以贴一下代码吗?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕莱坞4103370 #1
    老师,请看下回答去的代码,左边是10-12章的,matched=value.group()返回字符; 右边是10-13章节的,r1.group()返回是数字8,而不是字符。
    回复 有任何疑惑可以回复我~ 2018-05-09 19:12:51
  • 提问者 慕莱坞4103370 #2
    10-12章代码
    import re
    
    s = 'A4587kjh45JHF68'
    
    def convert(value):
        matched = value.group()
        if int(matched) >=6 :
            return '9'
        else:
            return '0'
    
    r = re.sub('\d', convert, s)
    print(r)
    
    10-13章代码:
    import re
    s = '87jslkdjl45'
    r = re.search('\d', s)
    print(r.group())
    回复 有任何疑惑可以回复我~ 2018-05-09 19:17:24
  • 7七月 回复 提问者 慕莱坞4103370 #3
    麻烦格式化一下行么。。。
    回复 有任何疑惑可以回复我~ 2018-05-09 19:55:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信