Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误:Int对象不可调用_Python_Python 3.x - Fatal编程技术网

Python 类型错误:Int对象不可调用

Python 类型错误:Int对象不可调用,python,python-3.x,Python,Python 3.x,当我尝试运行代码时,代码出现错误 代码 print("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division") print("^ Operation 'ID' please enter the id of your choice") choice = input() num1 = input("Enter your first number: ") num2 = input("Enter your

当我尝试运行代码时,代码出现错误

代码

print("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division")
print("^ Operation 'ID' please enter the id of your choice")
choice = input()
num1 = input("Enter your first number: ")
num2 = input("Enter your second number: ")
def addition(num1, num2):
    num1
    num2
    ans = num1 + num2
    print('Your answer is %s') %(ans)
def subtraction(num1, num2):
    num1
    num2
    ans = num1 - num2
    print('Your answer is %s') %(ans)
def multiply(num1, num2):
    num1
    num2
    ans = num1 * num2
    print('Your answer is %s') %(ans)
def division(num1, num2):
    num1
    num2
    ans = num1 / num2
    print('Your answer is %s') %(ans)
if choice == "1":
    addition
elif choice == "2":
    subtraction
elif choice == "3":
    multiply
elif choice == "4":
    division
else:
    print("Invalid Input")
    choice = int(input("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division\n^ Operation 'ID' please enter the id of your choice\n"))
num1 = int(input("Enter your first number: "))
num2 = int(input("Enter your second number: "))
if choice == 1: #Addition
    num1
    num2
    ans = num1 + num2
    print("Your answer is " + str(ans))
elif choice == 2: #Subtraction
    num1
    num2
    ans = num1 - num2
    print("Your answer is " + str(ans))
elif choice == 3: #Miltiplication
    num1
    num2
    ans = num1 * num2
    print("Your answer is " + str(ans))
elif choice == 4: #Division
    num1
    num2
    ans = float(num1) / float(num2)
    print("Your answer is " + str(ans))
在调用python打印答案之前,一切都正常


我知道可能存在重复的代码,但是那里提供的代码都不起作用。

问题就是由于这个原因

if choice == 1():
应该在哪里

if choice == 1:
必须将num1和num2转换为整数类型

你应该调用函数,而不是声明它们

if choice == 1:
    addition(num1, num2)
你必须为其他事情做这件事

在做了所有的修改之后,你的程序看起来是这样的

print("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division")
print("^ Operation 'ID' please enter the id of your choice")
choice = int(input())
num1 = int(input("Enter your first number: "))
num2 = int(input("Enter your second number: "))
def addition(num1, num2):
    ans = num1 + num2
    print('Your answer is %s') %(ans)
def subtraction(num1, num2):
    ans = num1 - num2
    print('Your answer is %s') %(ans)
def multiply(num1, num2):
    ans = num1 * num2
    print('Your answer is %s') %(ans)
def division(num1, num2):
    ans = num1 / num2
    print('Your answer is %s') %(ans)
if choice == 1:
    addition(num1,num2)
elif choice == 2:
    subtraction(num1,num2)
elif choice == 3:
    multiply(num1,num2)
elif choice == 4:
    division(num1,num2)
else:
    print("Invalid Input")
print('Your answer is %s' %ans)
我的更改是:

choice = int(input("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division\n^ Operation 'ID' please enter the id of your choice\n"))
num1 = int(input("Enter your first number: "))
num2 = int(input("Enter your second number: "))
ans=None
if choice == 1:
    ans = num1 + num2
elif choice == 2:
    ans = num1 - num2
elif choice == 3:
    ans = num1 * num2
elif choice == 4:
    ans = float(num1) / num2
if  ans:
    print('Your answer is %s') %(ans)
else:
    print("Invalid Input")

问题就在眼前-

if choice == 1():
    addition
elif choice == 2():
    subtraction
elif choice == 3():
    multiply
elif choice == 4():
    division
我不知道你想要
1()。您还应该调用函数
addition
等,比如-
addition(num1,num2)

选项
字符串
不是int。您应该将
num1
num2
转换为int

代码中的更多问题-

  • 为什么要在函数中执行-
    num1
    num2
    ,它没有任何作用,可以删除每个函数的前两行

  • 您的print函数错误,在Python 3.x中,
    %(ans)
    应该在函数内部,而不是外部

  • 代码-

    num1 = int(input("Enter your first number: "))
    num2 = int(input("Enter your second number: "))
    def addition(num1, num2):
        ans = num1 + num2
        print('Your answer is %s' %(ans))
    def subtraction(num1, num2):
        ans = num1 - num2
        print('Your answer is %s' %(ans))
    def multiply(num1, num2):
        ans = num1 * num2
        print('Your answer is %s' %(ans))
    def division(num1, num2):
        ans = num1 / num2
        print('Your answer is %s' %(ans))
    if choice == '1':
        addition(num1, num2)
    elif choice == '2':
        subtraction(num1, num2)
    elif choice == '3':
        multiply(num1, num2)
    elif choice == '4':
        division(num1, num2)
    

    当前代码中的错误只是打印语句中的括号。如果在print语句之外没有%ans,则代码在如下情况下工作

    print("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division")
    print("^ Operation 'ID' please enter the id of your choice")
    choice = int(input())
    num1 = int(input("Enter your first number: "))
    num2 = int(input("Enter your second number: "))
    def addition(num1, num2):
        ans = num1 + num2
        print('Your answer is %s') %(ans)
    def subtraction(num1, num2):
        ans = num1 - num2
        print('Your answer is %s') %(ans)
    def multiply(num1, num2):
        ans = num1 * num2
        print('Your answer is %s') %(ans)
    def division(num1, num2):
        ans = num1 / num2
        print('Your answer is %s') %(ans)
    if choice == 1:
        addition(num1,num2)
    elif choice == 2:
        subtraction(num1,num2)
    elif choice == 3:
        multiply(num1,num2)
    elif choice == 4:
        division(num1,num2)
    else:
        print("Invalid Input")
    
    print('Your answer is %s' %ans)
    
    您刚刚编写的同一代码的整洁版本如下所示

    print("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division")
    print("^ Operation 'ID' please enter the id of your choice")
    choice = int(input())
    num1 = int(input("Enter your first number: "))
    num2 = int(input("Enter your second number: "))
    def addition(num1, num2):
        ans = num1 + num2
        print('Your answer is %s') %(ans)
    def subtraction(num1, num2):
        ans = num1 - num2
        print('Your answer is %s') %(ans)
    def multiply(num1, num2):
        ans = num1 * num2
        print('Your answer is %s') %(ans)
    def division(num1, num2):
        ans = num1 / num2
        print('Your answer is %s') %(ans)
    if choice == 1:
        addition(num1,num2)
    elif choice == 2:
        subtraction(num1,num2)
    elif choice == 3:
        multiply(num1,num2)
    elif choice == 4:
        division(num1,num2)
    else:
        print("Invalid Input")
    
    print('Your answer is %s' %ans)
    
    print(“操作:\n1.加法\n2.减法\n3:乘法\n4.除法”)
    打印(“^Operation'ID'请输入您选择的ID”)
    choice=int(输入())
    num1=int(输入(“输入您的第一个数字:”)
    num2=int(输入(“输入第二个数字:”)
    def添加量(num1、num2):
    返回num1+num2
    def减法(num1,num2):
    返回num1-num2
    def倍增(num1,num2):
    返回num1*num2
    def部门(num1、num2):
    返回num1/num2
    如果选项==1:
    ans=加法(num1,num2)
    elif选项==2:
    ans=减法(num1,num2)
    elif选项==3:
    ans=乘法(num1,num2)
    elif选项==4:
    ans=除法(num1,num2)
    其他:
    打印(“无效输入”)
    如果在范围(4)中选择:
    打印('您的答案是%s'%1!')
    
    具有讽刺意味的是,尽管hid代码有点不合适,但我还是在@Vignesh Kalai的帮助下为自己的问题写了一个答案。因此,在做任何其他事情之前,我将解决对代码的更改

    首先,与其定义我链接的每个操作,不如定义它们的“ID”

    其次,我使用“+str(x)”打印答案,而不是使用%s这个公认的坏主意

    修订代码

    print("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division")
    print("^ Operation 'ID' please enter the id of your choice")
    choice = input()
    num1 = input("Enter your first number: ")
    num2 = input("Enter your second number: ")
    def addition(num1, num2):
        num1
        num2
        ans = num1 + num2
        print('Your answer is %s') %(ans)
    def subtraction(num1, num2):
        num1
        num2
        ans = num1 - num2
        print('Your answer is %s') %(ans)
    def multiply(num1, num2):
        num1
        num2
        ans = num1 * num2
        print('Your answer is %s') %(ans)
    def division(num1, num2):
        num1
        num2
        ans = num1 / num2
        print('Your answer is %s') %(ans)
    if choice == "1":
        addition
    elif choice == "2":
        subtraction
    elif choice == "3":
        multiply
    elif choice == "4":
        division
    else:
        print("Invalid Input")
    
        choice = int(input("Operations: \n1. Addition \n2. Subtraction \n3: Multiplication \n4. Division\n^ Operation 'ID' please enter the id of your choice\n"))
    num1 = int(input("Enter your first number: "))
    num2 = int(input("Enter your second number: "))
    if choice == 1: #Addition
        num1
        num2
        ans = num1 + num2
        print("Your answer is " + str(ans))
    elif choice == 2: #Subtraction
        num1
        num2
        ans = num1 - num2
        print("Your answer is " + str(ans))
    elif choice == 3: #Miltiplication
        num1
        num2
        ans = num1 * num2
        print("Your answer is " + str(ans))
    elif choice == 4: #Division
        num1
        num2
        ans = float(num1) / float(num2)
        print("Your answer is " + str(ans))
    

    我也知道编写计算器应用程序的其他方法,但我正计划扩展其功能,因此我需要在三星chromebook sir 3上使用xfce 14.04的“def”,如果有必要的话。
    if choice==“1”:
    trythis@vks+1谢谢你,但现在我有另一个问题,它提示我输入无效,而不是告诉我答案。你的代码有很多问题。我建议你去。不,对不起,但事实并非如此help@VingeshKalal,我已经得到了最接近的答案,但它只是提示无效的输入,答案应该在哪里。@AtPython,它说的是什么输入that@VingeshKalai这不是meI我不是在问你我是在问谁说了这段代码提示我列出了错误:不支持的操作数类型和多个语法错误除法和减法的定义?虽然我看不出有任何错误syntax@AtPython是的,您的代码中似乎有更多问题,请查看最新更新。