使用对正创建python行与列表
假设我必须获得用户对#行和列的输入,同时询问他们将如何处理 希望他们的列对齐。比如说,对于这个例子,他们希望它是正确的。我该怎么办使用对正创建python行与列表,python,input,iteration,Python,Input,Iteration,假设我必须获得用户对#行和列的输入,同时询问他们将如何处理 希望他们的列对齐。比如说,对于这个例子,他们希望它是正确的。我该怎么办 numofrows = rawinput('# rows:') numofcolumns = rawinput('# columns:') for x in range(numberofcolumns): justify = rawinput('Do you want left, center, or right?') 似乎您正在询问如何为单独的列请求对齐
numofrows = rawinput('# rows:')
numofcolumns = rawinput('# columns:')
for x in range(numberofcolumns):
justify = rawinput('Do you want left, center, or right?')
似乎您正在询问如何为单独的列请求对齐设置,这些列的编号为
numofcolumns
。到目前为止,对程序最简单的更改是将rawinput
更正为raw\u 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
,有四个问题
Select left, center, or right justification in column 1 by L,C,R:
将出现,如果用户依次用大写或小写字母L、R、C和L进行响应,则打印语句将打印['L','R','C','L']
当然,这样的界面使用起来很笨拙;一方面,如果用户在输入十几个其他规范后发现第4列的规范中有错误,则有必要重新开始。另一方面,该程序很难从脚本中使用。下面显示的示例代码没有解决后一个问题,但使用户可以轻松地按任意顺序进行列对齐设置。此代码显示一条消息,选择列对齐设置,然后单击Go
,并显示一个标有L、C、R的单选按钮网格。当用户对对齐设置感到满意并单击Go后,程序将打印一个类似于[1、1、1、0、2]的列表,其中指示C、C、C、L、R选择,如下图所示。
此演示程序不输入nrows
或ncolumns
,而是设置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