0

ユーザーが単語を入力するプログラムを作成する必要があり、その単語の個々の文字に対して何かを行う必要があります。一度に 1 文字だけ入力することはできません。

IE 誰かが「テスト」と入力すると、それが 4 文字の単語であることをプログラムに認識させる方法と、それを分割する方法、たとえば、プログラムで各変数を異なる文字に設定する 4 つの変数を作成するようにすることができます。また、より大きな単語とより小さな単語を処理できる必要があります。

for ステートメントを使用できますか? For letter のようなものは変数へのその文字を ste しますが、それは 20 文字の文字のようなもので、プログラムはどのようにしてすべての変数名などを取得するのでしょうか?

4

5 に答える 5

3

このようなことを意味しますか?

>>> s = 'four'
>>> l = list(s)
>>> l
['f', 'o', 'u', 'r']
>>>

補遺:

それが(明らかに)あなたが望んでいたことだとしても、文字列は事実上あらゆるサイズの単語を保持できるため、おそらく必要ないでしょsう。キャラクターごとに個別に名前が付けられた一連の変数。1 つには、使用する有効な変数名がわからないため、プログラムの残りの部分を作成するのが難しくなります。

文字ごとに個別の変数を持たなくてもよい理由は、単一の文字列に任意の数の文字を含めることができ、空にすることもできるためです。Python の組み込みlen()関数は、文字列に適用された場合、文字列内の文字数のカウントを返すため、len(s)上記の結果は4.

0文字列内の任意の文字は、角括弧の間およびlen(s)-1角括弧内の整数でインデックスを付けることでランダムにアクセスできます。そのため、3 番目の文字を参照するには、 s[2]. インデックスを、文字列の先頭からのオフセットまたは文字と考えると便利です。

それでも、次の簡単な例に示すように、ループ内の文字列内の各文字を使用せずに繰り返し処理できるため、Python ではインデックスを使用する必要がないことがよくあります。for

num_vowels = 0
for ch in s:
    if ch in 'aeiou':
        num_vowels += 1
print 'there are', num_vowels, 'vowel(s) in the string', s

Python には、文字列を処理する際にさらに役立つ多くの機能や組み込み機能もあり (実際、上記の例を単純化することもできます)、Python 言語とその多くのライブラリに慣れるにつれて、最終的にそれらを学習することになります。

于 2013-02-02T22:36:28.703 に答える
1

文字列を反復すると、次のような個々の文字が返されます

for c in thestring:
    print(c)

本当に必要な場合は、これを使用して文字をリストに入れることができます。これは順序を保持しますlist(string)が、より良い選択です (dict や set などの順序付けされていない型は順序を保証しないことに注意してください)。

于 2013-02-02T22:33:02.180 に答える
1

これらのいずれも行う必要はありません。Python では、角かっこを使用して文字列の文字にアクセスできます。

>>> word = "word"
>>> print(word[0])
w
>>> print(word[3])
d
>>> print(len(word))
4
于 2013-02-02T22:52:47.503 に答える
0
x = 'test'   
counter = 0   
while counter < len(x): 
    print x[counter]  # you can change this to do whatever you want to with x[counter]
    counter += 1
于 2013-02-02T23:10:46.817 に答える
0

各文字を個別の変数に割り当てたくありません。そうすると、定義した変数の数を知ることさえできずに、残りのプログラムを作成することになります! これは、文字列全体を一度に処理するよりもさらに悪い問題です。

代わりにやりたいことは、文字列を保持する変数を1 つだけ持つことですが、インデックスを使用してその中の個々の文字を参照できます。文字列が にsあり、s[0]が最初の文字、s[1]が 2 番目の文字などであるとします。チェックすることで、数字がどこまで進んでいるかを調べることができますlen(s) - 1(インデックスは 0 から始まるため、長さ 1 の文字列の最大インデックスは 0 であり、長さ 2 の文字列の最大インデックスは 1 など)。

len(s)これは、変数名を生成し、それらすべてを文字列の一部に割り当て、参照する必要がある変数を知る方法を理解するよりもはるかに扱いやすいものです。

ただし、文字列は不変であるため、に割り当てs[1]2 番目の文字を変更することはできません。それを行う必要がある場合は、代わりにたとえばでリストを作成できますl = list(s)。次に2 番目の文字で、リスト内の要素を変更するためにl[1]割り当てることができます。l[1] = something完了したら、新しい文字列を取得できますs_new = ''.join(l)(joinは、引数として渡された一連の文字列を結合して文字列を作成します。左側で呼び出された文字列を、各要素間のセパレータとして使用します。この場合、空の文字列をセパレータとして使用して単一文字列のリストを結合しているため、すべての単一文字列を単一の文字列に結合するだけです)。

于 2013-02-02T23:04:12.810 に答える