【问题标题】:Program in Python for alphabets in patternPython中的程序用于模式中的字母
【发布时间】:2015-12-21 19:37:02
【问题描述】:

我写了这个程序:

for i  in range(1,6):
    for j in range(65,65+i):
        a =  chr(j)
        print (a)
    print

我想打印如下图案:

A
A B
A B C
A B C D
A B C D E

但我没有得到想要的输出

我来了

A

A
B

A
B
C

A
B
C
D

A
B
C
D
E

【问题讨论】:

  • 你试过print a,吗?逗号使输出在同一行。
  • 是的,我知道了,我必须在 print a 后使用逗号,

标签: python


【解决方案1】:

在python 2中,只需在print语句后加一个逗号即可:

for i in range(1, 6):
    for j in range(65, 65+i):
        a = chr(j)
        print a,
    print

对于 python 3,或者在 python 2 中使用from __future__ import print_function,你会做这样的事情:

for i in range(1, 6):
    for j in range(65, 65+i):
        a = chr(j)
        print(a, end=" ")
    print()

请注意,我将空格 (" ") 作为结束字符。您可以将其设置为 "" 并且输出将没有空格,如下所示:

A
AB
ABC
ABCD
ABCDE

【讨论】:

  • from __future__ import print_function 是 Python 3 版本,也可以在 Python 2.6 和更高版本中工作。
【解决方案2】:

您也可以使用str.join 使用string.ascii_uppercase

from string import ascii_uppercase
for i in range(1, 6):
    print(" ".join(ascii_uppercase[:i]))

或者使用你的范围逻辑:

for i in range(1, 6):
    print(" ".join(chr(j) for j in range(65, 65 + i)))

【讨论】:

  • 我只是在输入这个答案,主要是因为构造字符串 A-E 并一次性打印它比调用 print 6 次以单独打印每个字母和换行符要快得多。
【解决方案3】:

print a(或print (a))将打印一个换行符。如果你想禁止换行,你可以写

print a,

更多信息见问题:Printing without newline (print 'a',) prints a space, how to remove?

【讨论】:

  • 还有一个不错的 SO 答案,它根据不同的 Python 版本区分 here
【解决方案4】:
  • 在 python 3 的 print(a) 后面加一个逗号。
  • 在 python 2 中,您只需将 end=" " 放入 print(a,end=" ")

    #!usr/bin/env python
    for i  in range(1,6):
        for j in range(65,65+i):
            a =  chr(j)
            print (a),
            print
    

【讨论】:

    【解决方案5】:
    n=int(input())
    for i in range(1,n+1):
        print(" ")
        for j in range(65,65+i):
            a=chr(j)
            print(a,end=" ")
        print
    
    

    【讨论】:

      【解决方案6】:

      你的代码的问题是你没有在 print 语句中使用 end=" " ,它需要使用 end=" " 因为 python print() 函数默认打印在新行中,这就是为什么每次迭代它正在跳入新行。更正您的代码是:

      for i in range(1,6):
          print(" ")
          for j in range(65,65+i):
              print(chr(j),end=" ")
          print("")
      

      【讨论】:

        【解决方案7】:
        for i  in range(1,6):
        for j in range(65,65+i):
            a =  chr(j)
            print (a, end = " ")
        print()
        

        这里,修改是在我刚刚添加结束参数的第一个打印语句中。

        【讨论】:

          【解决方案8】:
          for i  in range(1,6):
              for j in range(65,65+i):
                  a =  chr(j)
                  print (a)
                  print("")
          

          输出:

          C
          
          A                                                                                                                               
          
          B                                                                                                                               
          
          C                                                                                                                               
          
          D                                                                                                                               
          
          A                                                                                                                               
          
          B                                                                                                                               
          
          C                                                                                                                               
          
          D                                                                                                                               
          
          E  
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-21
            • 1970-01-01
            相关资源
            最近更新 更多