2017-03-28 7 views
0

私は学校の宿題のためのコードを書いています。割り当ては次のとおりです。 "000"が入力されるまで本コードを読み取るコードを作成し、ISBNおよびISSNに入力された最初の4桁に応じて本を2つのカテゴリに分割します。文字列のインデックスは整数でなければならず、問題のときは

:strを使用し、コードの接頭辞(ISBNとISSN)を確認してください。

bookarray = [] 
booknumber = str(input("Give me a book code - Type 000 if you want to cancel")) 
while booknumber != "000": 
    bookarray.append(booknumber) 
    booknumber = str(input("Give me a book code - Type 000 if you want to cancel")) 
    if booknumber[0,4] == "ISBN": 
     isbnarray = booknumber 
    elif booknumber[0,4] == "ISSN": 
     issnarray = booknumber 
print(issnarray) 
print(isbnarray) 

同じに関するすべてのヘルプはいただければ幸いです。

は、ここに私のコードです!私は学校での最初の一年のpythonです。

EDIT:予想される出力は、書籍のコード番号を含む2つのリストにする必要があります。 現在、私はどのように、なぜかわからない "while"の自律ループに直面しています。

+2

あなたの期待は何ですか? –

+1

'booknumber [0,4]'の代わりに 'booknumber [:4]'を試してみよう – asongtoruin

+0

最初の4桁の数字を追加した本は、ISSNがissnarrayに追加され、ISBNがisbnarrayに追加されることになります。 – PitoguroGR

答えて

1
if booknumber[0,4] == "ISBN": 

エラーメッセージを(「インデックスは整数でなければなりません」)について説明しbooknumberにインデックスとしてtupleを渡しています。あなただけの利回りを、Pythonの2を使用して000に入るとstr(input())にそれを渡している場合は、また

if booknumber.startswith("ISBN"): 

としたほうが良いと思いますその場合には

if booknumber[0:4] == "ISBN": 

:あなたはスライスをしたいです"0"input()は式を評価し、000はちょうど0です。 Python 3では問題ありませんが、Python 2の場合はraw_input()に変更してください(または、ユーザに0と入力して終了して、"0"のようにテストしてください)。

+0

ありがとう、私は気づいた、物事は今では000を入力するループに行くと停止しませんです – PitoguroGR

+0

私の編集をチェックしてください。それは予想通りだ。 –

+0

はそれに非常に似ています。あなたは 'input()'を試して、何が起こるか見るために '000 'をタイプできますか? –

関連する問題