Форум сайта python.su
0
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)
Офлайн
0
Собственно проблема.
Пишу игрушку небольшую. Карточная игра.
Все хорошо, но всю голову сломал как ввести карты. Их 52 штуки. Надо не просто так ввести, а что бы еще по старшенству. Что бы программа понимала, что валет старше десятки.
Склоняюсь сделать множество, но не могу понять как реализовать. Толи под каждую карту создать свою переменную.
Офлайн
6
sanikЯ делал числами.
Отредактировано Vintets (Авг. 25, 2017 16:13:51)
Офлайн
0
VintetsТ.е. я создаю множество. И перечисляю 2, 2.1, 2.2….. 3…
Офлайн
6
sanikЗачем ему объяснять. Когда тебе понадобится сравнить в условии, возьмёшь целую честь
kard1 = 10.1 kard2 = 10.3 if int(kard1) == int(kard2): # карты одинаковые по рангу pass
Офлайн
0
Vintets
Офлайн
6
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)
Офлайн
1
День добрый, не подскажите - есть ли возможность получить доступ к словарю переменных функции ?
Есть список в виде строк с именами, и хотелось бы создать переменную внутри функцию с этим именем. В общем модуле все просто:
>>>__main__.__dict__['My_var'] = 'Test' >>>My_var 'Test'
Отредактировано Acamori (Окт. 13, 2017 10:28:04)
Офлайн
1
Функция locals() возвращает словарь с локальными переменными.
Отредактировано Kudria (Окт. 13, 2017 10:56:37)
Офлайн
1
Я думаю, что никак. Что мешает этот словарь использовать?
Офлайн