2017-11-03 10 views
0

の無限の量したがって、変数を定義するユーザー入力を求めるプログラムを作成しています。私がしたいのは、彼らがプログラムを終了するまで変数を定義するよう促し続けます。 I. A1:を入力して2を入力し、A2:を入力し、6を入力するなどして、何も入力せずにEnterキーを押すまで続きます。私が抱えている問題は、ループするたびに固有の変数が必要だということです。私はまた、グローバル変数を使わずに、関数の外で定義された変数にこれらの変数がアクセスできるようにしたい。ここで一意の生成変数Python

は、私が持っているものです:

def userinput(): 
    n = 0 
    while n >= 0: 
     c = str(n) 
     v = 'A'+c+':' 
     v = input(v) 
     if v != '': 
      n += 1 
     else: 
      while v == '': 
       break 
      break 
userinput() 

あなたが見ることができるように、何のことは知っているんがV各反復に対するユーザの入力が等しくなるように設定されます。最初の入力をA0に設定し、次の反復を設定して、入力をA1に設定したいなどします。その後、ユーザーがこれを実行した後、変数A1を呼び出して結果を取得できるようにしたいと考えています。何か案は?

編集: ここに私のプログラムがあります。入力を受け取り、入力をリストに追加し、リスト項目をグローバル変数に変換します。私はグローバルを使用したくなかったが、私はしなければならなかった。

def userinput(): 
    n = 0 
    values = [] 
    while True: 
     c = str(n) 
     v = 'A'+c+':' 
     v = input(v) 
     values.append(v) 
     if v != '': 
      n += 1 
     else: 
      while v == '': 
       values.remove(v) 
       break 
      break 
    for x, val in enumerate(values): 
     globals()['A%d' % (x)] = val 
    return values 
data = userinput() 
+0

コンテナを使用します –

答えて

0

リストを使用しますか?

代わりにwhileループの
def getUserInput(): 
    values = [] 
    while True: 
    val = input("Enter a value (press enter to finish):") 
    if not val: 
     break 
    values.append(val) 
    return values 

data = getUserInput() 
+0

私はしたくなかったが、これは本当にうまくいく。 – charlierw

0

、このように、whileループに包まれたforループを作る:

def userinput(): 
n = 0 
while n >= 0: 
    for x in range(100): 
     v = 'A'+x+':' 
     v = input(v) 
     if v != '': 
      n += 1 
     else: 
      while v == '': 
       break 
      break 
userinput() 
+0

これは最後に壊れません、それはA0 – charlierw

0

もう一度、ここでの答えは次のとおりです。

def userinput(): 
    n = 0 
    values = [] 
    while True: 
     c = str(n) 
     v = 'A'+c+':' 
     v = input(v) 
     values.append(v) 
     if v != '': 
      n += 1 
     else: 
      while v == '': 
       values.remove(v) 
       break 
      break 
    for x, val in enumerate(values): 
     globals()['A%d' % (x)] = val 
    return values 
data = userinput() 
関連する問題