我是python3的初学者,我使用很多print
或logging
模块来遵循控制台上的代码。下面是一个简单的示例:之间有什么区别
number = "seven"
print("I cooked " , number , " dishes")
和
number = "seven"
print("I cooked " + number + " dishes")
答案 0 :(得分:0)
print
语句支持多种解析值的方法。
number = 'seven'
示例:在打印语句中添加参数的不同样式
print("I cooked " , number , " dishes")
C样式格式(旧):
print("I cooked %s dishes" % number)
C样式格式(新),使用fomat
:
print("I cooked {} dishes ".format(number))
f弦样式
print(f"I cooked {number} dishes")
字符串串联:
print("I cooked " + number + " dishes")
您不必坚持一种风格。您可以通过多种方式进行相同操作。
答案 1 :(得分:0)
内部差异在于该示例(无+号):
number = "seven"
print("I cooked " , number , " dishes")
正在打印3个单独的字符串对象。 "I cooked "
是对象1,number
是对象2," dishes"
是对象3。因此,总共有3个对象。
在第二个示例中(带有+号):
number = "seven"
print("I cooked " + number + " dishes")
首先将3个单独的字符串压缩为1个新的字符串对象,然后再打印到stdout。因此,此示例总共有4个对象。
答案 2 :(得分:0)
运算符+
仅可用于字符串。
运算符,
可以用于任何类型,并且会在自动之前添加一个空格。
此外,+
不仅可以用于打印,还可以在,
不能的情况下将一个字符串添加到另一个字符串中。
答案 3 :(得分:0)
(请注意,在您拥有的两个示例中,只需运行它们,它们就会显示结果是不同的,因为第一个示例中的某些单词由双倍空格隔开。)
print()
函数将接收字符串,每个字符串将在它们之间以' '
的形式打印出来:
print('hello', 'world')
输出:
hello world
那是因为关键字参数sep
。默认情况下,sep=' '
只需添加以下内容即可更改:
print('hello', 'world', sep='\n')
输出:
hello
world
+
运算符不会添加任何分隔符,它只会连接字符串:
print('hello' + 'world')
输出:
helloworld
答案 4 :(得分:0)
根据PEP3105打印,被认为是带有* args(多个位置参数)的函数。
要回答您的问题,结果是相同的;但是,您的实现是不同的。在第一种情况下,您给print提供了多个要打印的参数,而在第二种情况下,给了print一个您想要打印的串联字符串。
答案 5 :(得分:0)
使用时
number = "seven"
print("I cooked " , number , " dishes")
print
获取3个不同的对象(3个字符串)作为参数,将它们转换为字符串,然后打印。
但是使用
number = "seven"
print("I cooked " + number + " dishes")
意味着首先将这三个字符串连接起来,然后作为一个对象传递到print
。
实际上,这意味着,例如,您这样做
print('xxx' + 5 + 'yyy')
它将抛出错误,因为不可能直接连接字符串和整数类型。
还要注意以下示例:
#concatenating 3 strings and passing them as one argument to print
>>> print('xxx' + 'a' + 'yyy',sep=',')
xxxayyy
#passing 3 strings as 3 arguments to print
>>> print('xxx','a','yyy',sep=',')
xxx,a,yyy
您可能会注意到,在第一个示例中,尽管使用了sep
(因此它应该使用给定的分隔符分隔3个strigns),但是它不起作用,因为这些字符串首先连接在一起,然后作为一个参数传递给{ {1}}。但是,在第二个示例中,字符串作为分隔的参数传递,因此print
起作用,因为sep=','
仅知道它应该在每个给定的字符串之间传递分隔符。
答案 6 :(得分:0)
我们假设a = "how are you"
和b = "goodbye"
是2个字符串变量。
print(a, b)
:该语句将首先打印 a ,然后打印 b 作为一行上输出的单独字符串:
输出:
> how are you goodbye
print(a + b)
,则该语句将把这两个变量 a 和 b 连接在一起:输出:
> how are yougoodbye
(这里没有空格,因为在打印语句或变量中没有空格)