【问题标题】:Computer Science Ascii Art计算机科学 Ascii 艺术
【发布时间】:2015-03-08 05:33:06
【问题描述】:

所以对于我的代码,我创建了可以垂直打印的 ASCII 艺术。好吧,现在我想让它水平打印,但它并没有按照我想要的方式进行。如何让我的 ASCII 艺术作品水平化?另外,我需要知道什么才能让用户输入他们想要的单词,并且某个单词将以 ASCII 艺术形式打印出来?

    def print_banner(banner_str):
    horv = input("Is the banner horizontal or vertical? Respond with H or V: ")
    if horv == "V":
        for letter in banner_str:
            for string in Alphabet[letter]:
                print(string,)            
    else:
        for letter in banner_str:
            for string in Alphabet[letter]:
                print(string)

    Alphabet = {"A": ["###","# #","###","# #","# #"],
                "B": ["#  ","#  ","###","# #","###"],
                "C": ["###","#  ","#  ","#  ","###"],
                "D": ["  #","  #","###","# #","###"],
                "E": ["###","#  ","## ","#  ","###"],
                "F": ["###","#  ","## ","#  ","#  "],
                "G": ["###","# #","###","  #","###"],
                "H": ["# #","# #","###","# #","# #"],
                "I": ["###"," # "," # "," # ","###"],
                "J": ["####","  # ","  # ","# # ","### "],
                "K": ["#  #","# # ","##  ","# # ","#  #"],
                "L": ["#  ","#  ","#  ","#  ","###"],
                "M": ["#  #","## ##","# # #","#    #","#    "],
                "N": ["#   #","##  #","# # #","#  ##","#   #"],
                "O": ["###","# #","# #","# #","###"],
                "P": ["###","# #","###","#  ","#  "],
                "Q": ["###","# #","###","  #","  #"],
                "R": ["### ","#  #","### ","# # ","#  #"],
                "S": ["###","#  ","###","  #","###"],
                "T": ["###"," # "," # "," # "," # "],
                "U": ["# #","# #","# #","# #","###"],
                "V": ["# #","# #","# #","# #"," # "],
                "W": ["#   #","#   #","# # #","## ##","#   #"],
                "X": ["#   #"," # # ","  #  "," # # ","#   #"],
                "Y": ["#   #"," # # ","  #  ","  #  ","  #  "],
                "Z": ["#####","   # ","  #  "," #   ","#####"]}

    print_banner(Alphabet)

【问题讨论】:

    标签: python-2.7 ascii-art


    【解决方案1】:
    def print_banner(banner_str):
        horv = raw_input("Is the banner horizontal or vertical? Respond with H or V: ")
        if (horv == "V") or (horv == "v"):
            for letter in banner_str:
                for string in Alphabet[letter]:
                    print(string,)
                print 
        elif (horv =="H") or (horv == "h"):
            for i in xrange(5):
                for j in sorted(banner_str.keys())[:7]:
                    print banner_str[j][i]+"\t",
                print
        else:
            print "Sorry, This was not a valid input."
    
    Alphabet = {"A": ["###","# #","###","# #","# #"],
                "B": ["#  ","#  ","###","# #","###"],
                "C": ["###","#  ","#  ","#  ","###"],
                "D": ["  #","  #","###","# #","###"],
                "E": ["###","#  ","## ","#  ","###"],
                "F": ["###","#  ","## ","#  ","#  "],
                "G": ["###","# #","###","  #","###"],
                "H": ["# #","# #","###","# #","# #"],
                "I": ["###"," # "," # "," # ","###"],
                "J": ["####","  # ","  # ","# # ","### "],
                "K": ["#  #","# # ","##  ","# # ","#  #"],
                "L": ["#  ","#  ","#  ","#  ","###"],
                "M": ["#  #","## ##","# # #","#    #","#    "],
                "N": ["#   #","##  #","# # #","#  ##","#   #"],
                "O": ["###","# #","# #","# #","###"],
                "P": ["###","# #","###","#  ","#  "],
                "Q": ["###","# #","###","  #","  #"],
                "R": ["### ","#  #","### ","# # ","#  #"],
                "S": ["###","#  ","###","  #","###"],
                "T": ["###"," # "," # "," # "," # "],
                "U": ["# #","# #","# #","# #","###"],
                "V": ["# #","# #","# #","# #"," # "],
                "W": ["#   #","#   #","# # #","## ##","#   #"],
                "X": ["#   #"," # # ","  #  "," # # ","#   #"],
                "Y": ["#   #"," # # ","  #  ","  #  ","  #  "],
                "Z": ["#####","   # ","  #  "," #   ","#####"]}
    
    print_banner(Alphabet)
    

    对于水平打印字母,我们需要知道要打印的字符的长度,因为在这种情况下长度是恒定的,即5,因此我们迭代 5 次以打印每一行,并且在每一行中我们需要打印每个字符的特定元素。我已将要打印的字符限制为 7 (banner_str.keys())[:7] 但您可以根据要求对其进行更改还请注意,根据您使用的解释器,打印所有字母可能会产生垃圾输出。

    【讨论】:

    • 我试着把代码放到我的 python 中,但是因为这个代码是用 python 2 构建的,所以它一直给我垂直
    猜你喜欢
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多