2016-04-15 226 views
1
word1 = input("Random Name (ex. Ryan):") 
word2 = input("Your name (ex. why do you need an example of your name?):") 

print("To:", word1, "@gmail.com") 
print("From:", word2, "@outlook.com") 

现在,除了第1个字和第2个字之外,现在您几乎需要忽略所有内容。字符串连接和格式化| Python

我只是想知道这是为什么输出

To:name @gmail.com 

,而不是要:[email protected]

提前感谢你们!

回答

3

因为在python print中自动在print语句的参数之间加上空格,即用逗号分隔的东西。如果你想删除它,你可以将sep关键字设置为空格之外的其他分隔符。将其设置为空白字符串以便没有分隔符。

>>> print('A','string','with','spaces.') 
A string with spaces. 
>>> print('A','string','with','no','spaces.', sep = '') 
Astringwithnospaces. 
+0

非常感谢! – ValiantChampion

+1

即使我会说其他答案是走的方式,它真的很好,以便您可以更改打印功能中的分隔符 – muthan

+0

另一个答案提供了对格式化的更多控制,但这也很有用。请注意,还有一个'end'关键字,用于改变字符串尾部的内容。默认情况下它是一个换行符'\ n',但是您可以将其设置为''''以不打印到新行。 – zephyr

3

你可以做

print("To:" + word1 + "@gmail.com") 

或者

print("To:%[email protected]" % word1) 

或者

print("To:{}@gmail.com".format(word1)) 

或如评论所说:

print("To:{0:s}@gmail.com".format(word1)) 

要打印的价值你想要的方式

print(some_val, some_val2, some_val3, ...)将增加这些值之间的空间。

+1

我会使用'''print(“To:{0:s} @ gmail.com”.format(word1))'''这样''''''对于那些没有看到这个表示法。 '''0'''是第一个格式化的东西,'''''''表示一个字符串。 –