I'm surprised no one's mentioned a while loop yet:
start = 0
while (end := my_str.find("x", start)) != -1:
print(my_str[start:end])
start = end + 1
vs start = 0
while True:
end = my_str.find("x", start)
if end == -1:
break
print(my_str[start:end])
start = end + 1
I'm still on the fence myself so I sympathise with your view, but the first version is certainly a bit tidier in this case.