python问题求答案啊!急!
PROBLEM: Given a sentence (up to 1024 characters long), output the following:
#1) The number of different letters. This will be a number from 1 to 26, inclusive.
2) The number of vowels. Vowels are the letters a, e, i, o, and u.
3) The number of uppercase letters.
4) The number of times that the most frequent letter appears. There is no distinction between
lowercase and uppercase letters.
5) The longest word in the sentence. If there is a tie, print the one that appears first when sorting
these words alphabetically without regard to lowercase and uppercase.
INPUT: One line of data, containing a sentence, up to 1024 characters long.
OUTPUT: Print the five statistics specified above in that order.
SAMPLE INPUT
The quick brown fox, named Roxanne, jumped over Bruno, a lazy dog.
SAMPLE OUTPUT
#1. 25
2. 19
3. 3
4. 6
5. Roxanne
已关注,能帮我看看吗?
以下为代码,有用点采纳
sentence = input().strip()
letters = {}
vowels = 0
uppercase = 0
longest_word = ""
for char in sentence:
if char.isalpha():
if char.lower() in letters:
letters[char.lower()] += 1
else:
letters[char.lower()] = 1
if char.lower() in "aeiou":
vowels += 1
if char.isupper():
uppercase += 1
words = sentence.split()
for word in words:
if len(word) > len(longest_word):
longest_word = word
elif len(word) == len(longest_word) and word < longest_word:
longest_word = word
print("#1.", len(letters))
print("2. ", vowels)
print("3. ", uppercase)
print("4. ", max(letters.values()))
print("5. ", longest_word)
sentence = input("Please enter a sentence:")
# Count the number of different letters
letter_count = len(set(sentence))
# Count the number of vowels
vowel_count = 0
for letter in sentence:
if letter in "aeiouAEIOU":
vowel_count += 1
# Count the number of uppercase letters
uppercase_count = 0
for letter in sentence:
if letter.isupper():
uppercase_count += 1
# Count the number of times the most frequent letter appears
letter_frequency = {}
for letter in sentence:
if letter in letter_frequency:
letter_frequency[letter] += 1
else:
letter_frequency[letter] = 1
most_frequent_letter = max(letter_frequency, key=letter_frequency.get)
most_frequent_letter_count = letter_frequency[most_frequent_letter]
# Find the longest word
words = sentence.split(" ")
longest_word = max(words, key=len)
# Output the results
print("#1. {}".format(letter_count))
print("2. {}".format(vowel_count))
print("3. {}".format(uppercase_count))
print("4. {}".format(most_frequent_letter_count))
print("5. {}".format(longest_word))