Python代码的输出

ani*_*nil -1 python input python-3.x

我是python的新手.这是我的wiered python代码,适用于所有输入,除了

当c = 0且r!= 0时.

我有多个测试用例(tc),r和c作为输入,根据条件给出所需的输出.

问题---输入r = 4&c = 0时,输出应为2,但输出为1.我为每个r!= 0&c = 0做出了错误的答案.

码:

tc=int(input())
while tc:
     r,c=raw_input().split()
     if int(r)%2==0 and r!=2 and r!=0 and c!=0:
        r=int(r)/2
     elif r!=2 and r!=0 and c!=0:
        r=int(r)/2+1
     elif r==0 or r ==2:
        r=1
     if r!=0:
        if int(c)!=0:
           print(int(r)*int(c))
        else :
           if int(r)%2==0 :
              print(int(r)/2)
            else:
               r=int(r)/2+1
               print(r) 
     else :
        print(c);
     tc=tc-1
Run Code Online (Sandbox Code Playgroud)

样本输入和输出

4         //tc
10 10     //r=10 c= 10
50        //fine
3 3       //r=3 c=3
6         //fine
4 0        //r=4 c=0
1         //Should be 2 accoring to code
5 0      //r=5 c=0
2       //Output should be 3 accoring to the code
Run Code Online (Sandbox Code Playgroud)

Tim*_*ker 7

你自己解决了这个谜(有点):

if int(r)%2==0 and r!=2 and r!=0 and c!=0:
Run Code Online (Sandbox Code Playgroud)

r是一个字符串.所以r永远都是!=2因为"2" != 2永远是真的.所有其他比较也是如此.

我猜你第一次得到了TypeErrorif r%2==0,让你改变程序的该位(也是所有其他地方,你实际上是在做计算的价值观),但忽略了这个观点应用到程序的其他部分.

因此,首先将所有输入转换为ints,然后开始应用程序逻辑.