为什么这不是字符串?

时间:2019-12-03 11:25:34

标签: python string

我正在研究Al Sweigart的“使用Python自动化无聊的东西”(到目前为止非常棒!)。

有人可以向我解释这一行代码吗?

print('Jimmy Five Times (' + str(i) + ')')

因此该行在while循环中使用,并导致打印以下内容:

  

吉米五次(0)

     

吉米五次(1)

     

吉米五次(2)

     

吉米五次(3)

     

吉米五次(4)

那太好了,但是阅读代码,我希望它只打印一次:

  

吉米五次(+ str(i)+)

当所讨论的代码用''封装时,为什么括号的内容未转换为字符串?而且,嵌套的括号也可以转换为字符串,我希望会发生这种情况,但是很明显,它的功能似乎是首先评估其内容...而我发现了。我将把它留在这里,以防其他人怀疑:

Print(

第一个字符串: 'Jimmy Five Times ('

+ str(i) + 

第二个字符串: ')'

)

3 个答案:

答案 0 :(得分:2)

这是一个简单的字符串添加:

second_string = 'second string'
print ('first string'+str(second_string)+'third string as a bracket'

在您的情况下: 第一个字符串是:“吉米五次((
第二个字符串是:str(i)
第三个字符串是:')'

自从Python 3.6实现f字符串以来,我们应该使用更简洁易读的版本:

print (f'Jimmy Five Times ({i})')

答案 1 :(得分:2)

要打印相同的内容,您也可以这样做:

print('Jimmy Five Times ({})'.format(str(i)))
#or
print(f'Jimmy Five Times ({str(i)})')

大括号内的任何代码都将执行并插入到字符串中,但是,重要的是不要在开始时忘记f"{}",否则将不起作用

答案 2 :(得分:0)

我没有正确阅读引号。下面显示了引号的第一和第二块,它们导致执行正确的代码,如书中所示:

Print(

第一个字符串: 'Jimmy Five Times ('

+ str(i) + 

第二个字符串: ')'

)