字符串“id<=10”转换为列表['id','<=','10']
蒙圈,逻辑混乱
分析:可以用split('<='),嘿嘿,好简单
但是,这不是我蒙圈的原因,比如用for 循环
定义变量:expr = 'id<=10'
expr = 'id<=10'
res =[]
for i in expr:
res.append(i)
print(res)
['i', 'd', '<', '=', '1', '0'] # 结果就是它
取出<=如何操作???
expr = 'id<=10'
res =[]
for i in expr:
if i == '<=':
print(i)
else:
print('不存在 <=')
print(res)
我是不是,太无聊了啊,
算了,咱还是要用到字符串拼接 (就是 + ), 我的正常逻辑
expr = 'id<=10'
key = ['<','>','=']
res =[]
opt = ''# 拼接 运算符
char =''# 拼接字符
tag = False
for i in expr:
if not tag:
char += i # 最终结果 id<
if i in key:
tag = True
opt+=i
res.append(char) # 结果 <=
char =''
if i not in key and tag:
res.append(opt)
char +=i # 结果 10,但是没有加到 res
opt =''
print(res)
['id<', '', '<=', ''] 结果是这个 样子的,哎
调整一下 if 判断语句的次序呢,且重复利用 for - else 循环
expr = 'id<=10'
key = ['<','>','=']
res =[]
opt = ''# 拼接 运算符
char =''# 拼接字符
tag = False
for i in expr:
if i in key:
tag = True
res.append(char) # 结果 <=
char =''
opt += i
if not tag:
char += i # 最终结果 id
if i not in key and tag:
res.append(opt)
char +=i # 结果 10,但是没有加到 res
opt =''
else:
res.append(char)
print(res)
['id', '', '<=', '', '10'] 又两个空白元素,分析一下空白元素在哪里被添加的
前一个 空白元素是 char='' 产生的,后一个 空白元素是 opt='' 产生的,
前一个空白元素用 if len(char) !=0 满足条件才添加(append)
后一个空白元素 主要原因是没有把 标识位 tag 重置为 False,从而导致了用混了判断条件,如果 把 expr = 'iid<=1709',是不是空格更多了呢,嘿嘿
expr = 'iid<=170'
key = ['<','>','=']
res =[]
opt = ''# 拼接 运算符
char =''# 拼接字符
tag = False
for i in expr:
if i in key:
tag = True
if len(char) != 0:
res.append(char) # 结果 <=
char = ''
opt += i
if not tag:
char += i # 最终结果是 id
if i not in key and tag:
tag = False
res.append(opt)
char +=i # 结果 10,但是没有加到 res
opt =''
else:
res.append(char)
print(res)
最终正确答案 ['iid', '<=', '170']
这就是今天的战绩了!

浙公网安备 33010602011771号