为什么这个程序会双重打印?

时间:2012-10-21 02:21:48

标签: python python-3.x

我无法隔离问题。该程序应该采用两个整数并将它们转换为科学计数法,然后将它们相乘。然而,它打印科学概念两次。但是它会打印两次信息。

def convert(s):
    print("You typed " + s)
    n=0
    for c in s:
        n=n+1
        if n==1:
            print("In scientific notation:"+str(c)+'.', end='')
        if n!=1:
            print(str(c),end='')
    print('X 10^'+str(len(s)-1))
    return c

def convert_product(u):
    n=0
    for c in u:
        n=n+1
        if n==1:
            print("Product in scientific notation "+c+'.', end='')
        if n!=1:
            print(c, end='')


def main():
    s=input("Please input your first number\n")
    t=input("Please input your second number\n")
    u=str(int(convert(s))*int(convert(t)))
    convert(s)
    convert(t)
    convert_product(u)
    print('X 10^' + str(len(s)+len(t)-2))
main()

1 个答案:

答案 0 :(得分:3)

您正在此行中调用convert:

u=str(int(convert(s))*int(convert(t)))

你在数字上再次呼叫转换:

convert(s)
convert(t)

转换功能正在打印。因此,您有双重打印。