将 len() 与 python 中的字符串组合时出现意外 space

Unexpected space in outcome when combining len() to a string in python

这里是新的编程学生! 我不明白为什么这个代码 returns “troy aikman has won 3”而不是“troy aikman has won3”。 " has won" 之后没有 space 所以我假设它与 ", len()" 部分有关。我已将逗号切换为“+”,这给了我一个错误(正如我所想的那样)。我还没有找到任何说明 len() 自动添加 spaces 所以我得出结论,它必须是逗号与 len() 函数交互的方式,但对于如何或为什么?

my_dict={
    "name":"troy aikman",
    "position":"qb",
    "team":"dalls cowboys",
    "age": 54,
    "weight": 220.,
    "superbowls":["XXVII","XXVIII","XXX"],
    "awards":{
    "super_bowl_mvp":"XXVII",
    "probowl":[1991,1992,1993,1994,1995,1996],
    "man_of_the_year":1997
    }
}
print(
    my_dict['name'] + " has won", len(my_dict['superbowls'])
)
  • 使用 f-string 比在字符串组合中使用 +, 更好。

例子

my_dict={
    "name":"troy aikman",
    "position":"qb",
    "team":"dalls cowboys",
    "age": 54,
    "weight": 220.,
    "superbowls":["XXVII","XXVIII","XXX"],
    "awards":{
    "super_bowl_mvp":"XXVII",
    "probowl":[1991,1992,1993,1994,1995,1996],
    "man_of_the_year":1997
    }
}

print(f"{my_dict['name']} has won{len(my_dict['superbowls'])}")

结果

troy aikman has won3

您正在使用 print 语句打印两个以逗号分隔的不同值。所以默认情况下有一个 space

print(
    my_dict['name'] + " has won", len(my_dict['superbowls'])
)

如果你想要troy aikman has won3这个然后连接两个值(都必须是 str 形式)

print(
    my_dict['name'] + " has won"+str(len(my_dict['superbowls'])
))

在 Python 中,print 函数打印每个指定的参数,由分隔符 sep 分隔。 sep 的默认值是 space.

您正在传递两个参数:

1:my_dict['name'] + " has won"(计算结果为“特洛伊·艾克曼赢了”)

2:len(my_dict['superbowls'])(计算结果为数字 3,其字符串表示形式为“3”)

所以打印的是第一个参数(“troy aikman has won”); sep 值(space);第二个参数(“3”):“特洛伊·艾克曼赢了 3”

文档位于 https://docs.python.org/3/library/functions.html#print