2015-12-18 4 views
0

Я создаю цикл, который выглядит это как этотВызов переменной значение другой переменной

players = int(input('How many players? ')) 
for i in range (0,players): 
    name = input('What is your name? ') 

Тогда я хочу, чтобы следующая переменная будет «value_of_», а затем все, что они занесены в качестве имени будет быть в имени переменной.

+0

Чтобы выяснить, если вы вводите ваше имя «Джо», то вам нужен переменный Джо, чья ценность «Джо»? –

ответ

2

Вам нужно сохранить эти входные значения где-нибудь в списке, например. Краткий способ добиться того, что вы хотите, будет:

playernames = [input('What is your name? ') for _ in range(players)] 

Вы также можете использовать словарь, чтобы отобразить строку «player_nr_X» к playernames, как это:

playernames = {'player_nr_' + str(i + 1) : input('What is your name? ') for i in range(players)} 

Конечно, вы можете также просто используйте целые ключи в словаре.

Демо:

>>> players = 3 
>>> {'player_nr_' + str(i + 1) : input('What is your name? ') for i in range(players)} 
What is your name? 'bob' 
What is your name? 'alice' 
What is your name? 'jeff' 
{'player_nr_1': 'bob', 'player_nr_2': 'alice', 'player_nr_3': 'jeff'}  
+0

Вы можете использовать 'raw_input()' для извлечения строк. –

+0

@ClaytonWahlstrom Я предполагаю, что мы говорим Python3 здесь, потому что автор использовал 'input'. – timgeb

+0

'input' работает, я думаю,' raw_input' устаревает в 3. –

0

вычисляемые имена переменных плохая идея, они делают написание кода более трудным. Вместо этого вы должны использовать словарь, где ключи - это имена.

Например:

values = {} 
players = int(input('How many players? ')) 
for i in range (0,players): 
    name = input('What is your name? ') 
    value[name] = i 

Или, если вы хотите использовать значение индекса в качестве ключа, и имя в качестве значения:

value[i] = name 
Смежные вопросы