gpt4 book ai didi

python - 嵌套条件转换

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:03 25 4
gpt4 key购买 nike

我正在尝试编写一个小型解析器,将嵌套条件语句转换为单行条件语句。一个基本的例子是:

if age > 15:
if size == 3:
test = 1
if size == 4:
test = 2

翻译为:

'if age > 15 and size == 3: test=1'
'if age > 15 and size == 4: test=2'

我首先尝试使用 python ast 模块,但在这种情况下遍历树可能不是一个好主意。我认为使用正则表达式也许是个好主意。我正在尝试寻求一些有关解决此问题的策略的帮助。

最佳答案

尝试使用堆栈:(这个程序不做任何错误检查,它假设你的编码方式与上面相同,并且必须使用制表符,而不是 4 个空格)

mystack=[]
toprint=[]
ins=input('Next line: ')
while ins!='':
level=0
while ins[0]=='\t':
ins=ins[1:]
level+=1
if ins[0:2]=='if':
if len(mystack)==level:
mystack.append(ins[3:-1])
else:
mystack=mystack[:level]
mystack.append(ins[3:-1])
else:
if level!=len(mystack):
mystack=mystack[:level]
toprint.append('if ')
for i in mystack:
toprint[-1]+=i
toprint[-1]+=' and '
toprint[-1]=toprint[-1][:-5]+': '
toprint[-1]+=ins
ins=input('Next line: ')
print()
for i in toprint:
print(i)

关于python - 嵌套条件转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39927244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com