【问题标题】:Python - Print alphabet in order on same linePython - 在同一行按顺序打印字母
【发布时间】:2017-09-15 01:53:12
【问题描述】:

我试图在同一行打印所有大写字母,但我不断收到语法错误。

for c in range(0, 26):
    print(chr(ord('A', end '')+c))

【问题讨论】:

  • ord 函数只接受一个参数。您可以指定 ord('A') ,这将为您提供 'A' 的 Unicode 点,它是一个字符串。这就是您收到语法错误的原因。
  • 提出好问题的提示:不要说不断收到语法错误,而是显示确切的错误消息。

标签: python python-2.7 python-3.x


【解决方案1】:

有一个名为 string 的内置函数供您导入

要打印所有大写字母,您可以这样做:

import string
print string.ascii_uppercase

如果你想在字母之间加一个空格,你可以这样做:

import string
line = ""
for i in list(string.ascii_uppercase):
    line = line + i + " "
print line

希望对您有所帮助!

【讨论】:

  • 我确信它有所帮助,但这并不能回答他的问题......为什么语法错误?
  • @TerryA 我不确定......但我确信即使没有 SyntaxError 也不会打印出所有大写字母
  • @rcw 我想你的意思是最后一行是print line
【解决方案2】:

ord() takes a single character,并将其转换为它的 Unicode 代码点。它只需要一个参数。看起来您打算将 , end '' 放在 print() 调用中。这是更新的代码:

for c in range(0, 26):
    print(chr(ord('A')+c), end='')

【讨论】:

  • 我相信结尾 '' 是为了打印功能
  • 这部分有效,但是。但是 end ' ' 是为了尝试将单词放在同一行。你给我的代码打印在不同的行上,我试图得到 ABCDEF 的输出......
  • @BB956 刚刚更新了我的答案,你只是不小心把它放在了odr() 调用中。
【解决方案3】:

似乎这个问题的大多数答案都有个别正确的部分,但不是整个解决方案。

我会推荐:

result = ""
for c in range(0, 26):
    result += chr(ord('A')+c)

print(result)

问题有两个方面。语法问题是由 , end '' 作为 ord 的参数引起的(它只需要一个参数)。多行打印是由 Python 的内置打印函数总是附加新行引起的。为了解决这个问题,您可以将结果存储在一个字符串中,并在完成构建后打印该最终字符串。您还可以考虑使用一个数组,例如ArrayVariableName.append(chr(ord('A')+c)),然后是print(''.join(ArrayVariableName))。 (我还没有测试过,但它应该可以工作。)

【讨论】:

    【解决方案4】:

    类似的东西。

    import string
    
    for letter in string.ascii_uppercase:print(letter, end=" ")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 2020-08-18
      • 2020-04-01
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      相关资源
      最近更新 更多