繁体   English   中英

如何从Python中的readline()中删除/ n?

[英]How to remove /n from readline() in Python?

    a = open('expressoes.txt', 'r')
i = 0
j = 0
pilhaop = []
string = []

b = a.readlines()
while j in range(len(b)):
        fixa = b[j]
        print b[j]
        while i < len(fixa):
                if fixa[i] == '^':
                        pilhaop.append(fixa[i])
                elif fixa[i] == '*' or fixa[i] == '/' or fixa[i] == '%':
                        if len(pilhaop)>0 and pilhaop[-1] in '^':
                                string.append(pilhaop.pop())
                        else:
                                pilhaop.append(fixa[i])
                elif fixa[i] == '+' or fixa[i] == '-':
                        if len(pilhaop)>0 and pilhaop[-1] in '* / %':
                                string.append(pilhaop.pop())

                        pilhaop.append(fixa[i])
                else: #se for digito passa direto para posfixa
                        string.append(fixa[i])

                i += 1

        #esvazia a pilha
        while len(pilhaop)>0:
                string.append(pilhaop.pop())
        print ''.join(string)
        print "........................"

        j += 1

我有这个代码,我正在尝试将中缀表达式(5 + 3 * 2)从txt文件转换为后缀表达式(532 * +)。 代码正在做正确的事情,但是当我在txt文件上有多个表达式时,它会像这样:

在txt文件:

5+3*2
6*4+8

跑完后:

5+3*2

532
*+
........................
6*4+8
532
*+
........................

当我打印'string'而没有加入时,它会显示:['5','3','2','/ n','*','+']

你可以帮帮我吗?

使用strip函数删除换行符

fixa = b[j].strip()

我用这个。 在我看来,它稍微耗费一些时间(O(1)vs O(n)),因为你不需要检查字符串中的每个字符只是剪掉最后一个字符。

这是代码:

with open('expressoes.txt', 'r') as a:
    line = a.readline()[:-1]

在你的情况下它是:

b = a.readlines()
while j in range(len(b)):
    fixa = b[j][:-1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM