首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个在“I-”中的“-”之后有一个额外的空间?

为什么这个在“I-”中的“-”之后有一个额外的空间?
EN

Stack Overflow用户
提问于 2022-11-01 12:48:12
回答 5查看 55关注 0票数 3

我正在通过zybooks上一门课,这里的空格有点不太好用。我不知道是什么造成了这个额外的空间,所以如果有任何帮助,我们将不胜感激。

这方面的说明:

美国主要州际公路编号为1-99。奇数(如5或95)向北/南,而偶数(如10或90)向东/西。辅助公路编号为100-999,并以最右边两位数表示主要公路的服务.因此,I-405服务I-5,I-290服务I-90.注: 200不是有效的辅助公路,因为00不是有效的主公路号码。

给定一个公路编号,说明它是主干道还是辅助公路。如果是辅助性的,说明它服务的主要公路是什么。还指出(主要的)公路是否北/南或东/西。

代码语言:javascript
复制
highway_number = int(input()) 
if highway_number == 0:
    print(highway_number, 'is not a valid interstate highway number.')
if highway_number in range(1,99+1):
     if highway_number % 2 == 0:
         print('I-',highway_number,"is primary, going east/west.")
     else:
          print('I-',highway_number,"is primary, going north/south.")
else:
  served = highway_number % 100 
  if highway_number >= 1000:
    print(highway_number,'is not a valid interstate highway number.')
  if highway_number in range(99,999+1):
     if highway_number == 200:
       print(highway_number,'is not a valid interstate highway number.')
     elif highway_number % 2 == 0:
         print('I-',highway_number,'is auxiliary, serving I-','%.f,'%served,'going east/west.')
     else:
          print('I-',highway_number,'is auxiliary, serving I-','%.f,'%served, 'going north/south.')

一切都正常工作,我只是在“I-”之后得到了额外的空间。

EN

回答 5

Stack Overflow用户

发布于 2022-11-01 13:00:22

这就是印刷术的原理。它增加了每个论点之间的空间。这就是为什么

代码语言:javascript
复制
print(1,2,3)

打印1 2 3而不是123

所以,大多数情况下,你想要那种行为。

话虽如此,你还是可以改变的

代码语言:javascript
复制
print(1,2,3, sep='')

打印123

在您的情况下(还没有解决方案)

代码语言:javascript
复制
print("I-", highway_number,"is primary, going east/west.", sep='')

但是,你看,现在你

代码语言:javascript
复制
I-90is primary, going east/west.

所以,你看,你自己,你想要那个空间。只是不是到处都是。如果现在添加了sep='',则必须显式地添加所需的空格

代码语言:javascript
复制
print("I-",highway_number," is primary, going east/west.", sep='')

另一种方法是打印一个f-字符串,在其中可以插入值。

代码语言:javascript
复制
print(f"I-{highway_number} is primary, going east/west.")

或者混合

代码语言:javascript
复制
print(f"I-{highway_number}", "is primary, going east/west.")

或者一些变体( python有多种方法打印包含值的字符串)

代码语言:javascript
复制
print("I-%d is primary, going east/west."%(highway_number,))
代码语言:javascript
复制
print("I-{} is primary, going east/west.".format(highway_number))

但最快和最简单的方法是f-string (它们也是最近的方法,这解释了为什么另一种存在,而不是那么简单和快速。再加上其他的方法可以做更多的事情,但与我们的情况无关)

票数 6
EN

Stack Overflow用户

发布于 2022-11-01 12:51:45

print() python中,如果在变量之间添加,,默认情况下它会添加一个空格。为了避免这种情况,您可以用,更改+ (将变量类型更改为字符串)

代码语言:javascript
复制
print("Hi",".") # Hi .
print("Hi"+".") #Hi.

或者,您也可以使用f-字符串来方便管理。

代码语言:javascript
复制
a = "."
print(f"Hi{a}") #Hi.
print("Hi{0}".format(a)) #Hi.
票数 1
EN

Stack Overflow用户

发布于 2022-11-01 12:51:57

使用

代码语言:javascript
复制
print('I-',highway_number,"is primary, going east/west.", sep="")

若要删除每个打印项之间添加的空间,请执行以下操作。sep是分隔符的缩写。更多细节:https://docs.python.org/3/library/functions.html#print

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74276204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档