Форум сайта python.su
Есть вот такой код:
from msvcrt import getch
list_1=['gamma', 'beta', 'alpha']
list_2=['[a]', '[b]', '[c]']
alpha=2
beta=3
gamma=4
for i in range(len(list_2)):
print list_2[i],list_1[i]
def fun():
while 1:
c=getch() # Ожидается ввод
if c=='a':
if list_1[0]=='alpha':
print 'Alpha'
elif list_1[0]=='beta':
print 'Beta'
elif list_1[0]=='gamma':
print 'Gamma'
elif c=='b':
if list_1[1]=='alpha':
print 'Alpha'
elif list_1[1]=='beta':
print 'Beta'
elif list_1[1]=='gamma':
print 'Gamma'
elif c=='c':
if list_1[2]=='alpha':
print 'Alpha'
elif list_1[2]=='beta':
print 'Beta'
elif list_1[2]=='gamma':
print 'Gamma'
Офлайн
c=getch() # Ожидается ввод
If c == 'a':
index = 0
elif c == 'b':
index == 1
elif c == 'c':
index == 2
print list_1[index].title()
Офлайн
sumrak_ss
Помогите упростить fun().
def fun():
while 1:
c = getch()
if c in 'abc':
print list_1[ord(c)-ord('a')].capitalize()
И каким образом можно сделать так чтобы вывод for имел такой вид:
gamma 7
beta 5
alpha 3
list_1=['gamma', 'beta', 'alpha']
list_2=['[a]', '[b]', '[c]']
list_3=[7, 5, 3]
print '\n'.join(["%s %s %d" % item for item in zip(list_2, list_1, list_3)])
Отредактировано (Март 1, 2010 23:22:47)
Офлайн
i = ord(c) - ord('a')
Офлайн
А в чем проблема?
Офлайн
Печатать без переноса строки можно так: sys.stdout.write(“bla”) во втором или print(“bla”, end=“”) в третьем питоне.
Офлайн
pasaranaxА чем не подходит print x, (принт икс запятая)?
ечатать без переноса строки можно так: sys.stdout.write(“bla”) во втором или print(“bla”, end=“”) в третьем питоне.
Офлайн
pasaranaxили
Печатать без переноса строки можно так: sys.stdout.write(“bla”) во втором или print(“bla”, end=“”) в третьем питоне.
print 'bla',
from __future__ import print_function
Отредактировано (Март 1, 2010 17:28:23)
Офлайн
А в чем проблема?с другими буквами может не сработать уже :D
Офлайн
Работает точно так же, как исходный пример :)
Если бы там были другие буквы, то и мое и твое решения были бы другими.
Офлайн