gpt4 book ai didi

python - 从原始输入中计算元音

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:20 26 4
gpt4 key购买 nike

我有一个家庭作业问题,要求通过原始输入读取一个字符串并计算该字符串中有多少个元音字母。这是我到目前为止所拥有的,但我遇到了一个问题:

def vowels():
vowels = ["a","e","i","o","u"]
count = 0
string = raw_input ("Enter a string: ")
for i in range(0, len(string)):
if string[i] == vowels[i]:
count = count+1
print count

vowels()

它可以很好地计算元音,但是由于 if string[i] == vowels[i]:,随着 i 不断增加,它只会计算一个元音一次在范围中。如何更改此代码以检查输入的字符串中的元音字母而不会遇到此问题?

最佳答案

运算符

您可能想使用 in 运算符而不是 == 运算符 - in 运算符可让您检查是否有特定的项目在序列/集合中。

1 in [1,2,3] # True
1 in [2,3,4] # False
'a' in ['a','e','i','o','u'] # True
'a' in 'aeiou' # Also True

一些其他评论:

in 运算符在与 set 一起使用时效率最高,set 是一种专门设计用于快速处理“项目 X 是否属于该项目集的一部分”的数据类型"种操作。*

vowels = set(['a','e','i','o','u'])

*dict 使用 in 也很高效,它检查字典中是否存在键。

遍历字符串

字符串在 Python 中是一种序列类型,这意味着您无需费力地获取长度然后使用索引 - 您只需遍历字符串即可获取每个字符反过来:

例如:

for character in my_string:
if character in vowels:
# ...

用字符串初始化一个集合

在上文中,您可能已经注意到创建具有预设值的集合(至少在 Python 2.x 中)涉及到使用列表。这是因为 set() 类型构造函数采用一系列项。您可能还注意到,在上一节中,我提到字符串是 Python 中的序列——字符序列。

这意味着如果你想要一组字符,你实际上可以将这些字符的字符串传递给set()构造函数——你不需要不需要列出一个单字符串。换句话说,下面两行是等价的:

set_from_string = set('aeiou')
set_from_list = set(['a','e','i','o','u'])

整洁吧? :) 但是请注意,如果您尝试制作一组​​字符串,而不是一组字符,这也会对您产生影响。例如,以下两行相同:

set_with_one_string = set(['cat'])
set_with_three_characters = set('cat')

前者是一个只有一个元素的集合:

'cat' in set_with_one_string # True
'c' in set_with_one_string # False

而后者是一个包含三个元素的集合(每个元素一个字符):

'c' in set_with_three_characters` # True
'cat' in set_with_three_characters # False

区分大小写

比较字符区分大小写。 'a' == 'A' 为 False,就像 'aeiou' 中的'A' 一样。为了解决这个问题,您可以转换您的输入以匹配您要比较的内容的大小写:

lowercase_string = input_string.lower()

关于python - 从原始输入中计算元音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719600/

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