vowels = 'aeiou'

# take input from the user
ip_str = raw_input("Enter a string: ")

# make it suitable for caseless comparisions
ip_str = ip_str.casefold()

# make a dictionary with each vowel a key and value 0
count = {}.fromkeys(vowels,0)

# count the vowels
for char in ip_str:
    if char in count:
        count[char] += 1

print(count)


错误:

    Line - ip_str = ip_str.casefold()
AttributeError: 'str' object has no attribute 'casefold'

最佳答案

Python 2.6不支持str.casefold()方法。

str.casefold() documentation


  版本3.3中的新功能。


您需要切换到Python 3.3或更高版本才能使用它。

除了您自己实现Unicode casefolding算法之外,没有其他好的选择。见How do I case fold a string in Python 2?

但是,由于您在此处处理字节串(而不是Unicode),因此可以只使用str.lower()并完成它。

08-27 18:36