鱼C论坛

 找回密码
 立即注册
查看: 1714|回复: 7

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

[复制链接]
发表于 2020-5-27 16:14:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

代码如下:
  1. def fun1(str0):
  2.     length=len(str0)-1
  3.     result=''
  4.     x=-1
  5.     list_judge=[]
  6.     i=-1
  7.     times=0

  8.     def fun2(a):#判断是否为[TFFFTFFFT]形式
  9.         list_0=[True,False,False,False,True,False,False,False,True]
  10.         nonlocal x
  11.         nonlocal list_judge
  12.         x=x+1
  13.         list_judge.append(a)
  14.         if list_judge[x] != list_0[x]:
  15.             list_judge.clear()
  16.             return 2
  17.         elif list_judge==list_0:
  18.             list_judge.clear()
  19.             return 1
  20.         else:
  21.             return 0
  22.         
  23.     while  i < length:#获取符合形式的九个字母中间的小写字母
  24.         i += 1
  25.         m=str0[i].islower()
  26.         t=fun2(m)
  27.         if t==1:
  28.             i -= 8
  29.             x=-1
  30.             result=result+str0[i+4]
  31.         elif t==2:
  32.             i = i - x
  33.             x = -1
  34.     return result
复制代码

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

str1='aMSAaSAFoomaldmMASDmMMMaOWQo'
fun1(str1)
最佳答案
2020-5-28 00:28:37
本帖最后由 Stubborn 于 2020-5-28 00:35 编辑

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

  1. import re
  2. print(re.findall("[a-z][A-Z]{3}([a-z])[A-Z]{3}[a-z]", str1))

  3. str1='aMSAaSAFoomaldmMASDmMMMaOWQo'
  4. print("result:",fun1(str1))
复制代码




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



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-27 16:17:38 | 显示全部楼层
你是输入什么拿来测试的  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 00:13:45 | 显示全部楼层
str1='aMSAaSAFoomaldmMASDmMMMaOWQo'
print("result:",fun1(str1))
我这样测试有结果输出呢,怎么会没结果输出呢?
result: aa
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 00:28:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Stubborn 于 2020-5-28 00:35 编辑

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

  1. import re
  2. print(re.findall("[a-z][A-Z]{3}([a-z])[A-Z]{3}[a-z]", str1))

  3. str1='aMSAaSAFoomaldmMASDmMMMaOWQo'
  4. print("result:",fun1(str1))
复制代码




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



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 00:31:36 | 显示全部楼层
Stubborn 发表于 2020-5-28 00:28
实现的功能是什么? 课后题的解密?

大佬这么晚还没睡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 00:34:05 | 显示全部楼层
Tip0 发表于 2020-5-28 00:31
大佬这么晚还没睡

菜鸟,菜鸟,萌新都算不上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-28 03:38:24 | 显示全部楼层
谢谢各位,我明白我哪里搞错了,返回了结果我没打印出来,所以以为没返回。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-1 15:36:48 | 显示全部楼层
楼主,你好,我把你的代码运行验算了两遍,我没有改你的代码就是直接复制,然后,都返回了结果,我检查了,
都是返回的字符串'aa'结果,这是没有问题的,你看看是不是你要返回的东西,你没有设置好print函数,没有打印出来,
导致你以为它没有运算或者返回出来,没有你所预设的返回值。导致你误以为它出现了代码或者逻辑的漏洞问题,
实际上这个代码是没有问题的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-11 05:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表