为什么我的程序会跳到最后一行输入?(Python3)

2024-04-19 11:46:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试获取此输入表单中的数据:

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,所以如果我犯了一个非常愚蠢的错误,我很抱歉。你知道吗


Tags: 数据代码in表单inputif整数int
1条回答
网友
1楼 · 发布于 2024-04-19 11:46:00

每次调用函数input(),它都会读取下一行并返回它。如果您用prompt参数调用它(正如您应该做的那样),您就会知道到底发生了什么。你知道吗

所以,你的第一个int(input())5。下一个(在while循环头中)读取+ 3并丢弃它,因为您从不保存返回值。if '+'语句中的下一个input读取* 7并再次丢弃它,以此类推

您需要的是对循环中的input()进行一次调用,将返回值赋给一个变量,并对该变量执行所有检查。你知道吗

相关问题 更多 >