鱼C论坛

 找回密码
 立即注册
查看: 1302|回复: 8

[已解决]自己的代码找不出错误原因

[复制链接]
发表于 2020-4-19 12:35:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 悠悠2264 于 2020-4-19 12:39 编辑

1.split()是把输入的按空格切开来,返回一个列表。后面for循环时len(i)返回的是列表的长度,不是字符串的长度,因此就不会执行for循环。所以不需要这个split()
2.你这个只能判断首尾字符是否符合,中间字符和倒数第二个是元音还是辅音,并不符合题目要求的判断辅元辅元(一个或多个字母)。
这个是正确代码:
  1. r=input()
  2. num = 0 #num用来记录元辅次数
  3. for i in range(len(r)): #迭代字符索引
  4.     if i == 0: #判断是否为第一个字符
  5.         if r[i] != 'aeiou': #判断第一个字符是否是元音字母,是num+1并退出此次循环,否不加并退出循环
  6.             num +=1
  7.             continue
  8.     else:
  9.         break
  10.     if (r[i] in 'aeiou') == (r[i-1] in 'aeiou'): #判断是否和前一个字母的元辅相等,相等则退出此次循环
  11.         continue
  12.     num+=1 #不相等则num+1
  13. if(num == 4): #num等于4,格式就是元辅元辅,打印yes,否则打印no
  14.     print("yes")
  15. else:
  16.     print("no")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 17:04:17 | 显示全部楼层
澍梵. 发表于 2020-4-19 15:52
感谢给予我的帮助,你修改后的代码还是有错误的,题干中说单词的第二段由一个或多个元音字母组成,第三段 ...


第一段是辅音,那么第二段和第一段不一样,就肯定是元音;第三段和第二段不一样,就是辅音;第四段和第三段不一样,就是元音。这样看是可以的,样例输入输出也都是正确的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 08:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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