[英]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.