2017-06-03 62 views
0

我试图做在我的代码如下:代码不给任何输出

一名男子正试图拍摄一些气球的岩石。

  1. a是一行中的气球的数量。
  2. b是男人试图用来拍摄的摇滚速度。
  3. c是岩石撞击每个气球后失去的速度。

最后我想知道有多少气球被岩石击中。

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

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) 
+0

你错过了'范围'在'为我在(0,a)'? 'b - c'这行不会做任何事情。 –

+0

当您从控制台输入时,请按下'enter'键为每个输入。 –

回答

0
b-c 

我想你想写b -= c

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) 
3

问题

没有输出,因为在你的代码的定义,你写了b - c什么也没做。你需要告诉Python如何处理b - c的结果。

你应该做的反而是用来subtraction assignment operator

b -= c 

即相当于:

b = b - c 

这会给你一些输出,但不正确的输出。用你的代码的另一个问题是,你错过了关键字range在为你的函数的循环:

for i in (0, a): 

这意味着在循环是i将是0a值则循环将结束。应改为:

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.ceilmin函数来解决。

通过是拍气球的数量等于给小:

  1. 小区(初始速度/速度损失)
  2. 气球数量

因此,你可以有一个更更小的功能:

import math 
def Balloons(a, b, c): 
    return min(math.ceil(b/c), a)