Python程序不工作,Python空闲不';他把错误都说出来了

Python程序不工作,Python空闲不';他把错误都说出来了,python,hex,calculator,Python,Hex,Calculator,所以我喜欢编程,喜欢十六进制;我正在用python开发一个计算器,它将十六进制转换为十进制,用十进制执行所需的操作,然后将答案转换为十六进制。程序不工作,标准的pythonidle(安装python时是标准的)说有语法错误,但是当我按下“F5”键(运行程序)然后打开shell时,它只会说“无效语法”,而不是像正常情况一样显示错误。我在shell中逐行输入程序,并且在def ansDef(oper):函数中的某个地方。 代码如下: print("Valid operations: +, -, *,

所以我喜欢编程,喜欢十六进制;我正在用python开发一个计算器,它将十六进制转换为十进制,用十进制执行所需的操作,然后将答案转换为十六进制。程序不工作,标准的pythonidle(安装python时是标准的)说有语法错误,但是当我按下“F5”键(运行程序)然后打开shell时,它只会说“无效语法”,而不是像正常情况一样显示错误。我在shell中逐行输入程序,并且在
def ansDef(oper):
函数中的某个地方。 代码如下:

print("Valid operations: +, -, *, /, ^, rt")
numA = input("Enter first number: ")
oper = input("Enter operation: ")
numB = input("Enter second number: ")
baseA = int(numA, 16)
baseB = int(numB, 16)
numBRT = float(1) / float(baseNumB)
def ansDef(oper):
    return{
        "+":
            baseAns == float(baseA) + float(baseB)
        "-":
            baseAns == float(baseA) - float(baseB)
        "*":
            baseAns == float(baseA) * float(baseB)
        "/":
            baseAns == float(baseA) / float(baseB)
        "^":
            baseAns == float(baseA) ** float(baseB)
        "rt":
            baseAns == float(baseA) ** float(numBRT)
    }.get(oper, return{
            print("ERROR: INVALID OPERATION")
        })
ans = hex(baseAns)
print(ans)

只需将您的代码重写为
Python
语法的一个示例,就值得阅读一次或官方教程

print("Valid operations: +, -, *, /, ^, rt")
numA = input("Enter first number: ")
oper = input("Enter operation: ")
numB = input("Enter second number: ")
baseA = int(numA, 16)
baseB = int(numB, 16)

def ansDef(oper, a, b):
    if oper == "+":
        return a + b
    elif oper == "-":
        return a - b
    elif oper == "*":
        return a * b
    elif oper == "/":
        return a / b
    elif oper == "^":
        return a ** b
    elif oper == "rt":
        return a ** 1.0 / b
    else:
        raise Exception("ERROR: INVALID OPERATION")

try:
    baseAns = ansDef(oper, float(baseA), float(baseB))
    ans = hex(int(baseAns))
    print(ans)
except Exception as e:
    print(e)

您有一个
return
语句作为
dict.get()
参数的一部分。这是错误的。解决这个问题后,你必须实际调用这个函数,而不是假设它是自动调用的,然后尝试引用它的局部变量。我会说这是回到绘图板(或)上。问题是dict项目需要以逗号结尾。将
baseAns==float(baseA)+float(baseB)
更改为
baseAns==float(baseA)+float(baseB),
(注意末尾的逗号)。。。等等。谢谢你的回复,但我不会采纳你的建议。我讨厌例外情况,觉得它们很烦人。下面是最后一个有效程序的github链接: