python - 如何检查重复的元音
问题描述
我对 python 很陌生,我的 if then else 语句有问题,我只得到“没有重复的元音”,这意味着我的 rep_vowel 仍然返回 0
所以程序规则如下。
如果没有元音出现在它自己旁边(例如你好),那么打印:
no vowel repeats
如果恰好一个元音按顺序重复至少一次(例如委员会),则打印一条消息,指示哪个元音重复:
only vowel e repeats
如果不止一个元音重复(例如绿色门),则打印:
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")
解决方案
你有一些错误,所以我会尝试解决其中的几个:
你做了很多
[0 + something]
索引,这是没用的,因为0 + something
总是等于something
,所以你应该只做索引[something]
更改
i
with的值i += 1
是不好的,因为您已经在循环中增加它要找到匹配项,您只需将当前字母与下一个字母匹配,如果两者相同并且它们也是元音,则您已找到匹配项。
您正在初始化不必要的变量,例如
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]
,因此我们将停在倒数第二个字母上。
推荐阅读
- microservices - 在 saga 模式中,每个微服务的本地事务是否会立即影响数据库?
- jenkins - Mitmproxy 从 https 降级到 http
- sql - 按日期选择表现最好的销售代表
- javascript - 在浏览器 JavaScript 中使用 webpack 构建的库
- python - 从包导入后卸载 *
- python - 在 Pandas 中填充数据
- performance - 快速生成批量记录
- sql - 需要一个约束来有条件地避免某些唯一性
- consul - 几次重启后,kubernetes StatefulSet POD 中的 Microsoft Orleans 崩溃
- javascript - 搜索索引 npm