8

「コアPythonプログラミング第2版」を読んでいると、「while」ループを使用して、一度に1文字ずつ文字列を印刷するように求められます。

whileループがどのように機能するかは知っていますが、何らかの理由でこれを行う方法がわかりません。私は周りを見回していて、forループを使用した例しか見ていません。

だから私がしなければならないこと:

ユーザーが入力します:

text = raw_input("Give some input:  ")

配列から各データを読み取る方法は知っていますが、文字列に対してそれを行う方法を思い出せません。

今必要なのは、文字列のすべての文字を一度に1つずつ出力するwhileループで動作することだけです。

len(text)を使用する必要があると思いますが、この問題でどのように使用するかは100%わかりません。

いくつかの助けは恐ろしいでしょう!これは非常に単純な問題だと思いますが、どういうわけか私はそれを思い付くことができません!

事前にThx!:)

4

9 に答える 9

10

インターネットはPythonのwhileループでいっぱいだと確信していますが、その一例は次のとおりです。

i=0

while i < len(text):
    print text[i]
    i += 1
于 2013-03-05T10:35:05.423 に答える
6

文字列には、次の目的で for ループを含めることができます。

for a in string:
    print a
于 2015-07-05T20:43:52.950 に答える
2

次の手順を試してください。

def procedure(input):
    a=0
    print input[a]
    ecs = input[a] #ecs stands for each character separately
    while ecs != input:
        a = a + 1
        print input[a]

それを使用するには、手順の使用方法を知る必要があり、機能しますが、最終的にエラーが発生するため、それも解決する必要があります.

于 2015-04-26T22:36:42.340 に答える
2

while他の回答では、ループ (またはループ)を使用して文字列を反復処理する必要があるコードが既に提供されていますがfor、2 つのタイプのループの違いを説明するのに役立つと思いました。

whileループは、特定の条件が満たされるまでコードを繰り返します。例えば:

import random

sum = 0
while sum < 100:
    sum += random.randint(0,100) #add a random number between 0 and 100 to the sum
    print sum

このコードは、合計が 100 以上になるまで、0 から 100 の間の乱数を追加し続けます。重要な点は、このループが 1 回だけ実行される可能性があること (最初の乱数が 100 の場合) または無限に実行される可能性があることです (それが続く場合)。乱数として 0 を選択します)。ループが完了するまで、ループが何回実行されるかは予測できません。

forループは基本的に while ループですが、あらかじめ設定した回数だけループを実行したい場合に使用します。Javaforループは通常、ある種のカウンター変数 (以下では を使用) を使用し、通常、とループiの類似性をより明確にします。whilefor

for (int i=0; i < 10; i++) { //starting from 0, until i is 10, adding 1 each iteration
    System.out.println(i);
}

このループはちょうど 10 回実行されます。これは、これを書くためのより良い方法です:

int i = 0;
while (i < 10) { //until i is 10
   System.out.println(i);
   i++; //add one to i 
}

for ループの最も一般的な使用法は、リスト (または文字列) を反復処理することです。これは、Python を使用すると非常に簡単になります。

for item in myList:
    print item

また

for character in myString:
    print character

ただし、forループを使用したくありませんでした。その場合、インデックスを使用して各文字を調べる必要があります。このような:

print myString[0] #print the first character
print myString[len(myString) - 1] # print the last character.

forループとカウンターのみを使用してループを作成できること、whileおよびインデックスによって個々の文字にアクセスできることを知っていれば、ループを使用して各文字に 1 つずつ簡単にアクセスできるはずwhileです。

ただし、一般的には、for読みやすいので、この状況ではループを使用します。

于 2013-03-05T10:54:22.793 に答える
0

Pythonでは、文字列をイテレータとして使用できます。

for character in 'string':
    print(character)

それをwhileループに変える方法を理解するのはあなたの仕事だと思います。

于 2013-03-05T10:34:56.603 に答える
0

Python コード:

for s in myStr:
        print s

また

for i in xrange(len(myStr)):
    print myStr[i]
于 2016-09-19T20:22:31.107 に答える
0
   # make a list out of text - ['h','e','l','l','o']
   text = list('hello') 

   while text:
       print text.pop()

:)

Python では、空のオブジェクトは false として評価されます。.pop() は、リストの最後の項目を削除して返します。そして、それが逆に印刷される理由です!

ただし、次を使用して修正できます。

text.pop( 0 )
于 2013-03-05T14:49:14.893 に答える
-2

これにより、各文字がテキストに出力されます

text = raw_input("Give some input:  ")
for i in range(0,len(text)):
   print(text[i])
于 2015-04-28T09:10:26.660 に答える