簡體   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