You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python乘法表调用is_integer()处理用户输入出现AttributeError如何解决

错误原因

触发AttributeError的直接原因是:你已经将参数b转为int类型后传入函数作为multiple参数,而Python的整数类型没有is_integer()方法(该方法仅属于浮点数类型),调用不存在的方法就会抛出这个异常。

除了这个错误外,代码还有3个逻辑问题需要同步修复:

  • 调用函数时传入的a是input得到的字符串类型,没有转为数值,后续执行乘法运算时会抛出类型错误
  • 循环内打印的是固定的multiple而非循环变量i,运行后所有输出行的内容都会完全相同
  • 合法性判断用了or逻辑,应该改为and,否则只要满足任意一个条件就会通过校验,比如负数也会被判定为合法

修复方案

调整后的完整代码如下:

def multiple_generator(multiple_count, number):
    # 已经转成int的情况下直接判断大于0即可,不需要调用is_integer
    if multiple_count > 0:
        for i in range(1, multiple_count + 1):
            # 用循环变量i做计算
            print(f" {number} x {i} = {number * i}")
    else:
        print("Please input a positive integer numb nuts")

try:
    # 把被乘数也转成int
    a = int(input("What number you want to multiply? "))
    b = int(input("How many multiples you want to see? "))
    multiple_generator(b, a)

except ValueError:
    print("Please input a positive integer ")

内容的提问来源于stack exchange,提问作者Jo.skid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:15:02