Python 为变量分配用户输入运算符
我试图设置一种情况,在这种情况下,用户输入一个数字和一个运算符,输出是1到10列表中的(用户编号)(用户运算符) 这很难解释,但代码如下: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 =
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块(或字典查找),因为它允许程序员精确地控制允许哪些操作