Найти - Пользователи
Полная версия: Вопросы от новичков.
Начало » Python для новичков » Вопросы от новичков.
1 2 3 4 None 17 18 19 20 21 22 23 24 None 28 29 30 31
Helene@9
 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

может табуляции где не хватает, но куда ее прописать никак не пойму. Заранее спасибо
sanik
Собственно проблема.
Пишу игрушку небольшую. Карточная игра.
Все хорошо, но всю голову сломал как ввести карты. Их 52 штуки. Надо не просто так ввести, а что бы еще по старшенству. Что бы программа понимала, что валет старше десятки.

Склоняюсь сделать множество, но не могу понять как реализовать. Толи под каждую карту создать свою переменную.
Vintets
sanik
Я делал числами.
ранг: 2, 3, …, 10, 11-валет, 12-дама, 13-король, 14-туз.
Дробная часть - масть. 1-4 (номера в зависимости от задачи по старшинству мастей)

К примеру
восьмёрка крестовая = 8.1
восьмёрка червовая = 8.3
король крестовый = 13.1

Легко сравниваются по старшинству.
общая последовательность всех карт 8.1 > 8.3 > 13.1
без учёта масти int(13.1) > int(8.3) and int(13.1) > int(8.1) and int(8.1) == int(8.3)
с учётом масти 8.3 > 8.1
и т.д.

Можно отобрать одной масти или одного ранга или определённый диапазон.

P.S. делал покер, техасский Холдем. Не на питоне.
sanik
Vintets
Т.е. я создаю множество. И перечисляю 2, 2.1, 2.2….. 3…
Просто по такой логике во множестве перечисляю 52 карты. А вот без учета масти как в этом множестве обьяснить питону, что десятка одной масти равна десятки другой масти. Или это как то в условиях обыграть?

Если не коммерческая тайна, можно кусочек кода понять сам принцип. Языки все разные, но в общем будет понятно.
Vintets
sanik
Зачем ему объяснять. Когда тебе понадобится сравнить в условии, возьмёшь целую честь
 kard1 = 10.1
kard2 = 10.3
if int(kard1) == int(kard2):
    # карты одинаковые по рангу
    pass

Не думаю что здесь нужен код на нелепом, ограниченном языке.
Конкретные примеры приводи, что нужно решить.
sanik
Vintets

Конкретный пример.
Выпадает первая любая карта. Потом вторая произвольная карта и так далее. Мне нужно что бы программа могла различпть их по старшенству без учета масти. Как пример туз больше короля. Если они равны, значит равны. И не важно каких мастей эти карты.
Никак не могу изначально записать список этих карт и что бы когда они выпадали программа говорила и понимала: эта карта больше предыдующей, или меньше.
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]
Acamori
День добрый, не подскажите - есть ли возможность получить доступ к словарю переменных функции ?

Есть список в виде строк с именами, и хотелось бы создать переменную внутри функцию с этим именем. В общем модуле все просто:

 >>>__main__.__dict__['My_var'] = 'Test'
>>>My_var
'Test'

Возможно ли такое же провернуть внутри тела функции ?
Kudria
Функция locals() возвращает словарь с локальными переменными.
Kudria
Я думаю, что никак. Что мешает этот словарь использовать?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB