【问题标题】:Design using Python and Functions使用 Python 和函数进行设计
【发布时间】:2012-06-06 03:18:43
【问题描述】:

感谢 stackoverflow 上的另一位成员,我在今晚早些时候看到了这项很酷的技术。我是 python 的初学者,所以我的大部分学习都是通过阅读我拥有的这本书并编辑代码来看看它是如何工作的。

我正在尝试为菜单底部设计这个:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X  TASK1  X  TASK2  X  TASK3  X  TASK4  X  TASK5  X
X   [ ]   X   [ ]   X   [ ]   X   [ ]   X   [ ]   X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

所以你基本上看到了这个:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X                                                 X
X          TASK MANAGER - TASK SELECTION          X
X                                                 X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X                                                 X
X                 READY TO START?                 X
X              ---------------------              X
X                PRESS THE 'ENTER'                X
X                  KEY TO BEGIN!                  X
X              ---------------------              X
X                                                 X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X  TASK1  X  TASK2  X  TASK3  X  TASK4  X  TASK5  X
X   [ ]   X   [ ]   X   [ ]   X   [ ]   X   [ ]   X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

底部的目的是,如果您选择任务 2,那么它只会为选择的任何一个打印一个函数......所以它会是(如果选择了任务 2):

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X                                                 X
X          TASK MANAGER - TASK SELECTION          X
X                                                 X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X                                                 X
X                 READY TO START?                 X
X              ---------------------              X
X                PRESS THE 'ENTER'                X
X                  KEY TO BEGIN!                  X
X              ---------------------              X
X                                                 X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X  TASK1  X  TASK2  X  TASK3  X  TASK4  X  TASK5  X
X   [ ]   X   [X]   X   [ ]   X   [ ]   X   [ ]   X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

这是当前代码:

def printLine (text = ''):
    print('X {: ^47} X'.format(text))

def printSelTitle (text = '', title = None):
    print('X{: ^9}'.format(text)),

def printSelCheck (text = '', title = None):
    print('X   [ ]   X'.format(text)),

def printBorder (title = None):
    print('X' * 51)

def printBox (*lines, title = None, showBottomBorder = False):
    printBorder(title)
    printLine()
    for line in lines:
        printLine(line)
    printLine()
    if showBottomBorder:
        printBorder()

printBox('TASK MANAGER - TASK SELECTION')
printBox('READY TO START?', '-' * 21, "PRESS THE 'ENTER'",\
         'KEY TO BEGIN!', '-' * 21, showBottomBorder = True)
printSelTitle('TASK1') and printSelTitle('TASK2')
printSelCheck()
printBorder()

printSelTitle('TASK3')
printSelTitle('TASK4')
printSelTitle('TASK5')

这是当前代码的样子:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X                                                 X
X          TASK MANAGER - TASK SELECTION          X
X                                                 X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X                                                 X
X                 READY TO START?                 X
X              ---------------------              X
X                PRESS THE 'ENTER'                X
X                  KEY TO BEGIN!                  X
X              ---------------------              X
X                                                 X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X  TASK1  
X   [ ]   X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X  TASK3  
X  TASK4  
X  TASK5

有什么想法吗?提前感谢您的帮助。

最好的,

史蒂文

【问题讨论】:

    标签: python printing function


    【解决方案1】:

    如果您不想在print 之后没有换行符,请不要使用print(aasd),(这是元组构造),而是使用print('123', end='')

    打印语法差异: Python 2.x:

    print "1", # special syntax for print statement
    print "2"
    

    推论 3:

    print("1", end="") # actually returns None (print() is a function)
    print("2")
    

    两种情况的结果:12

    Python 3(交互式外壳):

    >>> a = print('123')
    123
    >>> repr(a)
    'None'
    >>> a = print('123'),
    123 # newline presents
    >>> repr(a)
    '(None,)' # result is tuple constructed by comma
    

    【讨论】:

    • 谢谢。这帮助我弄清楚了一些事情。
    【解决方案2】:

    代码如下:

    def printLine (text = ''):
        print('X {: ^47} X'.format(text))
    
    def printSelTitle (text = '', title = None):
        print('X{: ^9}'.format(text), end = ""),
    
    def printSelCheck (text = '', title = None):
        print('X   [ ]   '.format(text), end = "")
    
    def printBorder (title = None):
        print('X' * 51)
    
    def printBox (*lines, title = None, showBottomBorder = False):
        printBorder(title)
        printLine()
        for line in lines:
            printLine(line)
        printLine()
        if showBottomBorder:
            printBorder()
    
    printBox('TASK MANAGER - TASK SELECTION')
    printBox('READY TO START?', '-' * 21, "PRESS THE 'ENTER'",\
             'KEY TO BEGIN!', '-' * 21, showBottomBorder = True)
    printSelTitle('TASK1'), printSelTitle('TASK2'),\
            printSelTitle('TASK3'), printSelTitle('TASK4'),\
            printSelTitle('TASK5'), print("X")
    printSelCheck(), printSelCheck(), printSelCheck(),\
                     printSelCheck(), printSelCheck(), print("X")
    printBorder() 
    

    这是它的样子:

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    X                                                 X
    X          TASK MANAGER - TASK SELECTION          X
    X                                                 X
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    X                                                 X
    X                 READY TO START?                 X
    X              ---------------------              X
    X                PRESS THE 'ENTER'                X
    X                  KEY TO BEGIN!                  X
    X              ---------------------              X
    X                                                 X
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    X  TASK1  X  TASK2  X  TASK3  X  TASK4  X  TASK5  X
    X   [ ]   X   [ ]   X   [ ]   X   [ ]   X   [ ]   X
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    

    仍在尝试布局如何在选择时制作“X”....但我会进一步研究。

    【讨论】:

    • def printSelCheck(text = '', title = None): \\ print('X [{0}] '.format(text), end = "" )
    • 谢谢!关于如何影响 {0} 的结果,我应该阅读哪些内容?
    猜你喜欢
    • 2021-08-13
    • 2013-04-14
    • 2020-11-06
    • 2012-07-10
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多