Python 将值从一个函数传递到另一个函数

Python 将值从一个函数传递到另一个函数,python,function,parameters,Python,Function,Parameters,我有一段代码,免责声明:我没有写太多这段代码,其他人已经帮了我。我想在其中传递一个参数 这可以将二进制数转换为十进制数,进一步将十进制数转换为二进制数 如果你靠近底部看,有一个输入,以1111作为一个二进制数,它变成15作为十进制,我想把15变成十六进制,而不是1111 如何使第二个函数two()使用15?我有一个类和一个构造函数,我想知道如何将函数one()的最终结果传递给函数two() 如果您查看函数one()有一个打印,我希望传递该值,而不是变量b1或用户输入的值。您的one方法需要返回一

我有一段代码,免责声明:我没有写太多这段代码,其他人已经帮了我。我想在其中传递一个参数

这可以将二进制数转换为十进制数,进一步将十进制数转换为二进制数

如果你靠近底部看,有一个输入,以1111作为一个二进制数,它变成15作为十进制,我想把15变成十六进制,而不是1111

如何使第二个函数
two()
使用15?我有一个类和一个构造函数,我想知道如何将函数
one()
的最终结果传递给函数
two()


如果您查看函数
one()
有一个打印,我希望传递该值,而不是变量
b1
或用户输入的值。

您的
one
方法需要返回一个值,而不是打印它,以便您可以将值保存到变量中。然后,您的
two
方法需要一个参数来传递上一个值

def one(self):
    ...
    return d1

def two(self, value):
    ...

v = n.one()
n.two(v)

作为替代选项,您可以将
one
方法的结果保存到另一个实例变量。

您的
one
方法需要返回一个值,而不是打印它,以便您可以将该值保存到一个变量。然后,您的
two
方法需要一个参数来传递上一个值

def one(self):
    ...
    return d1

def two(self, value):
    ...

v = n.one()
n.two(v)

作为替代选项,您可以将
one
方法的结果保存到另一个实例变量。

您需要返回值,而不是打印它

def one( self ):
    [...]
    return d1
如果只需要将one()的输出作为two()的输入,也可以跳过对变量的赋值。one()计算为一个数值,您可以直接传递它

h = Helper( int(input( ">> " )) );
h.two( h.one() );
或者你让它成为对象的一部分,然后你就可以使用它了

def one(self):
    [...]
    self.d1 = d1;

def two(self):
    value = self.d1;
    [...]

您需要返回值,而不是打印它

def one( self ):
    [...]
    return d1
如果只需要将one()的输出作为two()的输入,也可以跳过对变量的赋值。one()计算为一个数值,您可以直接传递它

h = Helper( int(input( ">> " )) );
h.two( h.one() );
或者你让它成为对象的一部分,然后你就可以使用它了

def one(self):
    [...]
    self.d1 = d1;

def two(self):
    value = self.d1;
    [...]

下面是解决这个问题的方法

import os,time

class Helper:

    def __init__(self, num):
        self.num = num

    def one(self):
        b1 = self.num
        b2 = 0
        d1 = 0
        p = 0
        while(b1 != 0):
            b2 = b1 % 10
            d1 = d1 + b2 * pow(2, p)
            b1 = b1//10
            p = p + 1
        print (d1)
        return d1 # set the output of the function


    def two(self, n):
        hex_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']
        reversed_number = ""
        while n > 0:
            remainder = n % 16
            n -= remainder
            n //= 16
            reversed_number += str(hex_values[remainder])

        print(reversed_number[::-1])


os.system('clear')
print
print ("Input any number.")
n = Helper(int(input(">> ")))

time.sleep(1)
decimal = n.one() # you define a variable as the output of n.one()

time.sleep(1)
print
n.two(decimal) # you pass the output of n.one() to n.two()
print
time.sleep(1)
可以使用return关键字为函数n.one()设置输出 语法是:return{value},因此如果要返回的值是d1,只需键入

