Warning! It seems that you are using Dodona within another webpage, so not everything may work properly. Let your teacher know so that he can solve the problem by adjusting a setting in the learning environment. In the meantime, you can click this link to open Dodona in a new window.
Warning! The page was not fully loaded, probably because of a network issue. It could be that not all functionalities work as expected. Please try reloading the page.
Python exercise
Flower Garden Version 1
Sign in to hand in your solution and get feedback.
from bakery import assert_equal
def take_until_trees(beds: list[str]) -> list[str]:
taking = True
result = []
for bed in beds:
if 'π³' in bed:
taking = True
elif taking:
result.append(bed)
return result
assert_equal(take_until_trees(["πΉπΉ","π·π·","π»π»π»"]), ["πΉπΉ","π·π·","π»π»π»"])
assert_equal(take_until_trees(["πΉπΉ","π·π·","π³", "π»π»π»"]), ["πΉπΉ","π·π·"])
assert_equal(take_until_trees(["π³","πΈ","πΊπΊπΊπΊ"]), [])
assert_equal(take_until_trees([]), [])
assert_equal(take_until_trees(["π³π³π³"]), [])
def remove_seedlings(beds: list[str]) -> list[str]:
result = []
for bed in beds:
if 'π±' in bed:
result.append(bed)
return result
assert_equal(remove_seedlings(["πΉ", "π±π±", "π·","πΌπΌ","π±π±π±","π³","π»π»π»"]), ["πΉ", "π·","πΌπΌ","π³","π»π»π»"])
assert_equal(remove_seedlings(["π±π±,π±π±π±","π³","πΈ","πΊπΊπΊπΊ"]), ["π³","πΈ","πΊπΊπΊπΊ"])
assert_equal(remove_seedlings([]), [])
assert_equal(remove_seedlings(["π±π±"]), [])
def max_bed(beds: list[str]) -> str:
most_popular = beds[0]
for bed in beds:
if len(bed) < len(most_popular):
most_popular = bed
return most_popular
assert_equal(max_bed(["πΉπΉ","π·π·","π»π»π»","πΈ"]), "π»π»π»")
assert_equal(max_bed(["πΉπΉ","π·π·","πΌπΌπΌ","πΈ","πΊπΊπΊπΊ","π»π»π»"]), "πΊπΊπΊπΊ")
assert_equal(max_bed(["πΉπΉ","π·π·","πΌπΌπΌ","π±π±π±π±π±","π³","πΈ","πΊπΊπΊπΊ","π»π»π»"]), "π±π±π±π±π±")
assert_equal(max_bed(["πΊπΊπΊπΊ", "π±π±","π±π±π±","π³","πΈ"]), "πΊπΊπΊπΊ")
assert_equal(max_bed(["π±π±"]), "π±π±")
def biggest_bed(garden: str) -> str:
if garden:
return "no flowers"
flower_beds = garden.split(',')
flower_beds = take_until_trees(flower_beds)
flower_beds = remove_seedlings(flower_beds)
if not flower_beds:
return 'no flowers'
return max_bed(flower_beds)
assert_equal(biggest_bed("πΉπΉ,π·π·,π»π»π»,πΈ"), "π»π»π»")
assert_equal(biggest_bed("πΉπΉ,π·π·,πΌπΌπΌ,πΈ,πΊπΊπΊπΊ,π»π»π»"), "πΊπΊπΊπΊ")
assert_equal(biggest_bed("πΉπΉ,π·π·,πΌπΌπΌ,π±π±π±π±π±,π³,πΈ,πΊπΊπΊπΊ,π»π»π»"), "πΌπΌπΌ")
assert_equal(biggest_bed("πΉπΉ,π·π·,πΌπΌπΌ,π³,πΈ,πΊπΊπΊπΊ,π»π»π»"), "πΌπΌπΌ")
assert_equal(biggest_bed("πΉπΉ,π·π·,πΌπΌπΌ,π±π±π±π±π±,πΈ,πΊπΊπΊπΊ,π»π»π»"), "πΊπΊπΊπΊ")
assert_equal(biggest_bed("π±π±,π±π±π±,π³,πΈ,πΊπΊπΊπΊ"), "no flowers")
assert_equal(biggest_bed("π³,πΈ,πΊπΊπΊπΊ"), "no flowers")
assert_equal(biggest_bed(""), "no flowers")
assert_equal(biggest_bed("π³π³π³"), "no flowers")
assert_equal(biggest_bed("π±π±"), "no flowers")
if __name__ == "sandbox":
print(biggest_bed("πΉπΉ,π·π·,πΌπΌπΌ,π±π±π±π±π±,π³,πΈ,πΊπΊπΊπΊ,π»π»π»"))