Python 在一行中输入两个用逗号分隔的变量
是否可以在一行中输入两个用逗号分隔的数字Python 在一行中输入两个用逗号分隔的变量,python,Python,是否可以在一行中输入两个用逗号分隔的数字int或float 假设程序运行后,它会要求用户输入一个范围:,然后用户会输入2,3。因此,变量范围是[2,3]。据我所知,range\u choice.split()是唯一的方法 num1,num2 = map(float, raw_input('Enter a range: ').split(',')) 或者,如果要在第二个值中使用逗号,请使用而不是: 在这种情况下,您必须自己将两个字符串转换为数字。num1,num2=raw_输入('输入范围:')
int
或float
假设程序运行后,它会要求用户输入一个范围:,然后用户会输入2,3
。因此,变量范围是[2,3]
。据我所知,range\u choice.split()
是唯一的方法
num1,num2 = map(float, raw_input('Enter a range: ').split(','))
或者,如果要在第二个值中使用逗号,请使用而不是:
在这种情况下,您必须自己将两个字符串转换为数字。num1,num2=raw_输入('输入范围:')。拆分(','))
如果您想将它们作为数字,最好不要使用原始输入。我的理解是安全的:
在python3中,您可以直接使用input()方法,而不是原始输入()
您可以使用:
var1 sep var2 sep ... sep varn = map(type, input().split('sep'))
对于int
或
浮球
语法:
var1 sep var2 sep ... sep varn = map(type, input().split('sep'))
或
对于字符串
是的,拆分是一种方法。
split
不是唯一的方法,但它是最快、最简单的方法。您可能需要记住的一件事是,如果用户没有输入任何内容,只输入1个带/不带逗号的值,等等,会发生什么情况。不要调用变量input
,这是一个内置函数..split比这更好,这不是一个更好的选项。@utdemir更新了关于何时使用哪个选项的更多详细信息。您需要能够清理输入,因此立即赋值将导致错误输入的异常。@Manny D抱歉,我不明白。当不存在两个值或非浮点值时,第一行抛出异常。捕捉这些ValueError
s并处理格式不正确的输入,这真是太棒了。@phihag我按照你的建议做了,效果很好。当我在壳里做的时候,它就好了。如果我输入“num1,num2”,它会打印出类似(2.0,3.0)的范围。但是如果我把它作为一个.py文件运行,那么我得到的语句是“print num1,num2”,然后它只打印2.03.0,没有括号和逗号。为什么会这样?我怎么得到它们?谢谢!不要无条件地计算任意输入input
不好,这就是为什么在Python2上,raw\u input
将其替换为input
。@Joshinput
是一个不必要的安全漏洞(因此在Python3中会消失),因为您允许用户执行任意程序。此外,这也不能保证x
和y
是数字(例如,对于Python 3,输入“ab”
)或代替原始输入。
>>> x, y = ast.literal_eval(raw_input('Enter a range: '))
Enter a range: 5, 6
>>> x, y
(5, 6)
var1,var2 = input().split(',')
a,b = map(int,input().split(','))
a,b = [int(i) for i in input().split(',')]
a,b = map(float,input().split(','))
var1 sep var2 sep ... sep varn = map(type, input().split('sep'))
var1 sep var2 sep ... sep varn = [type(var) for var in input().split('sep')]
a, b = input().split(',')