gpt4 book ai didi

python - 如果一个字符具有特定字母,则一个字符一个字符检测,然后计算它们的数量

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:23 27 4
gpt4 key购买 nike

我正在尝试编写一个程序来检测您键入的单词中有多少个元音字母。这是我的源代码(我有多个代码):

a = input("word - ").lower()
for i in range(1, len(a)+1):
if a[str(i)] == "a" or "e" or "i" or "o" or "u":
print("ok")
else:
print("no")`

我得到了错误:

TypeError: string indices must be integers

第二个:

a = input("word - ").lower()
for letter in a:
if letter == "a" or "e" or "i" or "o" or "u":
value = 0
value = value + 1
print(value)

还给我一个错误:

TypeError: string indices must be integers

第三个有点复杂:

a = input("rec - ").lower()
for i in range(1, len(a)+1):
if a[str(i)] == "a":
print("yes a")
elif a[str(i)] == "e":
print("yes e")
elif a[str(i)] == "i":
print("yes i")
elif a[str(i)] == "o":
print("yes o")
elif a[str(i)] == "u":
print("yes u")

我正在 Repl.it 上使用 Python 3.6.1

您可以在 my profile 查看完整的源代码.

感谢您的帮助。谢谢!

最佳答案

在第一个和最后一个示例中,您使用字符串作为索引 (a[str(i)])。然而,指数总是整数。请记住,第一个索引始终为 0,而不是 1。您的 for 循环从 1 开始迭代。由于第一个元素的索引为 0,因此最后一个元素的索引为 len(array) - 1,这意味着您的 for-循环应该只迭代到 len(a)。 for 循环索引的问题也适用于最后一个示例。

在第二个示例中,您没有正确使用 or 语句。你不能那样比较它们。你必须这样写:

if letter == "a" or letter == "e" or letter == "i" or letter == "o" or letter == "u":

要缩短这个,只需写:

if letter in "aeiou":

在这里,您检查字母是否在字符串“aeiou”中。

在您的第二个示例中,每次找到元音时您还将值重置为零。这将导致值仅为 1 或未定义。将 value = 0 放在 for 循环之前,它应该可以工作。

关于python - 如果一个字符具有特定字母,则一个字符一个字符检测,然后计算它们的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53967852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com