繁体   English   中英

在 python 中的循环之后在同一行上打印

[英]print on the same line after the loop in python

import sys

def main():
    try:
        filename = str(*sys.argv[1:])
        f = open(filename[6:],"r")
        readFile = f.readlines()
        f.close()
        for line in readFile:
            if (readInput(line)=="error"):
                print(line+"=error")

            else:
                exec(line)

    except FileNotFoundError:
        print("Failed to open",filename[6:])

def readInput(txt):
    numOfNonDigit = 0
    numbers = ""

    for char in txt:
        if char.isdigit():
            numbers += char
        elif numbers=="" and char==",":
            return 'error'
        elif char=="," and numbers!="":
            numbers=""
        elif numbers=="" and char==")":
            return 'error'
        elif char==" ":
            return 'error'

    for char in txt:
        if not char.isdigit():
            numOfNonDigit+=1

    if numOfNonDigit>7:
        return 'error'

def add(num1,num2): #https://www.geeksforgeeks.org/sum-two-large-numbers/

    str1 = str(num1)
    str2 = str(num2)
    size1 = len(str1)
    size2 = len(str2)
    carry = 0
    swap = 0
    total = []

    if (size1>40 or size2>40):
        return print("add(" + str1 + "," + str2 + ")=error")

    if (size1>size2):
        temp = str1
        str1 = str2
        str2 = temp
        temp = size1
        size1 = size2
        size2 = temp
        swap = 1

    str1 = str1[::-1]
    str2 = str2[::-1]

    for i in range(size1):
        t=int(str1[i])+int(str2[i])+carry
        if (t>9):
            total.append(t%10)
            carry=1
        else:
            total.append(t)
            carry=0

    for i in range(size1,size2):
        t=int(str2[i])+carry
        if (t>9):
            total.append(t%10)
            carry=1
        else:
            total.append(t)
            carry=0

    if (carry):
        total.insert(size2,1)

    str1 = str1[::-1]
    str2 = str2[::-1]    
    total = total[::-1]

    if (swap==1):
        temp = str1
        str1 = str2
        str2 = temp

    print("add(" + str1 + "," + str2 + ")=", end="")
    print(*total, sep="")

if __name__== "__main__":
  main()

(我将输出保留在下面)该程序应该从文本文件中获取输入,然后添加两个数字。 在 def readInput() 中,我试图捕获一些错误,例如缺少数字或数字之间的空格等。所以在第 10-11 行我需要输出 add(a,b)=error,但出于某种原因,错误输出在下一行,我尝试使用 end='',但没有帮助。 有人可以帮我解决这个问题。

添加(1,2)
=错误
添加(1, 2)
=错误
添加(1,)
=错误
添加(1,a)=错误

也许你应该改变这一行:

print(line+"=error")

到这一行:

print(line.replace("\n", "")+"=error")

暂无
暂无

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

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