저는 몇 시간 동안이 작업을 해왔습니다. 숙제 임으로 코드가 완전히 실행되지 않는 이유를 알 수 없습니다. 나는 'assign2'함수 밖에서 놓친 것이 있는지 확인하기 위해 모든 코드를 제공했습니다. 그러나 문제가 저 아래에 있으며 무엇이 잘못되었는지를 알고 싶습니다.Python Napier Calculator 문제
나는 마지막으로 생성 된 숫자를 가지고 Napier arithmetic (즉, a = 0, b = 1, c = 2 ... z = 25) 대표 문자로 바꾸고 그들을 모으려고 노력하고있다. 주 기능에서 인쇄 할 수있는 목록에 있습니다. 이 나머지 부분을 제외하고는 다른 모든 기능이 작동하며 이유를 파악하려고합니다.
def main():
again = "y"
while again == "y" or again == "Y":
var = checkalpha()
num = assign(var)
print("The first number is: {}".format(num))
var2 = checkalpha()
num2 = assign(var2)
print("The second number is: {}".format(num2))
arithmetic = getsign()
value = equation(num, num2, arithmetic)
newvar = assign2(value)
print("The result is {} or {}".format(value, newvar))
again = input("Would you like to repeat the program? Enter y for yes, n for no: ")
def checkalpha():
num = input("Enter Napier number: ")
while not num.isalpha():
print("Something is wrong. Try again.")
num = input("Enter Napier number: ")
return num
def assign(char):
value = 0
for ch in char:
value += 2 ** (ord(ch) - ord("a"))
return value
def getsign():
operand = input("Enter the desired arithmetic operation: ")
while operand not in "+-*/":
operand = input("Something is wrong. Try again. ")
return operand
def equation(num, num2, arithmetic):
if arithmetic == "+":
answer = num + num2
elif arithmetic == "-":
answer = num - num2
elif arithmetic == "*":
answer = num * num2
elif arithmetic == "/":
answer = num/num2
else:
input("Something is wrong. Try again. ")
return answer
def assign2(n):
new = []
while n != 0:
value = n%2
x = n//2
ch = chr(value + ord("a"))
new.append(ch)
n = x
return new
main()
[네이피어 산술] (https://en.wikipedia.org/wiki/Location_arithmetic)입니까? –
예, 정확히 그 것 –
우리는 당신의 전체 프로그램을 볼 필요가 없습니다. 질문 코드는 문제에 초점을 맞춘 [mcve] 여야합니다. 그래서이 경우 우리는'assign2'를위한 코드를 볼 필요가 있습니다. 몇 가지 샘플 입력, 예상 출력, 실제 출력이 있습니다. –