Python代码需要一些概述

时间:2009-05-26 07:02:11

标签: python

我目前正在学习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”。

4 个答案:

答案 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)

通过改变每个循环,你将无法获得真正的好处。在循环之前做一次。

选择不是一个单词