【发布时间】:2021-11-12 00:42:38
【问题描述】:
我只想在范围之间生成随机浮点数。但我遇到了一些问题 这是我的代码
import xlsxwriter
import random
wb = xlsxwriter.Workbook('abc.xlsx')
ws = wb.add_worksheet()
start = input("Enter the start value:")
end = input("Enter the end value:")
ws.write('A1','InputRPM')
ws.write('A3',start)
row=3
col=0
rand = [random.uniform(start,end) for i in range(20)]
rand.sort()
for i in rand:
ws.write(row,col, i)
row+=1
ws.write('A24',end)
wb.close()
错误:
Enter the start value:200
Enter the end value:300
Traceback (most recent call last):
File "file.py", line 17, in <module>
rand = [random.uniform(start,end) for i in range(20)]
File "file.py", line 17, in <listcomp>
rand = [random.uniform(start,end) for i in range(20)]
File "/usr/lib/python3.8/random.py", line 417, in uniform
return a + (b-a) * self.random()
TypeError: unsupported operand type(s) for -: 'str' and 'str'
我想在 excel 中打印生成的浮点数,而不使用 for 循环中的范围。它会在达到最终值时自动生成,它会停止生成过程。我是这个新手,所以我不知道这些事情.谁能帮我找到这个要求。
【问题讨论】:
-
您的问题是
start和end是字符串,因为input总是返回一个字符串。你可能想要start = float(input("Enter the start value:")),同样的end。 -
input()函数返回string而不是int,您需要将float/int值传递给random.uniform。 -
谢谢兄弟它的工作。你知道这个“我想在excel中打印生成的浮点数而不使用for循环中的范围。一旦达到最终值就会自动生成它会停止生成过程"
标签: python python-3.x list random excel-automation