Python2中的字符串+列表Python3中需要的函数

时间:2017-09-11 01:25:38

标签: python python-3.x

有很多关于如何解决“TypeError:无法连接'str'和'list'对象”错误的问题/答案,这就是我得到的。我是Python的新手,正在参加Python2.7中教授的在线课程(我相信),但我正在用Python 3编写。

这是我目前的代码:

 print bcolors.BOLD + self.name + "     " + str(self.hp) + "/" + str(self.maxhp) + " |" + bcolors.OKGREEN + "███████             " + "|      " \
          + str(self.mp) + "/" + str(self.maxmp) + " |" + bcolors.OKBLUE + "██████" + bcolors.ENDC + "|"

我知道我需要将一些+符号更改为逗号,因为有字符串,但我基本上尝试了所有组合并且失去了希望。

非常感谢任何帮助。我真的很抱歉,如果这张贴在别处,但我确实到处都看 - 我对python缺乏了解也不允许我将其他一些文章应用于此我不认为。

2 个答案:

答案 0 :(得分:0)

我对这个问题有点困惑。

中间有空格的

print "Hello World"是Python 2.7语法; Python 3使用print("Hello World")。如果你命令行which python它应该让你知道你正在使用哪个python作为解释器。

此外,在这种情况下,该错误意味着您正在添加strlist。唯一没有str强制转换的变量是namebcolors,因此请检查这两个变量以查看它们是否为列表。这个错误甚至可能不在这一行。

如果您想将列表中的项目连接在一起,则正确的语法与其他答案一样:''.join([str(item) for item in _list])

答案 1 :(得分:0)

加号很好。

没有用于打印的括号

例如

val expiration = LocalDateTime.now().plusHours(1)
val generatePresignedUrlRequest = GeneratePresignedUrlRequest(bucketName, objectKey).apply {
  method = HttpMethod.GET
  expiration = Date.from(expiration.atZone(ZoneId.systemDefault()).toInstant())
}
val s3client = AmazonS3Client(ProfileCredentialsProvider())
val s = s3client.generatePresignedUrl(generatePresignedUrlRequest)

对于列表,您需要print(bcolors.BOLD + self.name)

或者你可以结合这种方法

join()