python随机彩票号码生成器游戏
Posted
技术标签:
【中文标题】python随机彩票号码生成器游戏【英文标题】:python random lottery number generator game 【发布时间】:2019-07-17 16:32:30 【问题描述】:我必须制作一个游戏,就像彩票一样,我的程序从数字 1-50 的列表中生成 5 个随机数字,从数字列表中生成一个额外的数字 1-20,并将它们组合成一个最终列表,内容如下: (20, 26, 49, 01, 11, + 06) 其中两个数字永远不会重复,例如 (22, 11, 34, 44, 01, + 22)
下面附上的是我写的代码,但我如何让它永远不会重复两个或更多数字,并将 + 添加到我的列表中,而没有“”符号
输入: 随机导入
a = list(range(1,51))
b = random.randint(1, 20)
temp = []
for i in range(5):
random.shuffle(a)
temp.append(random.choice(a[:5]))
temp.append('+')
temp.append(b)
print(temp)
输出:
[14, 12, 3, 16, 23, '+', 9]
【问题讨论】:
【参考方案1】:如果没有'
,则不能添加+
- 它们将+标记为字符串。
另外:你打乱你的列表 - 只需取前 5 个值 - 它们是随机的,你的列表不包含任何欺骗,所以你是黄金:
nums = list(range(1,51))
random.shuffle(nums)
five_nums = nums[:5]
print(five_nums) # [44, 23, 34, 38, 3]
为了简单起见,请使用:
import random
# creates 5 unique elements from 1..50 and adds a + and a [0-19]+1 number
randlist = random.sample(range(1,51),k=5) + ["+", random.choice(range(20))+1]
print(randlist)
现在您得到了混合数字和字符串 - 您可以通过以下方式创建组合字符串:
print("You drew ".format(*randlist))
创建一个类似
的字符串[48, 2, 9, 6, 41, '+', 8]
You drew 48 2 9 6 41 + 8
独库:
random.sample (draw without putting back)【讨论】:
【参考方案2】:您可以尝试以下方法:
import random
randList, run = [], 0
while run < 6:
number = random.randint(1,51)
if number not in randList:
if run == 5:
randList.append('+'+str(number))
break
randList.append(number)
run += 1
print(randList)
列表中的字符串不能没有引号,但是,如果要打印列表中的每个项目(使用 for 循环或连接),引号就不会出现。
【讨论】:
【参考方案3】:此代码将生成一个包含 7 个随机数的列表
import random
def main():
numbers = []
for num in range(7):
num = random.randrange(50)
numbers.append(num)
print(numbers)
main()
【讨论】:
【参考方案4】:它没用,因为你需要拥有
import random
【讨论】:
OP 在input:
之后写了import random
,以防你没看到以上是关于python随机彩票号码生成器游戏的主要内容,如果未能解决你的问题,请参考以下文章