2015-10-24 3 views
0

Извините за мой английский. Каждый месяц я играю в казино один раз в месяц. Мои критерии принятия решения: со случайным модулем найдите день и неделю, чтобы играть в казино, только одно исключение, не принимайте из случайного модуля последний месяц, который играл неделю и день. Например, если я отправился на 14 октября, день на ноябрь должен быть в любой день, но не на 14-м. Вот мой код: если я вхожу в тот же номер «2», например, программа не отменяет число «2» моей последней недели месяца. Пожалуйста помоги.Казино - Удача со случайным - Python

import random 

zz = raw_input ("Please enter the last week number: ") 

fx = int(zz) 

print fx 



week_randoms=[] 

gg = week_randoms 


for i in range (4): 

    gg = week_randoms 

    gg.append(random.randrange(1,5)) 

print gg 

hh = gg[0:1] 


if fx != hh: 

    print "You got your number baby", hh 

else: 
    print "Run this program again" 

ответ

0

Попробуйте это, он даст вам даты в течение следующих 12 месяцев. Это исключает дни 29-31, поэтому мы не получаем никаких мнимых дней, например, 31-го февраля.

import random 
days = range(1,29) 
months = ['January','February','March','April','May','June','July','August','September','October','November','December'] 
for a in months: 
    b = random.choice(days) 
    days.remove(b) 
    print "Go on Day " + str(b) + " of the month of " + a " "." 
0

Вы можете просто отслеживать выбранный номер последнего дня и не выбирать его еще раз. В течение этого года (или любого другого високосного года):

import random 
months = ['January','February','March','April','May','June','July','August','September','October','November','December'] 
days_in_months = [31,29,31,30,31,30,31,31,30,31,30,31] 
last_day_number = None 
for month,ndays in zip(months,days_in_months): 
    while True: 
     day_number = random.randint(1,ndays) 
     if day_number != last_day_number: 
      break 
    last_day_number = day_number 
    print(day_number, month, '2016') 

, например.

28 January 2016 
22 February 2016 
21 March 2016 
13 April 2016 
21 May 2016 
24 June 2016 
25 July 2016 
9 August 2016 
16 September 2016 
12 October 2016 
5 November 2016 
7 December 2016 

Удачи вам!

+0

февраля, за исключением високосного года имеет 28 дней! – tommus

0

Слегка модифицированная версия xnx сек реализации:

import calendar 
import random 

last_pick = None 

for i in range(1, 13): 
    month = calendar.month_name[i] 
    _, end = calendar.monthrange(2016, i) 

    while True: 
     day = random.randint(1, end) 

     if day != last_pick: 
      break 

    last_pick = day 

    print(day, month, 2016)