Python 将由浮点和文本组成的元组转换为单个字符串
我正在尝试将包含2个浮点和3个文本部分的元组转换为一个字符串,以便在file.write()中使用它,因为它不接受元组Python 将由浮点和文本组成的元组转换为单个字符串,python,file,text,Python,File,Text,我正在尝试将包含2个浮点和3个文本部分的元组转换为一个字符串,以便在file.write()中使用它,因为它不接受元组 testr = 'you went' ,speed ,'mph and stopped in' ,stop ,'meters' test = open('testresults.txt' ,'w') test.write(testr) test.close() 每当我试着运行这个程序时,它都会给我这个 test.write(testr) TypeError: must
testr = 'you went' ,speed ,'mph and stopped in' ,stop ,'meters'
test = open('testresults.txt' ,'w')
test.write(testr)
test.close()
每当我试着运行这个程序时,它都会给我这个
test.write(testr)
TypeError: must be str, not tuple
使用
格式
:
testr = 'you went {} mph and stopped in {} meters'.format(speed, stop)
将其转换为
字符串
test.write(str(testr))
值得庆幸的是,python 3.6使这一点非常容易理解:
testr = f'you went {speed} mph and stopped in {stop} metres'
test = open('testresults.txt' ,'w')
test.write(testr)
test.close()
否则,使用另一个答案中提到的
string.format(*args)
可以实现相同的结果。与其他答案不同,这将采用您建议的元组:
testr = 'you went' ,speed ,'mph and stopped in' ,stop ,'meters'
test = open('testresults.txt' ,'w')
test.write(" ".join(str(i)for i in testr))
test.close()
由于只有第三行与您的代码不同,下面是解释:
testr中i的第一个str(i)
:
用于-循环的内联,在python中称为内联循环。它只是在testr
元组上迭代,一个接一个地返回值str(i)
是一种类型转换,它试图将i
转换为字符串。这是必要的,因为在元组中,有些条目是String
-类型,有些变量是某种类型的数字,可能是Float
或Integer
。有关进一步阅读,请参阅和
然后加入(…)
:
这是一个字符串类型的函数,它接受一个字符串列表或元组,并且作为名称sugests,将它连接在一起,由它所作用的子字符串分隔,点前面的部分(“
)。这对我来说总是感觉有点奇怪,或者是由内而外,但它仍然是一个非常有用的功能
我希望这有帮助 那蟒蛇2呢?谢谢,它成功了!你能解释一下这是怎么回事吗?所以我可以用它来做其他的工作,或者做其他的项目。