ai自由 发表于 2021-4-14 21:59:17

python问题求助

def approximate(num):
    count = num // 2
    while count > 1:
      if (num % count) == 0:
            print(' %d 的最大约数是 %d' % (num, count))

            break

            count = count - 1

    else:
      print(' %d 是素数' % num)

number = int(input('请输入需要查询的数字: '))
result = approximate(number)

print('%d的最大约数是:%d' % (number, result))


运行结果是:

请输入需要查询的数字: 4
4 的最大约数是 2
Traceback (most recent call last):
File "F:/pycharm_work/venv/最大约数.py", line 18, in <module>
    print('%d的最大约数是:%d' % (number, result))
TypeError: %d format: a number is required, not NoneType


typeerror这两个值 number,result 应该都是输出的,不动为什么这块会出错,

虽然在上边 已经将结果输出了,但是就是好奇,为什么下边的输出会出现错误。

suchocolate 发表于 2021-4-14 22:55:32

result没有值

wp231957 发表于 2021-4-15 07:44:32

result = approximate(number)你这个函数是没有返回值的,那你还给他赋值,这不是难为人??

ai自由 发表于 2021-4-15 10:54:23

wp231957 发表于 2021-4-15 07:44
result = approximate(number)你这个函数是没有返回值的,那你还给他赋值,这不是难为人??

嗷嗷嗷少个return感谢感谢

帅气小哥 发表于 2021-4-15 19:00:36

ai自由 发表于 2021-4-15 10:54
嗷嗷嗷少个return感谢感谢

看了 一下缺少返回值 是在哪里缺少啊

帅气小哥 发表于 2021-4-15 19:47:47

def approximate(num):
    count = num // 2
    while count > 1:
      if (num % count) == 0:
            print(' %d 的最大约数是 %d' % (num, count))
            return count
      else:
            print(' %d 是素数' % num)
      return

number = int(input('请输入需要查询的数字: '))
print(approximate(number))
页: [1]
查看完整版本: python问题求助