【问题标题】:Why are there spaces in the middle of printed integers? [duplicate]为什么打印的整数中间有空格? [复制]
【发布时间】:2019-11-19 18:52:57
【问题描述】:

我目前正在做一个 repl.it 的教程,并且已经使用这个网站进行了一些 Web 开发。我不明白如何解决这个问题,我认为我做的一切都是正确的,除了 Python 3 打印出来的中间有一个空格。

问题是: 给定一个两位整数,交换其数字并打印结果。

我写的代码是这样的:

a = int(input())
b = int(a / 10) 
c = int(a % 10)
print(c, b)

当我将示例输入放入 79 时,它似乎正确交换了,但它留下了一个空格,我知道从技术上讲它是一个字符并且是错误的。

Input: 79

Output: 9 7

感谢您的回答!

【问题讨论】:

  • 您可以使用print(..., sep='')str 进行数字连接。
  • 打印中的, 会添加一个空格。您可以按照上面的评论显示更改连字符,或者您可以执行print(f"{c}{b}") 甚至print(str(c) + str(b)) 之类的操作(尽管我建议坚持使用格式字符串)。
  • print(c * 10 + b)
  • 请问还有什么其他分隔符可以代替逗号,我现在知道其中添加了一个空格?

标签: python python-3.x


【解决方案1】:

问题

print 语句中的逗号告诉 python 放一个空格。

解决方案

你想把两个整数作为字符串放在一起,所以这是你最好的方法:

a = int(input())
b = int(a / 10) 
c = int(a % 10)
print("{0}{1}".format(c, b))

用代码试验

我邀请您尝试对格式字符串进行一些变体,以更好地了解其工作原理。

ex1

print("{0} and {1}".format(7, 9))
# output: 7 and 9

检查当您更改字符串中的字符或格式函数时会发生什么。

ex2

print("My first name is {0} and {0} likes {1}!".format("Samy", "pie"))
# output: My first name is Samy and Samy likes pie!

我希望格式函数在字符串中执行 substitutions 变得很清楚。

"{0}" 被替换为格式调用的第一个参数。 "{1}" 被替换为格式调用的第一个参数。 等等..

你可以有额外的参数:

ex3

print("My favorite numbers are {0}, {1}, {2}, and {3}.".format(9, 23, 45, 97))
# output: My favorite numbers are 9, 23, 45, and 97.

更多信息

我最喜欢的学习 python 的方式总是反复试验,并试验代码。总感觉语言希望我这样做,但另一个学习的好方法是阅读规范。

访问格式化函数的规范:https://docs.python.org/3.4/library/string.html#format-string-syntax

您将了解有关该功能的所有知识。

最值得注意的是,

field_name 本身以 arg_name 开头,该 arg_name 可以是数字或关键字。如果它是一个数字,它引用一个位置参数,如果它是一个关键字,它引用一个命名关键字参数。如果格式字符串中的数字 arg_names 依次为 0、1、2、...,则它们都可以省略(不仅仅是一些),并且数字 0、1、2、... 将自动按该顺序插入.

请注意,field_name 指的是 {} 内部的内容

【讨论】:

  • ^^^ 在这里使用.format 是非常不必要的。您可以改用print 中的sep 参数来执行此操作。
  • 或者,f'{c}{b}' 在最近的 Python 版本中使用新的格式化选项。
  • 请您逐步解释一下,这是做什么的?我比较新,我发现很难理解这里发生的所有错综复杂的事情。
  • @Esmooth39 你试过这个例子吗?
  • @SamyBencherif 是的,我做到了,但是,我不明白它是如何工作的。我很高兴它确实如此,但我做本教程的全部目的是让我能够理解它是如何工作的。我只是想知道你能不能把它拼出来,因为我不明白你使用了什么功能,它们是如何工作的,等等。
猜你喜欢
  • 1970-01-01
  • 2021-10-30
  • 2019-05-31
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 2021-12-15
  • 2021-03-30
  • 2022-08-17
相关资源
最近更新 更多