2012-03-18 9 views
0
# Let's create a file and write it to disk. 
filename = "test.dat" 
# Let's create some data: 
done = 0 
namelist = [] 
while not done: 
    name = raw_input("Enter a name:") 
    if type(name) == type(""): 
     namelist.append(name) 
    else: 
     break 

上記のPythonコードでは、試してみましたが、whileループから壊れませんでした。それはいつも私に"名前を入力:"、何を入力するかを私に尋ねます。 ループを解除するには?whileループを解除するには? Pythonの文字列型の場合

+3

ユーザーからの入力は、変換しない限り、常に文字列入力となります。 –

+0

これをデバッグするには、 'print name、repr(name)、type(name)'、 'print type(") '、' print type(name)== type( " ) 'など、これは問題を示していたでしょう。あなたはめったに間違って行くことはできない。 – DSM

答えて

4
# Let's create a file and write it to disk. 
filename = "test.dat" 
# Let's create some data: 
namelist = [] 
while True: 
    name = raw_input("Enter a name:") 
    if name: 
     namelist.append(name) 
    else: 
     break 

これは何も

1

に入っていないときは常に、すなわち、type(name) == type("")は常に真である、文字列を返すraw_inputので、これは壊れます。試してみてください:

while True: 
    name = raw_input("Enter a name: ") 
    if not name: 
     break 
    ... 
+0

ありがとう、あなたの両方!コードは他のWebページから取得されるので、バグがあります! – user866735

関連する問題