How to write a repeatable raw_input?
因此,我正在尝试编写一个脚本,允许用户在不同类别下记下笔记,然后将这些笔记打印到输出文件。 下面看一些示例代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 | def notes(): global text text = raw_input(" Please enter any notes. >>>") print" ote added to report." notes_menu() def print_note(): new_report.write(" Notes: %r" % text) |
我的问题分为两部分:
我可以使用什么来做到这一点,以便如果再次调用notes方法(文本已经被分配给字符串),它会创建一个名为text1的新变量,并且会在调用notes方法和文本时多次这样做。分配?
如何让print方法继续检查,并打印尽可能多的文本?
运用
iter(callable, sentinel) -> iterator
1 2 3 4 5 6 | >>> list(iter(raw_input, '')) apple 1 2 3 foo bar ['apple', '1 2 3', 'foo bar'] |
自定义:
1 2 3 4 5 | >>> list(iter(lambda: raw_input('Enter note: '), '')) Enter note: test Enter note: test 2 Enter note: ['test', 'test 2'] |
我想你会想要使用循环来读取多行音符,将它们添加到列表中。 这是一个如何工作的例子:
1 2 3 4 5 6 7 8 9 10 | def notes(): lines = [] print"Please enter any notes. (Enter a blank line to end.)" while True: # loop until breaking line = raw_input(">>>") if not line: break lines.append(line) return lines |
您应该使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | texts = [] def notes(): global texts txt = raw_input(" Please enter any notes. >>>") texts.append(txt) # Add the entered text inside the list print" ote added to report." notes_menu() def print_note(): for txt in texts: new_report.write(" Notes: %r" % txt) |
我希望这就是你想要的。
编辑:因为我很确定我得到了投票,因为我使用