Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用两个变量生成数据_Python_String_For Loop_Typeerror - Fatal编程技术网

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)