在代码

时间:2017-03-29 03:06:57

标签: python typeerror

以下是我的代码和我的代码的说明,我收到类型错误:

两个整数的最大公约数(GCD)是将两个整数均分的最大整数。编写带注释的程序,要求用户输入两个正整数并计算相应的GCD。您可以假设用户将输入有效数字。显示一条显示2个整数及其GCD的合适信息。

计算GCD的步骤如下:

  • 将a =设置为较大的整数,b =较小的整数(如果它们不同)
  • 而b≠0执行以下步骤:
  • rem =除以b后得到的余数
  • 将a =设置为b
  • 的当前值
  • set b = rem(在步骤2a中计算)
  • gcd =退出while循环后a的值(即b的前一个值)。

下面给出了显示用户输入和相应输出的示例会话。

image output

def gcd(a, b):
    if b > a:
        return gcd(b, a)
    if a % b == 0:
        return b
    return gcd(b, a % b)       
a=input('Enter first positive Integer :');
b=input('Enter second positive Integer :');
s = 'The gcd of ' + repr(a) + ' and ' + repr(b) + ' is ' +repr(gcd(a, b))
print(s)

1 个答案:

答案 0 :(得分:1)

您正在获取TypeError,因为输入函数将所有输入视为字符串。在尝试对其执行gcd函数之前,需要将输入转换为整数。 e.g:

def gcd(a, b):
    a = int(a)
    b = int(b)
    if b > a:
        return gcd(b, a)
    if a % b == 0:
        return b
    return gcd(b, a % b)