Так что я люблю программировать и любить шестнадцатеричные; Я работаю над калькулятором в python, который преобразует шестнадцатеричный в десятичный, делает нужную операцию в десятичной, затем преобразует ответ в шестнадцатеричный. Программа не работает, стандартный идентификатор python (тот, который входит в стандартную комплектацию при установке python) говорит о синтаксической ошибке, но вместо hi-lighting, где ошибка похожа на обычную, он просто говорит «недопустимый синтаксис», когда Я нажимаю клавишу «F5» (которая запускает программу), а затем открывает оболочку. Я ввел программу по строкам в оболочке и находится где-то внутри функции def ansDef(oper):
. Вот код:Программа Python не работает, а Python IDLE не приветствует ошибки
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)
У вас есть оператор 'return' как часть аргумента' dict.get() '. Это неверно. – TigerhawkT3
После того, как вы разрешите это, вы должны фактически называть эту функцию вместо того, чтобы предполагать, что она вызывается автоматически, а затем пытается ссылаться на ее локальные переменные. Я бы сказал, что он вернулся к чертежной доске (или [официальному учебнику Python] (https://docs.python.org/3.4/tutorial/index.html)). – TigerhawkT3
Проблема в том, что ваши элементы dict должны заканчиваться запятыми. Измените 'baseAns == float (baseA) + float (baseB)' на 'baseAns == float (baseA) + float (baseB),' (запомните запятую в конце) ... и т. Д. Для всех элементов в dict , – tdelaney