Форум сайта python.su
from msvcrt import getch
import data
list_1=['[a]', '[b]', '[c]', '[d]', '[e]', '[f]', '[g]',\
'[h]', '[i]', '[j]', '[k]', '[l]', '[m]', '[n]',\
'[o]', '[p]', '[q]', '[r]', '[s]', '[t]', '[u]',\
'[v]', '[w]', '[x]', '[y]', '[z]']
list_2=[ u'ППШ-41', u'СКС', u'АК-47']
list_3=[data.ppsh, data.sks, data.ak]
print '\n'.join(["%s %-16s x%d" % item for item in zip(list_1, list_2, list_3)])
while 1:
c=getch()
if c=='a':
if list_2[0]==u'АК-47':
print u'Автомат Калашникова'
elif list_2[0]==u'ППШ-41':
print u'Пистолет-пулемёт Шпагина'
elif list_2[0]==u'СКС':
print u'Самозарядный карабин Симонова'
if c=='b':
if list_2[1]==u'АК-47':
print u'Автомат Калашникова'
elif list_2[1]==u'ППШ-41':
print u'Пистолет-пулемёт Шпагина'
elif list_2[1]==u'СКС':
print u'Самозарядный карабин Симонова'
if c=='c':
if list_2[2]==u'АК-47':
print u'Автомат Калашникова'
elif list_2[2]==u'ППШ-41':
print u'Пистолет-пулемёт Шпагина'
elif list_2[2]==u'СКС':
print u'Самозарядный карабин Симонова'
Отредактировано (Март 28, 2010 18:54:55)
Офлайн
может чета типа такого
obj = { u'АК-47':u'Автомат Калашникова', u'ППШ-41':u'Пистолет-пулемёт Шпагина' }
list_2 = { 'a':u'ППШ-41', 'b':u'АК-47' }
while 1:
print obj[ list_2[ getch() ] ]
Офлайн
o7412369815963А как в этом случае изменить эту строку чтобы вывод оставался прежним?
может чета типа такогоobj = { u'АК-47':u'Автомат Калашникова', u'ППШ-41':u'Пистолет-пулемёт Шпагина' }
list_2 = { 'a':u'ППШ-41', 'b':u'АК-47' }
while 1:
print obj[ list_2[ getch() ] ]
print '\n'.join(["%s %-16s x%d" % item for item in zip(list_1, list_2, list_3)])
Офлайн
list_2 = { 'a':u'ППШ-41', 'b':u'АК-47' }
Офлайн
sumrak_ssпочему нельзя, нашел АК - повесил на кнопку А, нашел ППШ - повесил на кнопку Б и тддело в том что предметы в инвентарь добавляются в произвольном порядке, поэтому нельзя ‘a’ присвоить ‘ППШ-41’ и т.д.list_2 = { 'a':u'ППШ-41', 'b':u'АК-47' }
Офлайн
o7412369815963ты имеешь ввиду зарезервировать для каждого предмета свою букву-“кнопку”? нет, они должны быть независимы, первый столбец (“кнопки”) строго в алфавитном порядке.
нашел АК - повесил на кнопку А, нашел ППШ - повесил на кнопку Б и тд
Отредактировано (Март 28, 2010 19:00:00)
Офлайн
вот терь уже попонятней чего надо
# coding: utf8
class Obj():
def __init__(self,name,col):
self.name = name
self.col = col
def __repr__(self):
return '%s x%d' % (self.name,self.col)
obj = { u'АК-47': Obj(u'Автомат Калашникова',10), u'ППШ-41': Obj(u'Пистолет-пулемёт Шпагина',20) }
list_2 = [u'ППШ-41', u'АК-47']
print '\n'.join( ['[%c] %s' % (ord('a')+i,obj[x]) for i,x in enumerate(list_2)] )
while 1:
c = raw_input('(a,b,... "-" = del):')
# c = getch()
if c == '-': list_2 = list_2[1:]
else:
n = ord(c[0]) - ord('a')
print obj[list_2[n]]
Отредактировано (Март 28, 2010 15:29:44)
Офлайн
вот что выдает:
Пистолет-пулемёт Шпагина x20
Автомат Калашникова x10
(a,b,… “-” = del):a
Traceback (most recent call last):
File “go.py”, line 21, in <module>
print obj[list_2]
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-7: ordinal not in range(128)
Офлайн
Это на “с” что ли нажали? В любом случае надо проверять входит ли N в длину массива.
Офлайн
Griffonтам наверно на русском языке ввели.
Это на “с” что ли нажали? В любом случае надо проверять входит ли N в длину массива.
Офлайн