待时而动 发表于 2020-5-27 16:14:49

萌新求助,这段代码为什么能正常运行,但是却无法输出result

本帖最后由 待时而动 于 2020-5-27 16:27 编辑

我找了两个小时,还是不知道问题出在哪里,
在这个函数外,str1=str1+str2是可以实现的,但是在这个函数里面,result=result+str0就不行了,result是空字符串,但是我如果在后面打印str0,还是能打印出来str0,不知道为什么。
python萌新在线等大佬

代码如下:
def fun1(str0):
    length=len(str0)-1
    result=''
    x=-1
    list_judge=[]
    i=-1
    times=0

    def fun2(a):#判断是否为形式
      list_0=
      nonlocal x
      nonlocal list_judge
      x=x+1
      list_judge.append(a)
      if list_judge != list_0:
            list_judge.clear()
            return 2
      elif list_judge==list_0:
            list_judge.clear()
            return 1
      else:
            return 0
      
    whilei < length:#获取符合形式的九个字母中间的小写字母
      i += 1
      m=str0.islower()
      t=fun2(m)
      if t==1:
            i -= 8
            x=-1
            result=result+str0
      elif t==2:
            i = i - x
            x = -1
    return result

更新,输入的测试代码如下

str1='aMSAaSAFoomaldmMASDmMMMaOWQo'
fun1(str1)

Twilight6 发表于 2020-5-27 16:17:38

你是输入什么拿来测试的

热气球 发表于 2020-5-28 00:13:45

str1='aMSAaSAFoomaldmMASDmMMMaOWQo'
print("result:",fun1(str1))
我这样测试有结果输出呢,怎么会没结果输出呢?
result: aa

Stubborn 发表于 2020-5-28 00:28:37

本帖最后由 Stubborn 于 2020-5-28 00:35 编辑

实现的功能是什么? 课后题的解密?

import re
print(re.findall("{3}(){3}", str1))

str1='aMSAaSAFoomaldmMASDmMMMaOWQo'
print("result:",fun1(str1))




验算了,两个都可以返回aa结果,没有错呀,怎么不能返回的



Tip0 发表于 2020-5-28 00:31:36

Stubborn 发表于 2020-5-28 00:28
实现的功能是什么? 课后题的解密?

大佬这么晚还没睡

Stubborn 发表于 2020-5-28 00:34:05

Tip0 发表于 2020-5-28 00:31
大佬这么晚还没睡

菜鸟,菜鸟,萌新都算不上

待时而动 发表于 2020-5-28 03:38:24

谢谢各位,我明白我哪里搞错了,返回了结果我没打印出来,所以以为没返回。

一抹心尘 发表于 2020-11-1 15:36:48

楼主,你好,我把你的代码运行验算了两遍,我没有改你的代码就是直接复制,然后,都返回了结果,我检查了,
都是返回的字符串'aa'结果,这是没有问题的,你看看是不是你要返回的东西,你没有设置好print函数,没有打印出来,
导致你以为它没有运算或者返回出来,没有你所预设的返回值。导致你误以为它出现了代码或者逻辑的漏洞问题,
实际上这个代码是没有问题的。
页: [1]
查看完整版本: 萌新求助,这段代码为什么能正常运行,但是却无法输出result