raw_input 围绕字符串的多个输入
raw_input multiple inputs around strings
用户是否可以围绕字符串输入多个变量(因此它们在键入时就在那里)。
我希望用户输入数字 x、y、u、v,如
(x,y) 到 (u,v) 其中括号和逗号用于指导他们的输入。
我希望它是这样的(我知道这段代码是错误的):
a1, a2, a3, a4 = raw_input("("+x1+", "+x2+") to ("+x3+", "+x4+")").split()
其中第 i 个变量取第 i 个 x 值的值。
你的代码没有错。
实际有效:
>>> x1,x2,x3,x4 = 'xyuv'
>>> a1, a2, a3, a4 = raw_input("("+x1+", "+x2+") to ("+x3+", "+x4+")").split()
(x, y) to (u, v)1 2 3 4
>>> a1
'1'
>>> a2
'2'
>>> a3
'3'
>>> a4
'4'
但是:
- 输出(
a1
、a2
、a3
、a4
)是字符串。
- 它需要一个严格的格式,由 4 个数字以空格分隔。偏离这种格式会导致解释器抛出各种异常。
您可以这样解决 map(int, ...)
的第一个问题:
a1, a2, a3, a4 = map(int, raw_input("("+x1+", "+x2+") to ("+x3+", "+x4+")").split())
对于第二个问题,也许你可以用 try: ... except: ...
包围代码,并用 while True
包围它,这样直到它得到一个异常,它重复它:
while True:
try:
a1, a2, a3, a4 = map(int, raw_input("("+x1+", "+x2+") to ("+x3+", "+x4+")").split())
break
except:
continue
这里我试着给它一些不好的输入,最后是一个好的输入(它在得到好的输入时终止):
(x, y) to (u, v)a
(x, y) to (u, v)a a a a
(x, y) to (u, v)1 2 3 4
用户是否可以围绕字符串输入多个变量(因此它们在键入时就在那里)。 我希望用户输入数字 x、y、u、v,如
(x,y) 到 (u,v) 其中括号和逗号用于指导他们的输入。
我希望它是这样的(我知道这段代码是错误的):
a1, a2, a3, a4 = raw_input("("+x1+", "+x2+") to ("+x3+", "+x4+")").split()
其中第 i 个变量取第 i 个 x 值的值。
你的代码没有错。
实际有效:
>>> x1,x2,x3,x4 = 'xyuv'
>>> a1, a2, a3, a4 = raw_input("("+x1+", "+x2+") to ("+x3+", "+x4+")").split()
(x, y) to (u, v)1 2 3 4
>>> a1
'1'
>>> a2
'2'
>>> a3
'3'
>>> a4
'4'
但是:
- 输出(
a1
、a2
、a3
、a4
)是字符串。 - 它需要一个严格的格式,由 4 个数字以空格分隔。偏离这种格式会导致解释器抛出各种异常。
您可以这样解决 map(int, ...)
的第一个问题:
a1, a2, a3, a4 = map(int, raw_input("("+x1+", "+x2+") to ("+x3+", "+x4+")").split())
对于第二个问题,也许你可以用 try: ... except: ...
包围代码,并用 while True
包围它,这样直到它得到一个异常,它重复它:
while True:
try:
a1, a2, a3, a4 = map(int, raw_input("("+x1+", "+x2+") to ("+x3+", "+x4+")").split())
break
except:
continue
这里我试着给它一些不好的输入,最后是一个好的输入(它在得到好的输入时终止):
(x, y) to (u, v)a
(x, y) to (u, v)a a a a
(x, y) to (u, v)1 2 3 4