2017-09-21 117 views
2

这是我当前的代码。打印将在“!”之前放置一个空格我在论坛上搜索了一个小时,但现在对我来说一切都太复杂了。这是一个愚蠢的问题,但我必须知道为什么在逗号后添加这个随机空间。如何在逗号后不打印空格

fn = input("What's your First Name? ") 
ln = input("What's your Last Name? ") 
print ('Hello,',fn, ln,'!') 

回答

0

当你打印一个字符串列表python插入一个空格。

$ python3 
Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 08:49:46) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> print('My','name','is','doug') 
My name is doug 
>>> print('My'+'name'+'is'+'doug') 
Mynameisdoug 

你想要将你的元素结合成单个字符串OR(更好的方法)使用字符串格式化输出。

>>> fn = "Bob" 
>>> ln = "Jones" 
>>> msg = "Hello, "+fn+" "+ln+"!" 
>>> print(msg) 
Hello, Bob Jones! 
>>> msg = "Hello, {0} {1}!".format(fn,ln) 
>>> print(msg) 
Hello, Bob Jones! 
>>> 
2

这是一个愚蠢的问题,但我要知道为什么它是一个逗号后加入这个随机 空间。

打印的默认设置是这样的,即逗号在其后面添加空格。这里!之前去除空间

一种方法是这样做的:

print('Hello,',fn, ln, end='') 
print('!') 

Out : Hello, First Last! 

这里end=指定了应当在打印()语句而不是default newline末进行打印。

另一种更简单的方法是只给concatenate这个字符串。即,

print('Hello,',fn, ln + '!') 
2

这是格式化字符串的工作。

的Python 3:

print('Hello {} {}!'.format(fn, ln)) 

的Python 2:

print 'Hello %s %s!' % (fn, ln) 
2

在Python 3.6,你可以使用f字符串这非常可读的,比其他格式的方法稍快:

print(f'Hello {fn} {ln}!') 
0

您可以采取的感叹号(ln)之前的元素并连接所有的'!'到最后:

fn = input("What's your First Name? ") 
ln = input("What's your Last Name? ") 
print ('Hello,', fn, ln + '!') 

,并提供:

Hello, Fist Last! 

print()声明文档指出:

所有非关键字参数将转换为像STR字符串()不和写入流,由九月

分离,因为在默认情况下,sep是一个空间(' '),你每个参数之间得到空间你通过了function。如上所述,如果您自己将感叹号连接到ln,则不会插入默认的sep参数,并且您将不会获得空间。

+0

将'ln'转换为字符串是不必要的,因为'ln'已经是一个字符串 –

+0

@KaushikNP我在添加文档时意识到这一点!谢谢 :) –

相关问题