生成一组在指定范围内、带有特定小数位数且可被2整除的随机数,然后将这些数填入Excel文件中。
使用Python生成一组在指定范围内、具有特定小数位数,并且可被2整除的随机数。
首先,定义一个函数generate_divisible_by_two
,通过循环生成符合条件的随机数列表。
然后,用户指定了起始数、结束数、随机数数量和保留的小数位数。程序生成符合条件的随机数并打印出来。
接着,创建一个新的Excel工作簿,将这些随机数填入工作表中的一行,并保存为名为"random_numbers.xlsx"的Excel文件。
最后,程序会显示成功将符合条件的随机数填入Excel文件中的消息。
具体代码如下,可复制后直接运行:
import random
from openpyxl import Workbook
def generate_divisible_by_two(start, end, count, decimal_places):
random_numbers = []
while len(random_numbers) < count:
# 根据小数位数生成随机数
if decimal_places == 0:
random_num = random.randint(start, end) # 生成整数
else:
random_num = round(random.uniform(start, end), decimal_places) # 生成带小数的浮点数
# 检查是否能被2整除
if decimal_places == 0 and random_num % 2 == 0:
random_numbers.append(random_num)
elif decimal_places > 0 and round(random_num * (10 ** decimal_places)) % 2 == 0:
random_numbers.append(random_num)
return random_numbers
# 用户输入
start_num = 295 # 起始数
end_num = 297 # 结束数
count = 20 # 随机数数量
decimal_places = 2 # 保留小数位数(0:整数,1:一位小数,2:两位小数)
# 生成符合条件的随机数
random_numbers = generate_divisible_by_two(start_num, end_num, count, decimal_places)
# 打印符合条件的随机数
print("生成的随机数为:")
for num in random_numbers:
print(num)
# 创建一个新的Excel工作簿
workbook = Workbook()
sheet = workbook.active
# 将符合条件的随机数填入一行中
row = 1 # 行号
for i, num in enumerate(random_numbers):
cell = sheet.cell(row=row, column=i + 1)
cell.value = num
# 保存Excel文件
workbook.save("random_numbers.xlsx")
print("符合条件的随机数已成功填入Excel文件中。")