2017-12-07 8 views
2

からクラスのインスタンスを作成するために探しています。次に、私がクラスのインスタンスを作成するために得たデータを使用します。私は何かを考えていた:は、私はこのクラスを持っているユーザー入力

def getData(): 
    name, score = input("Please enter your credentails (Name score): ").split() 
    B1 = Bowler(name, score) 
    print(B1.nameScore()) 

しかし、私はどうにかして空白のユーザー入力を得るまでそれをループする必要があります。また、私はどうにかしてループにB2 B3 B4などを作成する必要があります。

申し訳ありません申し訳ありません私はまだプログラミングに新しいです、多分私は間違った角度からこれを見ています。

答えて

1

あなたが探しているのはPython Listsです。これらを使用すると、ループの実行中に新しく作成されたアイテムを追跡することができます。リストを作成するには、単純にそうようにそれを定義した:

our_bowlers = [] 

は、今、私たちはどちらかNoneまたは新規Bowler返すために私たちのgetData機能を変更する必要があります。

def getData(): 
    # Get the input 
    our_input = input("Please enter your credentails (Name score): ").split() 

    # Check if it is empty 
    if our_input == '': 
     return None 

    # Otherwise, we split our data and create the Bowler 
    name, score = our_input.split() 
    return Bowler(name, score) 

をして、私たちはループを実行することができ、新しいBowlerをチェックし、私たちが何かを取得していない場合は、私たちが作成したすべてのBowlersを印刷することができます。

# Get the first line and try create a Bowler 
bowler = getData() 

# We loop until we don't have a valid Bowler 
while bowler is not None: 

    # Add the Bowler to our list and then try get the next one 
    our_bowlers.append(bowler) 
    bowler = getData() 

# Print out all the collected Bowlers 
for b in our_bowlers: 
    print(b.nameScore()) 
0

これは、あなたがやりたいことに私のコードです:また

class Bowler: 
    def __init__(self, name, score): 
     self.name = name 
     self.score = score 

    def nameScore(self): 
     return '{} {}'.format(self.name, self.score) 

def getData(): 
    try: 
     line = input("Please enter your credentails (Name score): ") 
    except SyntaxError as e: 
     return None 
    name, score = line.split() 
    score = int(score) 
    B = Bowler(name, score) 
    print(B.nameScore()) 
    return B 

if __name__ == '__main__': 
    bowlers = list() 
    while True: 
     B = getData() 
     if B == None: 
      break 
     bowlers.append(B) 

    for B in bowlers: 
     print(B.nameScore()) 

、私はそれが今

不便だために、あなたの入力を変更することをお勧めいたします
関連する問題