我应该打印一个没有重复数字的随机5位数字,然后询问用户三位数字。如果用户的号码包含随机数的三位数字,请打印"更正"。
我使用此代码作为随机数
num = random.randint (0,99999)
print (num)
问题是它不会总是打印五位数字。
另外,我不知道如何将用户号码与随机号匹配。
谢谢。
答案 0 :(得分:9)
取{0}位数0到9:
''.join(random.sample('0123456789', 5))
答案 1 :(得分:0)
使用zfill并设置如下:编辑以记录重复数字的数字
import random
def threeInFive(user_num):
num = str(random.randint(0, 99999)).zfill(5)
num = ''.join(set([n for n in num]))
if len(num) < 5:
print "There were repeating digits...trying again"
threeInFive(user_num)
elif str(user_num) in num:
print "The user number is in there!"
return True
else:
print "The user number : %s is not in : %s" % (user_num, num)
return False
threeInFive(500)
答案 2 :(得分:0)
答案 3 :(得分:0)
如果你生成这样的数字:
larger_number = ''.join(random.sample(string.digits, 5))
从用户那里得到这样的数字:
def get_user_num(length=5):
while True:
num = raw_input('Enter a {}-digit number with no repeating digits: '.format(length)).zfill(length)
if len(set(num)) < length:
print('Please try again.')
continue
else:
return num
您可以确定用户的号码是否在号码列表中,如下所示:
set(user_number) < set(larger_number)
然后将所有这些组合成一个程序将是一件非常简单的事情。请注意,这些数字实际上从未被视为数字 - 它们只是字符串。