我正在尝试以此输入形式获取数据:
5
+ 3
* 7
+ 10
* 2
% 11
并按顺序执行操作(以5作为初始整数值开始),最后得出最终值。这是我现在的代码,我无法弄清楚为什么它会跳到最后。我已经注释掉了某些部分,试图找到问题的根源,所以不要担心这些:
initValue = int(input())
while input() != '':
if '+' in input():
lineList = input().split()
print(lineList)
#initValue = initValue + int(lineList[1])
#print(initValue)
elif '*' in input():
lineList = input().split()
print(lineList)
#initValue = initValue * int(lineList[1])
#print(initValue)
elif '%' in input():
lineList = input().split()
print(lineList)
我的输入/输出如下所示:
5
+ 3
* 7
+ 10
* 2
* 3
+ 1
% 11
['%', '11']
我仍然只是从python开始,很抱歉,如果我犯了一个非常愚蠢的错误。
答案 0 :(得分:2)
每次调用函数input()
时,它都会读取整行的下一行并返回它。如果你使用调用提示参数(就像你应该的那样),你会知道究竟发生了什么。
因此,您的第一个int(input())
读取5
。下一个(在while
循环标题中)读取+ 3
并丢弃它,因为您从不保存返回的值。 input
语句中的下一个if '+'
会读取* 7
并再次丢弃它,等等。
你需要的是在循环中对input()
进行一次调用,将返回值赋给变量,并对该变量执行所有检查。