return d1
使用变量捕获n.one的输出

decimal = n.one()
此时,要显示n.one()的输出,可以键入

print(decimal)
而不是在函数n.one()中打印它 现在让函数n.who()接受您传递的参数

def two(self, n):
并删除
n=self.num

最后,将n.one()的输出传递给n.two()


希望这能解决你的问题这里是解决问题的方法

import os,time

class Helper:

    def __init__(self, num):
        self.num = num

    def one(self):
        b1 = self.num
        b2 = 0
        d1 = 0
        p = 0
        while(b1 != 0):
            b2 = b1 % 10
            d1 = d1 + b2 * pow(2, p)
            b1 = b1//10
            p = p + 1
        print (d1)
        return d1 # set the output of the function


    def two(self, n):
        hex_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']
        reversed_number = ""
        while n > 0:
            remainder = n % 16
            n -= remainder
            n //= 16
            reversed_number += str(hex_values[remainder])

        print(reversed_number[::-1])


os.system('clear')
print
print ("Input any number.")
n = Helper(int(input(">> ")))

time.sleep(1)
decimal = n.one() # you define a variable as the output of n.one()

time.sleep(1)
print
n.two(decimal) # you pass the output of n.one() to n.two()
print
time.sleep(1)
可以使用return关键字为函数n.one()设置输出 语法是:return{value},因此如果要返回的值是d1,只需键入

return d1
使用变量捕获n.one的输出

decimal = n.one()
此时,要显示n.one()的输出,可以键入

print(decimal)
而不是在函数n.one()中打印它 现在让函数n.who()接受您传递的参数

def two(self, n):
并删除
n=self.num

最后,将n.one()的输出传递给n.two()


希望这解决了你的问题

我知道这可能看起来像是重复,有一个类似的问题,但它是在完全不同的背景下,我不能很好地理解;)这里的基本问题是,代码只是将内容打印到屏幕上,然后基本上就忘记了。函数应该
返回
值,而不仅仅是打印它(实际上,如果只
返回
并让调用者
打印
或对返回的值执行任何操作,可能会是更好的设计)。一个数字有一个值,而不管它在哪个基中表示。如果您想要相同数字的不同表示,请尝试:
print({0:d}{1:X}{2:b}).format(15,15,15))
。相反,检查。所以,整个练习(最终目标)看起来有点像是重新发明轮子。所以我应该做
返回d1
?是的,这样做并从那里开始。当然,代码的其余部分需要进行相应的修改。我知道这可能看起来像是重复,有一个与此类似的问题,但它是在完全不同的上下文中,我不能很好地理解;)这里的基本问题是,代码只是将内容打印到屏幕上,然后基本上就忘记了。函数应该
返回
值,而不仅仅是打印它(实际上,如果只
返回
并让调用者
打印
或对返回的值执行任何操作,可能会是更好的设计)。一个数字有一个值,而不管它在哪个基中表示。如果您想要相同数字的不同表示,请尝试:
print({0:d}{1:X}{2:b}).format(15,15,15))
。相反,检查。所以,整个练习(最终目标)看起来有点像是重新发明轮子。所以我应该做
返回d1
?是的,这样做并从那里开始。当然,代码的其余部分需要进行相应的修改。不清楚这“似乎不起作用”;可能你做了其他事情,或者不知道如何重构代码来使用它。“我说过我对python非常陌生,很可能latteri无法准确地标记这一点,因为它对我不起作用,我将对此进行更多测试,等等。我放弃使用
GLOBAL
,现在不清楚这是如何实现的“似乎不起作用"; 可能你做了其他事情,或者不知道如何重构代码来使用它。“我有没有提到我对python非常陌生,很可能latteri无法准确地将其标记为正确,因为它对我不起作用,我将对此进行更多测试,等等。我现在放弃使用
GLOBAL
,实际上对象已经存在了