如何使用def函数将以5为底的数字转换为小数,将以10为底的数字转换为以5为底的数字,将以5为底的数字相加并以5为底的数字相乘:
gumatj_to_decimal(a)
,它将Gumatj数字转换为十进制decimal_to_gumatj(a)
,它将十进制数转换为Gumatj gumatj_add(a, b)
,其中添加了2个Gumatj数字gumatj_multiply(a, b)
,即2个Gumatj数字的倍数choice = input ("Choose test:\n")
action = choice[:1]
print ("calling function")
if action == 'g' or action == 'd':
num = int(choice[2:])
if action == 'g':
answer = gumatj.gumatj_to_decimal (num)
else:
answer = gumatj.decimal_to_gumatj (num)
elif action == 'a' or action == 'm':
num1, num2 = map (int, choice[2:].split(" "))
if action == 'a':
answer = gumatj.gumatj_add (num1, num2)
else:
answer = gumatj.gumatj_multiply (num1, num2)
print ("called function")
print (answer)
示例I / O:
Choose test:
d 12
calling function
called function
22
示例I / O:
Choose test:
g 22
calling function
called function
12
示例I / O:
Choose test:
a 12 14
calling function
called function
31
示例I / O:
Choose test:
m 3 4
calling function
called function
22
答案 0 :(得分:0)
尝试以下代码:
import numpy
def gumatj_to_decimal(num):
return int(str(num), 5)
def decimal_to_gumatj(num):
return numpy.base_repr(num, 5)
def gumatj_add(num1, num2):
return decimal_to_gumatj(gumatj_to_decimal(num1) + gumatj_to_decimal(num2))
def gumatj_multiply(num1, num2):
return decimal_to_gumatj(gumatj_to_decimal(num1) * gumatj_to_decimal(num2))
choice = input("Choose test:\n")
action = choice[:1]
print("calling function")
if action == 'g' or action == 'd':
num = int(choice[2:])
if action == 'g':
answer = gumatj_to_decimal(num)
else:
answer = decimal_to_gumatj(num)
elif action == 'a' or action == 'm':
num1, num2 = map(int, choice[2:].split(" "))
if action == 'a':
answer = gumatj_add(num1, num2)
else:
answer = gumatj_multiply(num1, num2)
print("called function")
print(answer)
示例输出:
Choose test:
d 12
calling function
called function
22
Choose test:
g 22
calling function
called function
12
Choose test:
a 12 14
calling function
called function
31
Choose test:
m 3 4
calling function
called function
22
说明:
Python int
可以将任意基数的字符串转换为整数:
def gumatj_to_decimal(num):
return int(str(num), 5)
Numpy的base_repr
可以做到:
def decimal_to_gumatj(num):
return numpy.base_repr(num, 5)
首先将它们转换为十进制,将它们相加然后转换回以5为底的基数:
def gumatj_add(num1, num2):
return decimal_to_gumatj(gumatj_to_decimal(num1) + gumatj_to_decimal(num2))
首先将它们转换为十进制,然后相乘,再转换回以5为底的基数:
def gumatj_multiply(num1, num2):
return decimal_to_gumatj(gumatj_to_decimal(num1) * gumatj_to_decimal(num2))