创建带有对正的python行对列表

2024-10-01 04:44:47 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我必须获得用户对行和列的输入,同时询问他们如何输入 希望他们的列对齐。举个例子来说,他们想要正确的理由。我该怎么做?在

numofrows = rawinput('# rows:')
numofcolumns = rawinput('# columns:')
for x in range(numberofcolumns):
    justify = rawinput('Do you want left, center, or right?')

Tags: columns用户inyouforrangedo例子
1条回答
网友
1楼 · 发布于 2024-10-01 04:44:47

您似乎在询问如何为单独的列请求对齐设置,这些列的数目是numofcolumns。到目前为止,对程序最简单的更改是将rawinput更正为raw_input,并在最后一个提示中添加一个列号,并将结果保存在列表中:

nrows = int(raw_input('# rows: '))
ncolumns = int(raw_input('# columns: '))
justify = []
for x in range(ncolumns):
    j = raw_input('Select left, center, or right justification in column '+str(x+1)+' by L,C,R: ')
    justify.append(j.upper())
print justify

例如,对于ncolumns = 4,四个问题如下

^{pr2}$

将出现,如果用户依次以字母L、R、C和L(大写或小写)响应,print语句将打印['L', 'R', 'C', 'L']。在

当然,这样的界面使用起来很笨拙;一方面,如果用户在输入了十几个其他规范后发现第4列的规范中有错误,就必须从头开始。另一方面,程序很难从脚本中使用。对于下面的示例,用户不容易在下面的示例中找到解决问题的方法。此代码显示一条消息Select column justification settings, then click Go,并显示一个标有L、C、R的单选按钮网格。在用户对对齐设置满意并单击Go后,程序将打印一个列表,如[1,1,1,0,2],它指示C,C,C,L,R选项,如下图所示。 grid of radio buttons 这个演示程序不输入nrowsncolumns,而是设置ncolumns=5。在

#!/usr/bin/env python
# Set up a simple horizontal menu with some editable radio buttons
import gtk
def bcallback(w, i, j):         # Radio button callback
    settings[i] = j
# create set of radio buttons
ncolumns = 5
W = gtk.Window()
W.connect('destroy', gtk.main_quit)
W.set_title('Column-justification settings')
box = gtk.HBox()
W.add(box)

for i in range(ncolumns):
    col = gtk.VBox()
    b = gtk.RadioButton(None, 'L')
    rb = [b, gtk.RadioButton(b, 'C'), gtk.RadioButton(b, 'R')]
    for j,b in enumerate(rb):
        col.pack_start(b)
        b.connect('toggled', bcallback, i, j)
    box.pack_start(col)

b = gtk.Button(None, 'Go')
b.connect('button-press-event', gtk.main_quit)
box.pack_start(b)
W.show_all()       # Make menu available for showing
settings = [0 for i in range(ncolumns)]
print 'Select column justification settings, then click Go'
gtk.main()
print settings

相关问题 更多 >