问题描述
对不起我的英语不好。 每个月我去赌场玩一次,每月一次。 我的决策标准:随机模块找到在赌场玩的日和周,只有一个例外,不接受随机模块在周和日玩的最后一个月。 例如,如果我去10月14日,则11月的一天应该是任何一天,但不是14日。 这是我的代码:例如,如果我输入相同的数字“ 2”,则程序不会在上个月的一周中消除数字“ 2”。 请帮忙。
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"
1楼
试试这个,它将为您提供未来12个月的日期。 它将排除29-31天,因此我们没有得到任何假想的日子,例如2月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 " "."
2楼
您只需跟踪所选的最后一天的数字,并确保不再选择它。 对于今年(或任何其他leap年):
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
祝好运!
3楼
的实现的修改的版本:
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)