我是python3的初学者,我使用了很多print
或logging
模块来遵循控制台上的代码。下面是一个简单的例子:两者之间有什么区别:
number = "seven"
print("I cooked " , number , " dishes")
和
number = "seven"
print("I cooked " + number + " dishes")
内部区别在于此示例(no + 符号(:
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 个对象。
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")
你没有必要坚持一种风格。您有多种选择来执行相同的操作。
运算符+
只能用于字符串。 运算符,
可用于任何类型,并在自动之前添加一个空格。 此外,+
不仅可以用于打印,还可以在,
不能时将一个字符串添加到另一个字符串。
(请注意,在你拥有的两个示例中,只需运行它们将显示结果是不同的,因为第一个示例将有一些用双空格分隔的单词。
print()
函数将接收字符串,每个字符串之间将打印出一个' '
:
print('hello', 'world')
输出:
hello world
这是因为关键字参数,sep
.默认情况下,sep=' '
,只需添加以下内容即可更改:
print('hello', 'world', sep='n')
输出:
hello
world
+
运算符不会添加任何分隔符,它只会连接字符串:
print('hello' + 'world')
输出:
helloworld
根据PEP3105打印被认为是一个采用 *args(几个位置参数(的函数。
要回答您的问题,结果是相同的;但是,您的实现是不同的。在第一种情况下,您为 print 提供了多个要打印的参数,而在第二种情况下,您为 print 提供了要打印的串联字符串。
使用
number = "seven"
print("I cooked " , number , " dishes")
print
获取 3 个不同的对象(3 个字符串(作为参数,将它们转换为字符串,然后打印。
但是使用
number = "seven"
print("I cooked " + number + " dishes")
表示首先将这三个字符串连接起来,然后作为一个对象传递给print
。
实际上,这意味着,例如,如果您这样做
print('xxx' + 5 + 'yyy')
它会抛出并出错,因为不可能直接连接字符串和 int 类型。
另请注意以下示例:
#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 个 strign(,但它不起作用,因为这些字符串首先连接起来,然后作为一个参数传递给print
。但是,在第二个示例中,字符串作为单独的参数传递,因此sep=','
工作,因为print
只知道它应该在每个给定字符串之间传递分隔符。
假设a = "how are you"
和b = "goodbye"
是2个字符串变量。
- 如果我们这样做
print(a, b)
:
该语句将首先打印a,然后打印b作为单独的字符串输出在一行上:
输出:
> how are you goodbye
- 如果我们
- 这样做
print(a + b)
语句会将这两个变量a和b连接在一起:
输出:
> how are yougoodbye
(由于 print 语句或变量中没有白色间距,这里没有间距(