0

ここではPythonの初心者です。部分文字列が文字列である回数をカウントするプログラムを作成していますが、エラー メッセージ TypeError: a is undefined が表示され続けます。/googled で同様のスレッドを見てきましたが、通常、コードは複雑でわかりにくいものです。

これが私のコードです:

def stringcount(char, word):
for eachChar in word:
    if char==eachChar:
        count=count+1
        return count
    print count

stringcount('a', 'apple')

どうもありがとう!

4

3 に答える 3

4
def stringcount(c, word):
    count = 0
    for eachChar in word:
        if c==eachChar:
            count=count+1

    return count

>>> stringcount('a', 'apple')
1
>>>

ただし、この場合は、次を使用するだけです。

>>> 'apple'.count('a')
1
于 2012-07-25T19:44:02.613 に答える
2

このコードは危険です。初期化していないcountためcount、名前空間に変数として存在する場合は、毎回異なる結果が得られる可能性があります。たとえば、関数を複数回呼び出すと、countはリセットされず、2回目に関数が呼び出されると、が返され2ます。次のコードははるかに安全で機能します。

def stringcount(char, word):
    count = 0
    for eachChar in word:
        if char==eachChar:
            count += 1
    return count

>>> stringcount('a', 'apple')
1

'apple'.count('a')また、同じことを簡単に行うことができることにも注意してください。

素敵なワンライナーは同じことをします:

def stringcount(char, word):
    return sum(x==char for x in word)
>>> stringcount('p', 'apple')
2
于 2012-07-25T19:46:27.260 に答える
0

プログラミング演習のためにこれを作成していない場合は、次のようにすることができます。

def stringcount(c, word):
    return word.count(c)

print stringcount("a", "apple")

ドキュメント:http ://docs.python.org/library/string.html#string.count

于 2012-07-25T19:47:09.143 に答える