代码不给任何输出
问题描述:
我试图做在我的代码如下:代码不给任何输出
一名男子正试图拍摄一些气球的岩石。
-
a
是一行中的气球的数量。 -
b
是男人试图用来拍摄的摇滚速度。 -
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)
答
b-c
我想你想写b -= c
答
这应该工作
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)
答
问题
没有输出,因为在你的代码的定义,你写了b - c
什么也没做。你需要告诉Python如何处理b - c
的结果。
你应该做的反而是用来subtraction assignment operator:
b -= c
即相当于:
b = b - c
这会给你一些输出,但不正确的输出。用你的代码的另一个问题是,你错过了关键字range
在为你的函数的循环:
for i in (0, a):
这意味着在循环是i
将是0
和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
和min
函数来解决。
通过是拍气球的数量等于给小:
- 小区(初始速度/速度损失)
- 气球数量
因此,你可以有一个更更小的功能:
import math
def Balloons(a, b, c):
return min(math.ceil(b/c), a)
你错过了'范围'在'为我在(0,a)'? 'b - c'这行不会做任何事情。 –
当您从控制台输入时,请按下'enter'键为每个输入。 –