【发布时间】:2020-12-03 05:26:32
【问题描述】:
我有一个带有缩进文本的变量。我需要做的是将该字符串转换为带括号的字符串。示例代码如下:
def indent_to_bracket(text):
...
return text
text='''
def main():
print('hi')
if(2==2):
print('games')
print('yo!')
for i in range(5):
print(i)
if(i>2):
print('end1')
else:
print('end2')
'''
text=indent_to_bracket(text)
print(text)
需要输出:
def main(){
print('hi')
if(2==2){
print('games')
}
print('yo!')
for i in range(5){
print(i)
if(i>2){
print('end1')
}
else{
print('end2')
}
}
}
我尝试过的就是这个,但它不能完美地工作:
def indent_to_brackets(text):
t=0
ls=text.splitlines()
for i in range(len(ls)):
tab=ls[i].count(' ') # 4 tabs or \t
if tab > t:
t+=1
ls[i-1]=ls[i-1]+'{'
elif tab < t:
t-=1
ls[i-1]=ls[i-1]+'\n'+'\t'*(tab-1)+'}'
return '\n'.join(char for char in ls).replace(':','')
【问题讨论】:
-
到目前为止您尝试过什么? stackoverflow 不是代码编写服务。在发布问题之前自己尝试一下
标签: python string replace indentation python-re