Python i';我已经试着让这个代码工作了好几个小时,我';我尝试了多种方法来修复它,但仍然没有';行不通
我已经试着让它工作了好几个小时,我试着用多种方法修复它,但仍然不起作用Python i';我已经试着让这个代码工作了好几个小时,我';我尝试了多种方法来修复它,但仍然没有';行不通,python,oop,Python,Oop,我已经试着让它工作了好几个小时,我试着用多种方法修复它,但仍然不起作用 # this creates my class "bucket" class bucket: def __init__(self, water, capcity): self.water = water self.capcity = capcity # here I create my objects bucket1 = bucket(0, 3) bucket2
# this creates my class "bucket"
class bucket:
def __init__(self, water, capcity):
self.water = water
self.capcity = capcity
# here I create my objects
bucket1 = bucket(0, 3)
bucket2 = bucket(0, 5)
# this is the printing code to print how much water there is in every bucket
def pr_v():
print("Bucket_ONE " + str(bucket1.water) + "L")
print("Bucket_TWO " + str(bucket2.water) + "L")
print(" ")
# this is where my problem is
# this scirpt is supposed to trasfer water from the pouring bucket (p_bucket) to the receiving bucket untill the receiving bucket reaches it's
# capacity or the pouring bucket runs out of water
def pour_water(p_bucket, g_bucket):
while g_bucket.capcity >= g_bucket.water or p_bucket.water != -1:
if g_bucket.capcity != g_bucket.water or p_bucket.water != -1:
if g_bucket.capcity < g_bucket.water:
bucket.water = g_bucket.capcity
break
p_bucket.water -= 1
g_bucket.water += 1
pr_v()
if p_bucket.water == -1:
p_bucket.water = 0
# this fills the bucket to it's capacity
def fill_water(self):
self.water = self.capcity
fill_water(bucket2)
pour_water(bucket2, bucket1)
pr_v()
它应该停在这里,因为铲斗1达到了它的容量
↓
为什么会发生这种情况?
我是新的编码,所以我可能不知道很多东西
谢谢孩子你把事情复杂化了吗
def pour_water(p_bucket, g_bucket):
while not p_bucket.is_full() and not g_bucket.is_empty():
p_bucket += 1
g_bucket -= 1
pr_v()
我将把“is_full”和“is_empty”的实现留给您。
祝您好运您必须更改下一行以添加等号:
if g_bucket.capcity <= g_bucket.water:
如果g_bucket.capcity删除最后一个pr_v()
它只是在您的方法中打印后再次打印结果,或者从您的方法中删除pr_v()
,这样您只会看到结果向下箭头是否意味着您不期望下面的输出,但您得到了它?您应该阅读以下内容:非常感谢!这种方法简单得多,但是你知道为什么它一开始就不起作用吗?
def pour_water(p_bucket, g_bucket):
while not p_bucket.is_full() and not g_bucket.is_empty():
p_bucket += 1
g_bucket -= 1
pr_v()
if g_bucket.capcity <= g_bucket.water: