16

文字列内の特定の文字の出現回数を数えようとしていますが、出力が間違っています。

これが私のコードです:

inputString = str(input("Please type a sentence: "))
a = "a"
A = "A"
e = "e"
E = "E"
i = "i"
I = "I"
o = "o"
O = "O"
u = "u"
U = "U"
acount = 0
ecount = 0
icount = 0
ocount = 0
ucount = 0

if A or a in stri :
     acount = acount + 1

if E or e in stri :
     ecount = ecount + 1

if I or i in stri :
    icount = icount + 1

if o or O in stri :
     ocount = ocount + 1

if u or U in stri :
     ucount = ucount + 1

print(acount, ecount, icount, ocount, ucount)

文字を入力するとA、出力は次のようになります。1 1 1 1 1

4

29 に答える 29

23

あなたが望むことは、次のように非常に簡単に行うことができます:

>>> mystr = input("Please type a sentence: ")
Please type a sentence: abcdE
>>> print(*map(mystr.lower().count, "aeiou"))
1 1 0 0 0
>>>

あなたがそれらを知らない場合のために、ここに と のリファレンスがmapあり*ます。

于 2013-11-14T00:07:24.897 に答える
10
>>> sentence = input("Sentence: ")
Sentence: this is a sentence
>>> counts = {i:0 for i in 'aeiouAEIOU'}
>>> for char in sentence:
...   if char in counts:
...     counts[char] += 1
... 
>>> for k,v in counts.items():
...   print(k, v)
... 
a 1
e 3
u 0
U 0
O 0
i 2
E 0
o 0
A 0
I 0
于 2013-11-14T00:07:58.633 に答える
6

使うCounter

>>> from collections import Counter
>>> c = Counter('gallahad')
>>> print c
Counter({'a': 3, 'l': 2, 'h': 1, 'g': 1, 'd': 1})
>>> c['a']    # count of "a" characters
3

CounterPython 2.7 以降でのみ使用できます。Python 2.5で動作するはずのソリューションは、defaultdict

>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for c in s:
...     d[c] = d[c] + 1
... 
>>> print dict(d)
{'a': 3, 'h': 1, 'l': 2, 'g': 1, 'd': 1}
于 2013-11-14T00:07:35.747 に答える
5

if A or a in striは、if A or (a in stri)どちらif True or (a in stri)が常にであり、各ステートメントTrueで同じであることを意味します。if

あなたが言いたかったのはif A in stri or a in stri.

これはあなたの間違いです。唯一のものではありません-文字列に母音が一度含まれているかどうかを確認するだけなので、母音を実際に数えているわけではありません。

他の問題は、あなたのコードがそれを行うための最良の方法とはほど遠いことです。たとえば、これを参照してください:生の入力から母音を数えます。そこには、特定のケースに簡単に採用できるいくつかの優れたソリューションがあります。最初の回答を詳しく見ていくと、正しい方法でコードを書き直すことができると思います。

于 2013-11-14T00:07:41.460 に答える
0
count = 0
s = "azcbobobEgghakl"
s = s.lower()
for i in range(0, len(s)):
    if s[i] == 'a'or s[i] == 'e'or s[i] == 'i'or s[i] == 'o'or s[i] == 'u':
        count += 1
print("Number of vowels: "+str(count))
于 2016-10-03T13:09:51.083 に答える
0
sentence = input("Enter a sentence: ").upper()
#create two lists
vowels = ['A','E',"I", "O", "U"]
num = [0,0,0,0,0]

#loop through every char
for i in range(len(sentence)):
#for every char, loop through vowels
  for v in range(len(vowels)):
    #if char matches vowels, increase num
      if sentence[i] == vowels[v]:
        num[v] += 1

for i in range(len(vowels)):
  print(vowels[i],":", num[i])
于 2016-07-11T04:12:17.553 に答える
0
def vowel_count(string):
    
    string = string.lower()
    count = 0
    vowel_found = False 
    
    for char in string:
        if char in 'aeiou': #checking if char is a vowel
            count += 1
            vowel_found = True
            
    if vowel_found == False:
        print(f"There are no vowels in the string: {string}")
            
    return count

string = "helloworld"

result = vowel_count(string) #calling function

print("No of vowels are: ", result)
于 2021-05-10T18:29:36.050 に答える
-1
def count_vowel():
    cnt = 0
    s = 'abcdiasdeokiomnguu'
    s_len = len(s)
    s_len = s_len - 1
    while s_len >= 0:
        if s[s_len] in ('aeiou'):
            cnt += 1
        s_len -= 1
    print 'numofVowels: ' + str(cnt)
    return cnt

def main():
    print(count_vowel())

main()
于 2015-06-23T03:34:25.130 に答える
-1
count = 0
name=raw_input("Enter your name:")
for letter in name:
    if(letter in ['A','E','I','O','U','a','e','i','o','u']):
       count=count + 1
print "You have", count, "vowels in your name."
于 2015-09-03T08:17:19.010 に答える
-1
  1 #!/usr/bin/python
  2 
  3 a = raw_input('Enter the statement: ')
  4 
  5 ########### To count number of words in the statement ##########
  6 
  7 words = len(a.split(' '))
  8 print 'Number of words in the statement are: %r' %words 
  9 
 10 ########### To count vowels in the statement ##########
 11 
 12 print '\n' "Below is the vowel's count in the statement" '\n'
 13 vowels = 'aeiou'
 14 
 15 for key in vowels:
 16     print  key, '=', a.lower().count(key)
 17 
于 2016-04-01T07:38:25.377 に答える