我怎样才能让它更短更好?
How can I make it shorter and better?
我有一个关于循环中字符串的作业,我需要找出输入中有多少 (a,e,i,o,u)。
我已经做到了,但我认为它太长了。我想缩短它,但我不知道该怎么做。
这是我的代码:
x=input("enter the taxt that you need me to count how many (a,e,i,o,u) in it:")
a=len(x)
x1=0
x2=0
x3=0
x4=0
x5=0
for i in range(a):
h=ord(x[i])
if h == 105:
x1+=1
elif h == 111:
x2+=1
elif h == 97:
x3+=1
elif h == 117:
x4+=1
elif h == 101:
x5+=1
print("There were",x3,"'a's")
print("There were",x5,"'e's")
print("There were",x1,"'i's")
print("There were",x2,"'o's")
print("There were",x4,"'u's")
而不是 5
用于计数的变量和 5
用于比较的常量使用字典:
h = {105: 0, 111: 0, 97: 0, 117: 0, 101: 0}
或者 - 更好 -
h = {'i': 0, 'o': 0, 'a': 0, 'u': 0, 'e': 0}
因此您的完整代码将是
x = input("Enter the text that you need me to count how many (a,e,i,o,u) in it: ")
h = {'i': 0, 'o': 0, 'a': 0, 'u': 0, 'e': 0}
for i in x: # there is no need to index characters in the string
if i in h:
h[i] += 1
for char in h:
print("There were {} '{}'s".format(h[char], char))
根据this question的简单方法:
x = input("Enter the text that you need me to count how many (a,e,i,o,u) are in it:")
print("There were", x.count('a'), "'a's")
print("There were", x.count('e'), "'e's")
print("There were", x.count('i'), "'i's")
print("There were", x.count('o'), "'o's")
print("There were", x.count('u'), "'u's")
您可以只在字符串中定义您关心的字符列表(元音字母),然后使用 dictionary comprehension。此代码将打印出您想要的内容,并为您留下存储在名为 vowel_count
:
的字典中的所有值
vowels = 'aeiou'
x=input("enter the taxt that you need me to count how many (a,e,i,o,u) in it:")
vowel_count = {vowel: x.count(vowel) for vowel in vowels}
for vowel in vowels:
print("There were ",vowel_count[vowel]," '", vowel, " 's")
我有一个关于循环中字符串的作业,我需要找出输入中有多少 (a,e,i,o,u)。 我已经做到了,但我认为它太长了。我想缩短它,但我不知道该怎么做。
这是我的代码:
x=input("enter the taxt that you need me to count how many (a,e,i,o,u) in it:")
a=len(x)
x1=0
x2=0
x3=0
x4=0
x5=0
for i in range(a):
h=ord(x[i])
if h == 105:
x1+=1
elif h == 111:
x2+=1
elif h == 97:
x3+=1
elif h == 117:
x4+=1
elif h == 101:
x5+=1
print("There were",x3,"'a's")
print("There were",x5,"'e's")
print("There were",x1,"'i's")
print("There were",x2,"'o's")
print("There were",x4,"'u's")
而不是 5
用于计数的变量和 5
用于比较的常量使用字典:
h = {105: 0, 111: 0, 97: 0, 117: 0, 101: 0}
或者 - 更好 -
h = {'i': 0, 'o': 0, 'a': 0, 'u': 0, 'e': 0}
因此您的完整代码将是
x = input("Enter the text that you need me to count how many (a,e,i,o,u) in it: ")
h = {'i': 0, 'o': 0, 'a': 0, 'u': 0, 'e': 0}
for i in x: # there is no need to index characters in the string
if i in h:
h[i] += 1
for char in h:
print("There were {} '{}'s".format(h[char], char))
根据this question的简单方法:
x = input("Enter the text that you need me to count how many (a,e,i,o,u) are in it:")
print("There were", x.count('a'), "'a's")
print("There were", x.count('e'), "'e's")
print("There were", x.count('i'), "'i's")
print("There were", x.count('o'), "'o's")
print("There were", x.count('u'), "'u's")
您可以只在字符串中定义您关心的字符列表(元音字母),然后使用 dictionary comprehension。此代码将打印出您想要的内容,并为您留下存储在名为 vowel_count
:
vowels = 'aeiou'
x=input("enter the taxt that you need me to count how many (a,e,i,o,u) in it:")
vowel_count = {vowel: x.count(vowel) for vowel in vowels}
for vowel in vowels:
print("There were ",vowel_count[vowel]," '", vowel, " 's")