簡體   English   中英

我將如何制作一個沒有重復數字且第一位必須為 0 的 4 位數字?

[英]How would I make a 4-digit number with no repeating digits and the first digit has to be 0?

我將如何制作一個 4 位數字,其中:

  • 只有第一位不能是0(只有1-9)

  • 數字彼此不同; 4 位數字中沒有重復數字

我更喜歡使用 .choice 和 .remove ,因為我正在使用列表

您可以使用 sample 生成最后 3 個數字,然后在 1 到 9 之間的剩余數字中使用 choice 生成第一個:

import random
digits = set("0123456789")
last3  = random.sample(digits,3)
first  = random.choice([*digits.difference("0",*last3)])
number = first+"".join(last3)

結果:

print(number)

# '8501'

如果您不想使用集合,則可以使用列表理解排除最后 3 位數字:

digits = "0123456789"
last3  = random.sample(digits,3)
first  = random.choice([d for d in digits[1:] if d not in last3])
number = first+"".join(last3)

或者,如果您真的想了解基本知識,只需使用循環:

import   random
digits   = list("0123456789")
number   = ""
skipZero = 1
for i in range(4):
    digit = random.choice(digits[skipZero:])
    number += digit
    digits.remove(digit)
    skipZero = 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM