百分号(%)的含义
你能解释一下这段Python代码是什么意思吗?
for v in m.getVars():
print('%s %g' % (v.varName, v.x))
打印出来的结果是
x 3
y 5
这里的'3'和'5'是'(v.varName, v.x)'的值。我不明白它是怎么知道要打印'x'和'y'的,还有'%'除了用来找余数,还有什么其他用法?
2 个回答
0
这是一种简化包含多个变量的字符串的方法。在Python中,正如你所看到的,你在打印语句中创建了一个字符串,这个字符串反映了变量v.varName和v.x。当字符串中使用百分号时,它会按顺序与你提供的参数进行匹配。
每种类型的变量都有特定的字母来表示。在你的例子中,你使用了"s"和"g",分别代表字符串和数字。当然,如果你在创建字符串(就像这个例子中那样),数字会被转换成字符串。
举个例子:
x = 20
y = "hello"
z = "some guy"
resulting_string = "%s, my name is %s. I am %g years old" % (y, z, x)
print resulting_string
结果将会是:
hello, my name is some guy. I am 20 years old
注意,变量部分的顺序决定了最终的正确顺序。
1
这个命令
for v in m.getVars():
是把模型 m 中所有的 Var 对象的列表赋值给变量 v。
接下来,你可以查询这个列表中每个变量的不同属性。
比如,要获取列表 v 中第一个变量的名称和解的值,你可以使用下面的命令
print v.varName, v.x
你可以输入 help(v) 来查看 Var 对象的所有方法。
正如其他人提到的,% 只是占位符。
要理解你的代码是怎么工作的,可以检查一下模型 m。