代码不提供任何输出

时间:2017-06-03 09:26:27

标签: python function operations

我正在尝试在我的代码中执行以下操作:

一名男子正试图用岩石射击一些气球。

  1. a是一行中的气球数。
  2. b是男人试图射击的速度。
  3. c是击中每个气球后岩石失去的速度。
  4. 最后我想知道岩石射出了多少气球。

    问题是代码不想给我任何输出。请帮忙!

    def Balloons(a, b, c):
        d = 0
        for i in (0, a):
            b - c
            d = d+1
            if d == int(a):
                print(d)
            if d > int(a):
                d = d-1
                print(d)
            if int(b) <= 0:
                print(d)
    
    x = int(input('give me the number of test cases: '))
    for i in range (0, x):
        a = int(input())
        b = int(input())
        c = int(input())
        Balloons(a, b, c)
    

3 个答案:

答案 0 :(得分:3)

问题

没有输出,因为在您的代码定义中,您编写的proc = subprocess.Popen("ls", shell=True, stdout=subprocess.PIPE) for line in proc.stdout: print(line) 没有做任何事情。您需要告诉Python如何处理b - c的结果。

您应该做的是使用subtraction assignment operator

b - c

相当于:

b -= c

这会给你一些输出但不是正确的输出。您的代码的另一个问题是您在函数的for循环中错过了关键字b = b - c

range

这在循环中意味着for i in (0, a): 将是i0的值,然后循环将结束。它应该改为:

a

最后,您可能希望添加一些退出for i in range(0, a): 循环的break语句,以便您只有一个输出:

for

最终解决方案

使用减法赋值和加法赋值运算符的结果代码为:

if d == int(a):
    print(d)
    break
if d > int(a):
    d -=1
    print(d)
    break
if int(b) <= 0:
    print(d)
    break

替代方法

但是,查看您的问题,可以使用基本数学def Balloons(a, b, c): d = 0 for i in range(0, a): b -= c d += 1 if d == int(a): print(d) break if d > int(a): d -=1 print(d) break if int(b) <= 0: print(d) break x = int(input('give me the number of test cases: ')) for i in range(0, x): a = int(input()) b = int(input()) c = int(input()) Balloons(a, b, c) math.ceil函数来解决。

射击的气球数量等于:

中的较小者
  1. ceil(初速/速度损失)
  2. 气球数
  3. 因此,你可以有一个小得多的功能:

    min

答案 1 :(得分:0)

    b-c

我想你想写b -= c

答案 2 :(得分:0)

这应该有效

def Balloons(a, b, c):
    d = 0
    for i in range(0, a):
        b=b-c
        d=d+1
        if d==int(a):
            print(d)
        if d>int(a):
            d=d-1
            print(d)
        if int(b)<=0:
            print(d)

x = int(input('give me the number of test cases: '))
for i in range(0, x):
        a=int(input())
        b=int(input())
        c=int(input())
        Balloons(a, b, c)