簡體   English   中英

在 python 中生成帶引號的隨機數

[英]generate random numbers in python with quotes

要求: ["123456","578758",......"837872"]帶引號的隨機 6 位數字列表

我試過的:

res = random.sample(range(10000, 999999), 45)
for i in range(5000):  
  print ('{"products":'+'"'+str(res)+'"'+'}')
  print("\n")

我是 python 的新手,所以請就如何達到要求提出建議

[str(x) for x in random.sample(range(10000, 999999), 45)]

你的語法有很多問題。

  1. 盡管只需要 6 個,但您正在抽取 45 個隨機樣本
  2. 您編寫了一個執行 5000 次迭代的循環
  3. 你的打印語句很奇怪

第一期

傳遞給random.sample的第二個參數指定您想要的樣本數。 如果你真的想要 6 個隨機樣本,語法應該是: random.sample(range(10000, 9999999), 6)

第 2 期

當您說for i in something時,您是在指示循環遍歷something中的每個項目。 在您的情況下,它是數字 0-4999。 這不是重點,因為您不需要循環來實現您的目標。

第 3 期

如上所述,您不需要為此使用 for 循環。 但是,如果您真的想這樣做,請像這樣構造它:

for i in res: 
    print(str(res))

一個更好的方法來做到這一點:

我將在肢體上使用 go 並假設由於您對要求的描述,您希望將這些值存儲在數組中。

如果是這種情況,我建議使用map

這看起來像:

list(map(str, random.sample(range(10000, 9999999), 6)))

如果要打印它們:

print(*list(map(str, random.sample(range(10000, 9999999), 6))), sep='\n')

輸出

list(map(str, random.sample(range(10000, 9999999), 6)))
OUTPUT>>> ['1696162', '394420', '9290621', '624215', '3367247', '2571869']

print(*list(map(str, random.sample(range(10000, 9999999), 6))), sep='\n')
OUTPUT>>> 
5957168
446219
611119
6518976
4197232
3394411

筆記

打印字符串時,引號不會顯示在控制台中。 不過不用擔心。 因為我們將這 6 個值映射到字符串,所以引號用於所有意圖和目的。

打印語句開頭的星號告訴 Python 考慮所有值。

您也不必編寫第二條打印語句來在每個值之后創建一個新行。 這可以通過將sep參數傳遞給print並為其分配'\n'的值來完成,例如: print(*something, sep='\n') 這將在新行上打印每個新值。

暫無
暫無

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

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