Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3-从用户输入的字符串中提取数据。可能是格式错误_Python_Regex_String_Python 3.x_Split - Fatal编程技术网

Python3-从用户输入的字符串中提取数据。可能是格式错误

Python3-从用户输入的字符串中提取数据。可能是格式错误,python,regex,string,python-3.x,split,Python,Regex,String,Python 3.x,Split,我一直在试图找到一种方法来获取用户输入,其形式应为: [x1,y1][x2,y2] 这意味着x1、x2、y1、y2是整数值 关键是让棋子从位置a移动到位置b 我的目标是让用户按如下方式输入: move = input("\nSyntax: '[x,y][x,y]'") 我的意图是将字符串分开,以便最终得到两个列表 From=[x1,y1] To=[x2,y2] 我找到的最近的东西是: 然而,在我的例子中,对于这样一个简单的字符串,我相信有一个更简单的方法——什么是最有效的。此外,在这种情况下,

我一直在试图找到一种方法来获取用户输入,其形式应为: [x1,y1][x2,y2] 这意味着x1、x2、y1、y2是整数值

关键是让棋子从位置a移动到位置b

我的目标是让用户按如下方式输入:

move = input("\nSyntax: '[x,y][x,y]'")
我的意图是将字符串分开,以便最终得到两个列表

From=[x1,y1]

To=[x2,y2]

我找到的最近的东西是:


然而,在我的例子中,对于这样一个简单的字符串,我相信有一个更简单的方法——什么是最有效的。此外,在这种情况下,用户可能会输入错误等。。。如何确保其格式为[x1,y1][x2,y2]?

假设您的输入字符串如下所示:

my_str =  '[x1,y1][x2,y2]'
为了将值存储在单独的变量中,您可以
[
]
从拐角处剥离,并将
][
替换为
。然后将
上的字符串拆分为:

x1, y1, x2, y2 = my_str.strip('[]').replace('][', ',').split(',')
>>> from ast import literal_eval
>>> my_str =  '[1,2],[3,4]'

>>> from_list, to_list = literal_eval(my_str)
x1
y1
x2
y2
保存的值将为:

>>> x1, y1, x2, y2
('x1', 'y1', 'x2', 'y2')
然后,为了存储要列出的值,您可以执行以下操作:

from_list = [x1, y2]
to_list = [x2, y2]

如果您可以将输入字符串的格式从
[x1,y1][x2,y2]
更改为
[x1,y1],[x2,y2]
(在
][
之间使用逗号),则可以使用
ast.literal\u eval
作为:

x1, y1, x2, y2 = my_str.strip('[]').replace('][', ',').split(',')
>>> from ast import literal_eval
>>> my_str =  '[1,2],[3,4]'

>>> from_list, to_list = literal_eval(my_str)

假设您的输入字符串如下所示:

my_str =  '[x1,y1][x2,y2]'
为了将值存储在单独的变量中,您可以
[
]
从拐角处剥离,并将
][
替换为
。然后将
上的字符串拆分为:

x1, y1, x2, y2 = my_str.strip('[]').replace('][', ',').split(',')
>>> from ast import literal_eval
>>> my_str =  '[1,2],[3,4]'

>>> from_list, to_list = literal_eval(my_str)
x1
y1
x2
y2
保存的值将为:

>>> x1, y1, x2, y2
('x1', 'y1', 'x2', 'y2')
然后,为了存储要列出的值,您可以执行以下操作:

from_list = [x1, y2]
to_list = [x2, y2]

如果您可以将输入字符串的格式从
[x1,y1][x2,y2]
更改为
[x1,y1],[x2,y2]
(在
][
之间使用逗号),则可以使用
ast.literal\u eval
作为:

x1, y1, x2, y2 = my_str.strip('[]').replace('][', ',').split(',')
>>> from ast import literal_eval
>>> my_str =  '[1,2],[3,4]'

>>> from_list, to_list = literal_eval(my_str)
测试很好


测试很好。

是否有一种简单的方法可以知道字符串的格式是否为[x1,y1][x2,y2]?因此向用户抛出错误。将用于转换字符串的代码放入
try
/
except
中。在
except
块中,向用户抛出错误消息是否有一种简单的方法可以知道字符串是否不是[x1,y1][x2,y2]格式?从而向用户抛出错误。将用于转换字符串的代码放入
try
/
except
中。在
except
块中,向用户抛出错误消息