python - 生成具有 n 位的随机数并避免使用 0 作为第一位?
问题描述
如何编写一个函数,该函数接受一个数字n
并返回一个随机生成的具有精确n
数字的数字(以 0 开头除外)。例如,如果n
为 2,则函数可以随机返回 10-99 范围内的数字,但 07,02 等不是有效的两位数。
解决方案
这是一个函数,它获取输入的位数ndigits
,并返回一个带有数字的随机数ndigits
。我使用 10 的幂来获得带数字的ndigits
数字范围。
import random
...
def random_ndigits(ndigits):
min_num = 10 ** (ndigits - 1)
max_num = (10 ** ndigits) - 1
if ndigits == 1:
min_num = 0
return random.randint(min_num, max_num)
推荐阅读
- java - 为什么我不能将整数转换为字符串?
- reactjs - 我的 React 网页不再显示我的动态图像列表
- javascript - 当我向 Swiper 滑块添加幻灯片时,为什么添加了三张幻灯片而不是一张?
- python - 在本地服务器上使用 Python 预提交
- java - 按两个参数自定义排序无法正常工作
- r - sf multipolygon 错误:C 堆栈使用量太接近限制
- google-apps-script - 谷歌应用脚本根据依赖下拉列表粘贴行
- intellij-idea - IntelliJ 项目工具窗口的顶行是什么意思?
- php - 尽管其他列包含不同的值,但是否有隐藏一列中的重复项的功能?
- c# - ASP.NET - 类型或命名空间不存在