如何在逗号后不打印空格

4
这是我的当前代码。print语句会在“!”之前放置一个空格,我已经在论坛上搜索了一个小时,但现在对我来说一切都太复杂了。这是一个愚蠢的问题,但我必须知道为什么在逗号后添加这个随机空格。
fn = input("What's your First Name? ")
ln = input("What's your Last Name? ")
print ('Hello,',fn, ln,'!')

5个回答

5

这是一个愚蠢的问题,但我必须知道为什么在逗号后添加了这个随机空格。

打印的默认设置是在逗号后添加空格。

去除此处 ! 前面的空格的一种方法是:

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

Out : Hello, First Last!

这里的 end= 指定了在 print() 语句结束时应该打印什么,而不是 默认换行符

另一种更简单的方法就是将字符串 连接 起来。例如:

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

4
当你打印一个包含字符串的列表时,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

你可以将元素合并成一个字符串,或者(更好的方法)使用字符串格式化输出。
>>> 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!
>>>

4
在Python 3.6中,您可以使用易读性很高且比其他格式化方法略快的f字符串:
print(f'Hello {fn} {ln}!')

2

这是一个格式化字符串的任务。

Python 3:

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

Python 2:

print 'Hello %s %s!' % (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分隔

默认情况下,sep是一个空格(' '),因此您会在传递给function的每个参数之间得到空格。如果您自己将感叹号连接到ln上,则不会插入默认的sep参数,因此您将不会得到空格。


ln转换为字符串是不必要的,因为ln已经是一个字符串。 - Kaushik NP
@KaushikNP 我在添加文档时意识到了这一点!谢谢 :) - Joe Iddon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接