Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 25, 2017 08:37:38

Helene@9
Зарегистрирован: 2017-08-21
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы от новичков.

 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)

Офлайн

#2 Авг. 25, 2017 15:55:56

sanik
Зарегистрирован: 2017-08-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы от новичков.

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

Склоняюсь сделать множество, но не могу понять как реализовать. Толи под каждую карту создать свою переменную.

Офлайн

#3 Авг. 25, 2017 16:12:41

Vintets
Зарегистрирован: 2016-07-05
Сообщения: 41
Репутация: +  6  -
Профиль   Отправить e-mail  

Вопросы от новичков.

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. делал покер, техасский Холдем. Не на питоне.

Отредактировано Vintets (Авг. 25, 2017 16:13:51)

Офлайн

#4 Авг. 25, 2017 16:46:04

sanik
Зарегистрирован: 2017-08-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы от новичков.

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

Если не коммерческая тайна, можно кусочек кода понять сам принцип. Языки все разные, но в общем будет понятно.

Офлайн

#5 Авг. 25, 2017 17:51:12

Vintets
Зарегистрирован: 2016-07-05
Сообщения: 41
Репутация: +  6  -
Профиль   Отправить e-mail  

Вопросы от новичков.

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

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

Офлайн

#6 Авг. 25, 2017 18:16:06

sanik
Зарегистрирован: 2017-08-22
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросы от новичков.

Vintets

Конкретный пример.
Выпадает первая любая карта. Потом вторая произвольная карта и так далее. Мне нужно что бы программа могла различпть их по старшенству без учета масти. Как пример туз больше короля. Если они равны, значит равны. И не важно каких мастей эти карты.
Никак не могу изначально записать список этих карт и что бы когда они выпадали программа говорила и понимала: эта карта больше предыдующей, или меньше.

Офлайн

#7 Авг. 25, 2017 18:30:19

Vintets
Зарегистрирован: 2016-07-05
Сообщения: 41
Репутация: +  6  -
Профиль   Отправить e-mail  

Вопросы от новичков.

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)

Офлайн

#8 Окт. 13, 2017 10:27:19

Acamori
Зарегистрирован: 2017-04-11
Сообщения: 47
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопросы от новичков.

День добрый, не подскажите - есть ли возможность получить доступ к словарю переменных функции ?

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

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

Возможно ли такое же провернуть внутри тела функции ?

Отредактировано Acamori (Окт. 13, 2017 10:28:04)

Офлайн

#9 Окт. 13, 2017 10:49:50

Kudria
Зарегистрирован: 2016-10-02
Сообщения: 16
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопросы от новичков.

Функция locals() возвращает словарь с локальными переменными.

Отредактировано Kudria (Окт. 13, 2017 10:56:37)

Офлайн

#10 Окт. 13, 2017 10:59:18

Kudria
Зарегистрирован: 2016-10-02
Сообщения: 16
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопросы от новичков.

Я думаю, что никак. Что мешает этот словарь использовать?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version