我正在尝试将列表项输入字符串。然后我想将字符串存储为变量并将其打印在另一个函数中。我到目前为止的代码是:
def b():
ID = [0, 1, 2]
ID2 = 'ID={0}.{1}.{2}'.format(*ID)
return ID2
if __name__ == '__main__': ID2 = b()
def c(ID2):
print ID2
if __name__ == '__main__': myObject = c(ID2)
我得到的输出是:
[0, 1, 2]
任何帮助将不胜感激。感谢
我正在返回列表以及ID2。这导致了这个问题。对此抱歉。
代码现在正在运行。感谢
答案 0 :(得分:3)
这个怎么样:
>>> ''.join([str(x) for x in [1, 2, 3]])
'123'
答案 1 :(得分:2)
如果你想将[0,1,2]更改为“0.1.2”(就像你之前的问题中的版本字符串一样),你可以这样做。
>>> '.'.join(map(str,[0, 1, 2]))
'0.1.2'
答案 2 :(得分:2)
您可能没有与函数参数名称匹配的全局变量名称。这是合法的,但非常非常令人困惑。和调试的噩梦。
您可能不应该使用ALL UPPERCASE VARIABLE NAMES。这看起来很奇怪,使得经验丰富的Python程序员难以阅读您的代码。
您可能没有多个if __name__ == "__main__"
部分。这是非常非常混乱和调试的噩梦。
我怀疑这些“化妆品”问题使得很难弄清楚你的计划究竟出了什么问题。
def b():
id = [0, 1, 2]
aString = 'ID={0}.{1}.{2}'.format(*id)
return aString
def c(id2):
print id2
if __name__ == '__main__':
someString = b()
myObject = c(someString)
您可能会发现这更容易调试。
我的输出。
ID=0.1.2
顺便说一句。您的函数c
始终返回None
。所以myObject = c(someString)
没有多大意义。
答案 3 :(得分:1)
def b():
ID = [0, 1, 2]
ID2 = ('ID=%d.%d.%d' % tuple(ID))
return ID2
if __name__ == '__main__': ID2 = b()
def c(ID2):
print ID2
if __name__ == '__main__': myObject = c(ID2)
对我有用,没有python3方便,所以不能尝试使用.format() - 语法。
然而myObject = c(ID2)
没有意义,函数c()不会返回任何内容