python - 如何检查重复的元音

标签 python python-3.x

我是 python 的新手,我遇到了问题 if then else 语句,我只得到“没有重复的元音”,这意味着我的 rep_vowel 仍然返回 0

所以程序规则如下。

如果没有元音出现在其旁边(例如 hello),则打印:

no vowel repeats

如果一个元音按顺序重复至少一次(例如 committee),则打印一条消息指示哪个元音重复:

only vowel e repeats

如果不止一个元音重复(例如 green door)则打印:

more than one vowel repeats

忽略大写 - 小写差异:假设所有输入总是小写

answer = input("Enter a string: ")
rep_vowel = 0
i = 0
length_Answer = len(answer)
next_string = 1
curChar = answer[0+rep_vowel]

for i in range(0,length_Answer):
    if answer[0 + i] in ["a","e","i","o","u"]:
    i =+ 1 
    next_string = answer[0+i+i]

    if next_string == answer:
        rep_vowel =+ 1

if rep_vowel == 0:
    print("no repeating vowles")
elif rep_vowel > 1:
    print("more than 1 repeating vowels")
else:
    print ("the letter "+ str(curChar) +" repeats")

最佳答案

你有一些错误,所以我会尝试解决其中的几个错误:

  1. 你做了很多 [0 + something] 索引,这是没用的,因为 0 + something 总是等于 something,所以你应该用 [something]

  2. 做索引
  3. i 的值更改为 i += 1 是不好的,因为您已经在循环中增加了它

  4. 要找到匹配项,您只需将当前字母与下一个字母进行匹配即可,如果两者相同且都是元音字母,则您已找到匹配项。

  5. 您正在初始化不必要的变量,例如 i = 0,只是为了在下一行中覆盖它们

将所有这些加在一起:

answer = input("Enter a string: ")
vowels = "aeiou"
repeats = [] # this list will hold all repeats of vowels

for i in range(len(answer) - 1): # i'll explain the -1 part at the end
    if answer[i] in vowels and answer[i] == answer[i + 1]:
        repeats.append(answer[i])

if len(repeats) == 0:
    print("no repeating vowles")
elif len(repeats) > 1:
    print("more than 1 repeating vowels")
else:
    print("the letter " + repeats[0] + " repeats")

这仍然没有考虑所有可能的输入,但它应该让您开始使用最终解决方案(或者这可能就足够了)。例如,输入 teest 将给出正确的结果,但输入 teeest 则不会(取决于您对正确的定义)。

关于 len(answer-1) 范围,那只是为了确保我们在执行 answer[i + 1] 时不会越界,所以我们停在倒数第二个字母上。

关于python - 如何检查重复的元音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50894960/

相关文章:

python - Python 中的函数乘法

python - 在 Mac OS 上从 transformers 类导入管道函数时,Jupyter 内核死机

python - 在 python 3.1 中编辑单个 .txt 行

python - 从数据帧中删除存储在变量中的系列

python-3.x - 变量 "foo_class"作为类型无效,但为什么呢?

python - 使用 GetIndex() 函数

python - dbf 到 xls - 第一个非标题行未写入

python - 定义查询模型时使用的表达式

python - 试图处理 logging.error

python - 如果字符串太长,则无法从功率计获得响应