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()
并完成它。