将小数转换为小数,将小数转换为小数,使用def函数将基数加5并乘以基数5

时间:2019-03-29 07:39:10

标签: python-3.x algorithm

如何使用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

1 个答案:

答案 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

说明:

  • 将基数5转换为十进制:

Python int可以将任意基数的字符串转换为整数:

def gumatj_to_decimal(num):
    return int(str(num), 5)
  • 将十进制数字转换为以5为底的数字:

Numpy的base_repr可以做到:

def decimal_to_gumatj(num):
    return numpy.base_repr(num, 5)
  • 加两个5的底数:

首先将它们转换为十进制,将它们相加然后转换回以5为底的基数:

def gumatj_add(num1, num2):
    return decimal_to_gumatj(gumatj_to_decimal(num1) + gumatj_to_decimal(num2))
  • 将两个以5为底的数字相乘:

首先将它们转换为十进制,然后相乘,再转换回以5为底的基数:

def gumatj_multiply(num1, num2):
    return decimal_to_gumatj(gumatj_to_decimal(num1) * gumatj_to_decimal(num2))