Форум сайта python.su
a=int(input()) b=int(input()) c=int(input()) d=int(input()) for i in range(c,d+1): print('\t',i,end='') print() for i in range(a,b+1): print (i,end='') for k in range(c,d+1): print('\t',k*i) выводит: 5 6 7 35 42 8 40 48 9 45 54 10 50 60 а должно: 5 6 7 35 42 8 40 48 9 45 54 10 50 60
Отредактировано Helene@9 (Авг. 25, 2017 08:38:11)
Офлайн
Собственно проблема.
Пишу игрушку небольшую. Карточная игра.
Все хорошо, но всю голову сломал как ввести карты. Их 52 штуки. Надо не просто так ввести, а что бы еще по старшенству. Что бы программа понимала, что валет старше десятки.
Склоняюсь сделать множество, но не могу понять как реализовать. Толи под каждую карту создать свою переменную.
Офлайн
sanikЯ делал числами.
Отредактировано Vintets (Авг. 25, 2017 16:13:51)
Офлайн
VintetsТ.е. я создаю множество. И перечисляю 2, 2.1, 2.2….. 3…
Офлайн
sanikЗачем ему объяснять. Когда тебе понадобится сравнить в условии, возьмёшь целую честь
kard1 = 10.1 kard2 = 10.3 if int(kard1) == int(kard2): # карты одинаковые по рангу pass
Офлайн
Vintets
Офлайн
sanikВ преведущем посту как раз это сравнение.
# вся колода all = [n + m/10.0 for m in range(1, 5) for n in range(2, 15)] print u'вся колода:\n', all print u'всего карт: %d\n' % len(all) print u'только ранги\n', map(int, all) sorted_list = sorted(all, key=lambda x: int(x)) print u'сортируем по рангам\n', sorted_list sorted_list = sorted(all, key=lambda x: (x-int(x))*10) print u'сортируем по мастям\n', sorted_list selection = [i for i in all if int(i) == 10] print u'только десятки\n', selection selection = [i for i in all if int(round((i-int(i))*10,0)) == 2] print u'только масть 2\n', selection
вся колода:
[2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 8.1, 9.1, 10.1, 11.1, 12.1, 13.1, 14.1, 2.2, 3.2,
4.2, 5.2, 6.2, 7.2, 8.2, 9.2, 10.2, 11.2, 12.2, 13.2, 14.2, 2.3, 3.3, 4.3, 5.3,
6.3, 7.3, 8.3, 9.3, 10.3, 11.3, 12.3, 13.3, 14.3, 2.4, 3.4, 4.4, 5.4, 6.4, 7.4,
8.4, 9.4, 10.4, 11.4, 12.4, 13.4, 14.4]
всего карт: 52
только ранги
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14]
сортируем по рангам
[2.1, 2.2, 2.3, 2.4, 3.1, 3.2, 3.3, 3.4, 4.1, 4.2, 4.3, 4.4, 5.1, 5.2, 5.3, 5.4,
6.1, 6.2, 6.3, 6.4, 7.1, 7.2, 7.3, 7.4, 8.1, 8.2, 8.3, 8.4, 9.1, 9.2, 9.3, 9.4,
10.1, 10.2, 10.3, 10.4, 11.1, 11.2, 11.3, 11.4, 12.1, 12.2, 12.3, 12.4, 13.1, 1
3.2, 13.3, 13.4, 14.1, 14.2, 14.3, 14.4]
сортируем по мастям
[4.1, 5.1, 6.1, 7.1, 8.1, 9.1, 10.1, 11.1, 12.1, 13.1, 14.1, 2.1, 3.1, 8.2, 9.2,
10.2, 11.2, 12.2, 13.2, 14.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 2.3, 3.3, 4.3, 5.3,
6.3, 7.3, 8.3, 9.3, 10.3, 11.3, 12.3, 13.3, 14.3, 2.4, 3.4, 4.4, 5.4, 6.4, 7.4,
8.4, 9.4, 10.4, 11.4, 12.4, 13.4, 14.4]
только десятки
[10.1, 10.2, 10.3, 10.4]
только масть 2
[2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 8.2, 9.2, 10.2, 11.2, 12.2, 13.2, 14.2]
Отредактировано Vintets (Авг. 25, 2017 18:34:20)
Офлайн
День добрый, не подскажите - есть ли возможность получить доступ к словарю переменных функции ?
Есть список в виде строк с именами, и хотелось бы создать переменную внутри функцию с этим именем. В общем модуле все просто:
>>>__main__.__dict__['My_var'] = 'Test' >>>My_var 'Test'
Отредактировано Acamori (Окт. 13, 2017 10:28:04)
Офлайн
Функция locals() возвращает словарь с локальными переменными.
Отредактировано Kudria (Окт. 13, 2017 10:56:37)
Офлайн
Я думаю, что никак. Что мешает этот словарь использовать?
Офлайн