Python 将由浮点和文本组成的元组转换为单个字符串

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

我正在尝试将包含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 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呢?谢谢,它成功了!你能解释一下这是怎么回事吗?所以我可以用它来做其他的工作,或者做其他的项目。