gpt4 book ai didi

python - 为什么我的函数用一个值代替另一个值?

转载 作者:太空宇宙 更新时间:2023-11-03 13:56:54 27 4
gpt4 key购买 nike

我在 .txt 文件中有一个车辆数据库。每条线路都有不同的车辆。每辆车都有一个 x 值和一个 y 值(均默认为 2.5)每辆车的 x 和 y 应 >= 0 且 <= 5(并且最多保留一位小数)。

我希望我的 refresh() 函数随机重新分配每条线路(每辆车)新的 x 和 y 坐标。

该函数还算可以,但是在文本文件中,虽然每一行的值不同,但每一行的 x 和 y 值是相同的。

我得到类似的东西:

第 1 行:x = 0.8 | y = 0.8

第 2 行:x = 4.1 | y = 4.1

我想要的是这样的:

第 1 行:x = 0.3 | y = 3.1

第 2 行:x = 2.4 | y = 1.7

def refresh():
new_positions = []
with open("Vehicles.txt", "r") as file:
lines = file.readlines()
for line in lines:
old_line = line.split(" | ")
x_to_change = old_line[14]
y_to_change = old_line[15]
pre_random_x = random.uniform(0, 5)
pre_random_y = random.uniform(0, 5)
random_x = str(round(pre_random_x, 1))
random_y = str(round(pre_random_y, 1))
new_line = line.replace(x_to_change, random_x)
new_line_2 = new_line.replace(y_to_change, random_y)
new_positions.append(new_line_2)
with open("Vehicles.txt", "w") as file:
file.writelines(new_positions)
print("VEHICLE POSITIONS SUCCESSFULLY REFRESHED.\n")

最佳答案

在您的原始文本文件中,x 和 y 都默认为 2.5。

线

new_line = line.replace(x_to_change, random_x)

将 2.5 的 each 外观更改为 random_x -- 所以这就是两个数字。

最好让它们默认为不同的数字,或者如果为时已晚,请重新创建新行

new_line = ' | '.join(old_line[:14] + [random_x, random_y] + old_line[16:])

甚至

old_line[14:16] = [random_x, random_y]
new_line = ' | '.join(old_line)

在这两种情况下,结果都不取决于字段中的原始值。

关于python - 为什么我的函数用一个值代替另一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54469592/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com