使选择链接到python中的定义

时间:2014-06-19 08:59:23

标签: python python-2.7

所以这被认为是如何工作的:启动脚本,创建一个可选择的菜单,以便用户可以选择做什么(添加,分割,乘法等)。但我似乎无法弄明白该怎么做。

这样的事情:

按1添加 按2进行乘法

等等。我刚刚制定了add定义,但我计划在进行乘法和除法等时使用相同的模板。

# Calculations
def add(a, b):
    print "Write the numbers to add"
    adda = int(raw_input("First number: "))
    addb = int(raw_input("Second number: "))
    print "Adding %d and %d together" % (a, b)
    print "%d + %d="
    return a + b

# Choose what to do
print "Write what you want do do: add, subtract, multiply or divide"

编辑:

# Calculations
def math(command):
    print "Write the numbers to %s" % command
    a = int(raw_input("First number: "))
    b = int(raw_input("Second number: "))
    if command == 'add':
        return a + b
    elif command == 'subtract':
        return a - b
    elif command == 'multiply':
        return a * b
    elif command == 'divide':
        return a / b
    else:
        return 'not a valid command'

# Choose what to do
print "Write what you want to do.. add, subtract, multiply or divide"
command = raw_input("Do you want to add, multiply, divide or subtract: ")

这里的问题是它不会打印出返回a + b的值,例如,我没有任何指向def math()的链接,所以我认为它不会运行..任何方式解决这个问题?

1 个答案:

答案 0 :(得分:1)

您应该使用raw_input来了解用户想要做的事情,类似于您在add()函数中获取数字的方式。

# Choose what to do
choice = raw_input("Write what you want do do: add, subtract, multiply or divide")
if choice == 'add':
    add()

但是,因为在add()中您要求添加用户想要添加的号码,您不希望使用参数调用add(),因此请更改

def add(a, b):

def add():

稍后,当您实现其他功能时,您可以执行类似

的操作
# Choose what to do
choice = raw_input("Write what you want do do: add, subtract, multiply or divide")
if choice == 'add':
    add()
elif choice == 'subtract'
    subtract()
elif choice == 'multiply'
    multiply()
elif choice == 'divide'
    divide()
else:
    print 'not a valid choice'

  

我计划在进行乘法和除法等时使用相同的模板。

在这种情况下你可以做这样的事情

def dostuff(command):
    print "Write the numbers to %s" (command)
    a = int(raw_input("First number: "))
    b = int(raw_input("Second number: "))
    if command == 'add':
        return a + b
    elif command == 'subtract':
        return a - b
    elif command == 'multiply':
        return a * b
    elif command == 'divide':
        return a / b
    else:
        return 'not a valid command'

# Choose what to do
command = raw_input("Write what you want do do: add, subtract, multiply or divide")
print dostuff(command)