Python 为变量分配用户输入运算符

Python 为变量分配用户输入运算符,python,python-3.x,Python,Python 3.x,我试图设置一种情况,在这种情况下,用户输入一个数字和一个运算符,输出是1到10列表中的(用户编号)(用户运算符) 这很难解释,但代码如下: num = int(input("Enter a number greater than 1: ")) oper = input("Choose a math operation (+, -, *): ") for i in range(1, 11): print(num) 我在那里迷路了。我想买些看起来像 num oper 1 =

我试图设置一种情况,在这种情况下,用户输入一个数字和一个运算符,输出是1到10列表中的(用户编号)(用户运算符)

这很难解释,但代码如下:

num = int(input("Enter a number greater than 1: "))

oper = input("Choose a math operation (+, -, *): ")
for i in range(1, 11):
    print(num)
我在那里迷路了。我想买些看起来像

num   oper   1   =   (whatever num and the operator and 1 equal)
num   oper   2   =   (whatever num and the operator and 2 equal)
等等


所以我的问题是:如何将用户输入的运算符分配给变量?

根据您在这里所说的:

我试图设置一种情况,用户输入一个数字,然后 一个运算符,输出为 清单1至10

我想你应该这样做:

num = int(input("Enter a number greater than 1: "))

oper = input("Choose a math operation (+, -, *): ")
for i in range(1, 11):
    if oper == "+":
       print(num+i)
    elif oper == "-":
       print (num-i)
    elif oper == "*":
       print (num*i)


看起来你想要这样的东西:

num = int(input("Enter a number greater than 1: "))

oper = raw_input("Choose a math operation (+, -, *): ")
for i in range(1, 11):
    if oper == '+':
        print(num, oper, i, '=', num + i)
    elif oper == '-':
        print(num, oper, i, '=', num - i)
    elif oper == '*':
        print(num, oper, i, '=', num * i)
    else:
        print('operator is not supported')
for n in range(10):
    otherNumber = n + 1
    print(yourNumber, otherNumber, operator)
输出:

Enter a number greater than 1: 2
Choose a math operation (+, -, *): *
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
2 * 10 = 20

我认为最简单的方法是创建一个函数,函数本身具有所有这些if/elif条件,因为python不将字符串识别为运算符

该函数可能看起来有点像:

def operation(number1, number2, operator):
    if operator == '+':
        return number1 + number2
    elif operator == '-':
        return number1 - number2
等等。然后可以在for循环中调用此函数,如下所示:

num = int(input("Enter a number greater than 1: "))

oper = raw_input("Choose a math operation (+, -, *): ")
for i in range(1, 11):
    if oper == '+':
        print(num, oper, i, '=', num + i)
    elif oper == '-':
        print(num, oper, i, '=', num - i)
    elif oper == '*':
        print(num, oper, i, '=', num * i)
    else:
        print('operator is not supported')
for n in range(10):
    otherNumber = n + 1
    print(yourNumber, otherNumber, operator)

另一种可能是使用模块设置运算符函数字典,如下所示:

import operator

operator_dict = {
    '+': operator.add,
    '-': operator.sub,
    '*': operator.mul,
}
num = int(input("Enter a number greater than 1: "))

oper = input("Choose a math operation (+, -, *): ")
for i in range(1, 11):
    print(operator_dict[oper](float(num), i))
示例会话:

Enter a number greater than 1: 3
Choose a math operation (+, -, *): *
3.0
6.0
9.0
12.0
15.0
18.0
21.0
24.0
27.0
30.0

这很好,但您可以将if块移到循环之外这是eval可以以更有效的方式使用的东西。eval是您通常希望避免的东西,即使它可以帮助您。我更喜欢if块(或字典查找),因为它允许程序员精确地控制允许哪些操作