我需要从用户输入中读取内容并将其解析为3部分,第一部分是行值,第二部分是条件(==,!=,>等),第三部分是比较值。用户输入:0 ==“ 6/1/2014 0:00:00”->因此,行将为0,条件将为“ ==”,比较值将为“ 6/1/2014 0:00 :00“
这是我所拥有的:
promptList = ["0 == 6/12/16 00:00:00", "1 > 47.20"]
for prompt in promptList:
if any(comparator in prompt for comparator in comparatorsList):
prompt = prompt.split(comparator)
row = prompt[0].strip()
condition = prompt[1].strip()
comparator = str(comparator).strip()
print(row, comparator, condition) #test to see print statement, not needed
但是,它说我没有定义比较器。我需要比较器知道拆分字符串的方式,因为您永远不知道比较器将显示在哪里(即:0 == 0 VS. 20124> 6/2/12 00:32:10)
如何设置3个变量!
该变量comparator
在生成器理解范围内,不会在其外部存在。不用使用在any
这里丢掉有价值的信息(即实际上包含哪个比较器)的构造,而是可以将其扩展为for循环:
comparatorsList = set(["==", "!=", ">", ">=", "<=", "<"])
promptList = ["0 == 6/12/16 00:00:00", "1 > 47.20"]
for prompt in promptList:
for comparator in comparatorsList:
if comparator in prompt:
prompt = prompt.split(comparator)
row = prompt[0].strip()
condition = prompt[1].strip()
comparator = str(comparator).strip()
print(row, comparator, condition)
break
印刷:
('0', '==', '6/12/16 00:00:00')
('1', '>', '47.20')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句