Python 用两个变量生成数据
考虑到车辆数量(Python 用两个变量生成数据,python,string,for-loop,typeerror,Python,String,For Loop,Typeerror,考虑到车辆数量(I)和到达时间(j),我试图生成一个文件,但我无法使代码正常工作。 例如,如果想要5辆介于0和60之间的车辆[i=5,j=(0,60)],则生成如下内容: <routes> <vehicle id="left_0" type="typeWE" route="left" depart="8" /> <vehicle id="left_1" type="typeWE" route="left" depart="17" /> <vehicle
I
)和到达时间(j
),我试图生成一个文件,但我无法使代码正常工作。
例如,如果想要5辆介于0和60之间的车辆[i=5,j=(0,60)],则生成如下内容:
<routes>
<vehicle id="left_0" type="typeWE" route="left" depart="8" />
<vehicle id="left_1" type="typeWE" route="left" depart="17" />
<vehicle id="right_2" type="typeWE" route="right" depart="39" />
<vehicle id="up_3" type="typeNS" route="up" depart="50" color="1,0,0"/>
<vehicle id="left_4" type="typeWE" route="left" depart="58" />
<routes>
但事实并非如此,但在此我将定义车辆数量和出发时间:
for i in range(N):
for j in range(M):
if random.uniform(0, 1) < pWE:
print(' <vehicle id="right_%i" type="typeWE" route="right" depart="%j" />' % (
vehNr, i, j), file=routes)
vehNr += 1
lastVeh = i
范围(N)内的i的:
对于范围内的j(M):
如果随机均匀(0,1)
好的,我现在明白你的意思了
%i
是整数的占位符,而python中无法识别%j
。这与i或j无关
使用%i
两次不是问题
如果我们仔细查看不起作用的代码:
print(' <vehicle id="right_%i" type="typeWE" route="right" depart="%j" />' % (
vehNr, i, j), file=routes)
打印(“”%(
vehNr,i,j),文件=路由)
您试图插入3个值,但只有两个可能的占位符(%i,%j)(请记住%j是不正确的占位符) 我不知道相扑是什么。不管怎样,错误到底发生在哪里?请回答您的问题,并添加您获得的完整回溯。您正在以格式字符串形式使用%j(在
depart=
旁边),这是不受支持的。请为您的变量类型(可能是%d)输入正确的代码,您正在运行哪个Python版本?您现在可以使用f'
或较旧但熟悉的str.format()
,而不是%s,%d,%i。您可以使用format<代码>“您使用%i两次是对的,这不是问题。但是我想使用两个变量i和j,i变量必须创建100辆车,rute和j变量必须取0到1600之间的数字。有什么建议吗?@AlexanderMartínez对不起,我不完全理解你的意思。您可以尝试更新您的问题吗?%i
中的i
表示要显示的值的类型(整数);它与正在显示的变量的名称完全无关<代码>%i“%j是完全有效的代码。
for i in range(N):
for j in range(M):
if random.uniform(0, 1) < pWE:
print(' <vehicle id="right_%i" type="typeWE" route="right" depart="%j" />' % (
vehNr, i, j), file=routes)
vehNr += 1
lastVeh = i
print(' <vehicle id="right_%i" type="typeWE" route="right" depart="%j" />' % (
vehNr, i, j), file=routes)