这几乎没问题,但数字有时以0开头:

import random
numbers = random.sample(range(10), 4)
print(''.join(map(str, numbers)))

我发现了很多例子,但没有一个能保证序列不会以0开头.

推荐答案

我们生成1-9范围内的第一个数字,然后从剩余的数字中提取下一个3:

import random

# We create a set of digits: {0, 1, .... 9}
digits = set(range(10))
# We generate a random integer, 1 <= first <= 9
first = random.randint(1, 9)
# We remove it from our set, then take a sample of
# 3 distinct elements from the remaining values
last_3 = random.sample(digits - {first}, 3)
print(str(first) + ''.join(map(str, last_3)))

生成的数是等概率的,我们一步就得到了一个有效数.

Python-3.x相关问答推荐

Numpy argmin()以查找最近的元组

为什么我在BLE中的广告代码在发送包裹之间需要大约1秒

AddMultplicationEquality() 用于多个变量

如何在 python 中将带有时区信息的时间戳转换为 utc 时间

向前/向后移动导致移动行的数据不可见

链接列未延伸到数据框的末尾

python3,将整数转换为字节:对于小整数使用 to_bytes() 有哪些替代方法?

我正在使用 python 线程,当查询 mysql 时,代码似乎在运行并保持在无限循环中,没有返回任何错误

在 python pandas 中设置条件和分配新值

使用 OpenCV 从图像中减go 一条线

列出相同索引的Pandas

使用正确的数据类型时,使用 Cerberus 验证 JSON 架构会引发错误

使用 Python 解析 JSON 嵌套字典

smtplib 在 Python 3.1 中发送带有 unicode 字符的邮件的问题

为什么 virtualenv 会有效地禁用 Python 3 制表符补全?

无法在 Windows 8 中使用 Python 3.3 找到 vcvarsall.bat

无论如何我可以在 Google colaboratory 中下载文件吗?

Python3 - 如何从现有抽象类定义抽象子类?

Django 教程 unicode 不起作用

十六进制字符串到 Python 3.2 中的带符号整数?