我正在尝试在我的代码中执行以下操作:
一名男子正试图用岩石射击一些气球。
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)
答案 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):
将是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
答案 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)