如何消除输入和标点符号之间的空格?

问题描述

我正在尝试输出以下内容

What is your name? Amanda
How old are you? 15
    
Hello Amanda! You were born in 2005.

但我在标点符号前总是有空格:

Hello Amanda ! You were born in 2005 .

代码如下:

# User Input
usr_name = input('What is your name?')
usr_age = int(input('How old are you?'))
# Year Born Calculation
year_born = 2020 - usr_age
# Final Output
print('Hello',usr_name,'!','You were born in',year_born,'.')

谢谢!

解决方法

这是因为从技术上讲,Python 中的 print 语句在每次连接字符串时都会留下一个空格。这是该“方法”的默认设置。

大多数情况下,最好使用新的 Python 格式字符串。不过,您必须使用 Python 3.6+ 版。 Python 格式的字符串也称为“f-strings”。

print(f"Hello {usr_name}! You were born in {year_born}.")

使用 .format 也可以解决您的问题。这个需要 Python 3.0 及更高版本。

print("Hello {}! You were born in {}.".format(usr_name,year_born))

进一步阅读:Python's docs

,

您可以尝试将实际字符串连接作为另一种选择:

# User Input
usr_name = input('What is your name?')
usr_age = int(input('How old are you?'))
# Year Born Calculation
year_born = 2020 - usr_age
# Final Output
answer = 'Hello ' + usr_name + '! ' + 'You were born in ' + str(year_born) + '.'
print(answer)
,

默认情况下,print() 语句在其参数之间插入一个空格。要覆盖此功能,您可以使用 sep='' 参数:

print('Hello ',usr_name,'! ','You were born in ',year_born,'.',sep='')

或者您可以完全使用另一种方法:字符串集中(一个很好的实践,前一种方法仅适用于 print 语句)。

print('Hello ' + usr_name + '! ' + 'You were born in ' + year_born + '.')

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...