我目前正在学习python(一开始就是这样),所以我仍然对良好的代码方式有所怀疑,我该如何处理它。
今天我创建了这个代码,应该随机选择01到60(但是从01到69运行)
import random
dez = ['0', '1', '2', '3', '4', '5', '6']
uni = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
sort = []
while len(sort) <= 5:
random.shuffle(dez)
random.shuffle(uni)
w = random.choice(dez)
z = random.choice(uni)
chosen = str(w) + str(z)
if chosen != "00" and chosen not in sort:
sort.append(chosen)
print chosen
我也怀疑如何让代码停在“60”。
答案 0 :(得分:4)
您确实意识到您可以在一行中编写完全相同的代码,对吧?使用randint:
很容易>>> [random.randint(1,60) for _ in range(6)]
[22, 29, 48, 18, 20, 22]
这将为您提供1到60之间的6个随机整数的列表。在您的代码中,您将创建具有这些数字的字符串。但是,如果您故意将它们创建为字符串,则可以执行此操作:
>>> [str(random.randint(1,60)) for _ in range(6)]
['55', '54', '15', '46', '42', '37']
答案 1 :(得分:2)
你可以使用
random.randrange(1,60)
答案 2 :(得分:1)
获得6个唯一的随机整数,范围从1到59:
sample = random.sample(xrange(1, 60), 6)
# -> [8, 34, 16, 28, 46, 39]
获取字符串:
['%02d' % i for i in sample]
# -> ['08', '34', '16', '28', '46', '39']
答案 3 :(得分:0)
通过改变每个循环,你将无法获得真正的好处。在循环之前做一次。
选择不是一个单词