- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 python 代码中使用 raw_input 来获取列表的用户输入,如下所示。
input_array.append(list(raw_input()));
用户输入为:
1 2 3 5 100
但是代码将输入解释为
[['1', ' ', '2', ' ', '3', ' ', '5', ' ', '1', '0', '0']]
尝试:如果我使用纯 input()
而不是 raw_input()
,我会在控制台中遇到问题。
"SyntaxError: ('invalid syntax', ('<string>', 1, 3, '1 2 3 4 100'))"
注意:我不允许像
这样的列表格式输入[1,2,3,5,100]
有人可以告诉我如何进一步进行吗?
最佳答案
>>> [int(x) for x in raw_input().split()]
1 2 3 5 100
[1, 2, 3, 5, 100]
>>> raw_input().split()
1 2 3 5 100
['1', '2', '3', '5', '100']
创建一个由空格分隔的新列表,然后
[int(x) for x in raw_input().split()]
将这个新列表中的每个字符串转换为一个整数。
list()
是一个从可迭代对象构造列表的函数,例如
>>> list({1, 2, 3}) # constructs list from a set {1, 2, 3}
[1, 2, 3]
>>> list('123') # constructs list from a string
['1', '2', '3']
>>> list((1, 2, 3))
[1, 2, 3] # constructs list from a tuple
所以
>>> list('1 2 3 5 100')
['1', ' ', '2', ' ', '3', ' ', '5', ' ', '1', '0', '0']
也可以,list
函数遍历字符串并将每个字符附加到一个新列表中。但是,您需要用空格分隔,因此 list
功能不适用。
input
获取一个字符串并将其转换为一个对象
'1 2 3 5 100'
不是有效的 python 对象,它是由空格分隔的 5 个数字。为了清楚这一点,考虑输入
>>> 1 2 3 5 100
SyntaxError: invalid syntax
进入 Python Shell。这只是无效的语法。所以 input
也会引发此错误。
重要的一点:input
不是一个安全的函数,所以即使你的字符串是 '[1,2,3,5,100]'
你不应该使用 input
因为有害的 python 代码可以通过 input
执行。如果出现这种情况,请使用 ast.literal_eval
:
>>> import ast
>>> ast.literal_eval('[1,2,3,5,100]')
[1, 2, 3, 5, 100]
关于python - 在 python 中使用 raw_input 获取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27308400/
当我尝试使用 help() 获取有关 raw_input() 的一些函数信息时,我看到的是一些相当难以理解的内容: Help on function in module IPython.kernel
#Print out the menu print """ ############################################### # 1 - Introduction.
我编写了下面的Python代码(实际上这是我对《24小时自学Python》第80页练习的解决方案)。 这个想法是: table 周围有 4 个座位,服务员知道每个座位点了多少钱,输入这 4 个金额并得
有没有办法获取原始输入,将其记录到内存中,然后在子进程中调用它? x = raw_input("what is your fav. Color??") Subprocess.Popen("C://Wi
下面是我的代码: randomOne = int(str(raw_input('Enter the first number.'))) randomTwo = int(str(raw_input('E
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Python read a single character from the user 我正在使用下面的代
当我使用 raw_input 时,提示仅在用户输入后显示。像这样: number = raw_input("Enter a number:") 但是当我运行它时,没有任何反应,我输入一个数字,它显示提
有没有办法给用户一个原始输入,但如果在 x 时间内没有输入任何内容,则给出空响应 ("")?我想在脚本启动时给用户 10 秒的时间来输入选项,但如果时间到期(或者他们按回车键),只需继续执行脚本即可。
这是我现在拥有的 python 代码,如果用户回答是,我在循环问题时遇到问题。当用户回答“否”时,它仍然会问他们他们的问题是什么。这非常令人沮丧,而且由于我是初学者,我无法终生解决这个问题。这是我的代
如何在 python 中捕获管道文本。例如这样的东西 cat foo.py | ./foo.py 在 foo.py 中我有以下内容: if __name__ == "__main__": text
我想了解下面代码中 raw_input 的行为。我知道num将是字符串。无论我输入什么数字,它总是输入 elif部分即如果 num 为 5,则应转到 if numcheck: prin
首先,我在编程和 Python 方面还很陌生,所以提前致歉。 我正在尝试使用原始输入从用户那里获取输入,同时也在努力使我的代码更简单。 我原来的是: print "Please give the na
好的,所以我将其更改为: if input('a'): print ("You: Gimme a gun!") if input('b'): print ("You: Fin
当我运行程序时输入不会提示。我该如何解决? import sys def main(): # Initialize list and determine length string_l
我正在尝试制作一个密码强度测试器。密码需要至少有 4 个数字和 6 个字母,所以我需要找出用户在 raw_input 中输入了多少个。 最佳答案 text = "helloworld42" numbe
我最近开始学习 python 并且厌倦了在命令行(终端 mac os x)上运行它。我想要一个我可以在其中很好地编写代码并仅在部分代码完成后才运行该代码的环境,而不是像在 shell 中那样逐行运行。
基本上,有人可以通过在他们的 raw_input 中输入代码来破坏我的程序吗? i.e. ##instead of entering their name below, could they ente
我有一个使用 SocketServer 在 Python 中制作的简单服务器应用程序,它有一个非常原始的命令行类型输入系统。我的主要问题是,当服务器收到消息时,它将其打印到屏幕上。除了 raw_inp
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Show default value for editing on Python input possible? 我
尝试让我的脚本的一部分正常工作。此部分将让用户定义 Web 根目录,以便我们可以在该目录中搜索恶意软件。这是我正在研究的部分:我需要能够获取用户输入并将其作为变量添加到搜索功能中。我确信我的做法是错误
我是一名优秀的程序员,十分优秀!