Пожалуйста, прочитайте следующие строки, чтобы понять, как исправить ошибку в вашем коде:
sList=[]
x=tuple(input("insert tuple (0 to stop): "))
print("x contains: " + str(x))
print("x type is: " + str(type(x)))
while int(x[0])!=int(0):
print("x contains: " + str(x))
print("x type is: " + str(type(x)))
sList.append(x)
x=tuple(input("insert tuple (0 to stop): "))
print (sList)
Вы сравниваете строку (0,) со значением int 0. Именно поэтому ваша версия не работает должным образом.
Я также добавил еще две распечатки, чтобы лучше понять, что делает код.
Как только мы поняли природу ошибки и как ее исправить, я бы хотел Я спрашиваю вас, почему в этом случае используется кортеж.
Может ли использование int напрямую быть хорошей идеей?
Мы могли бы также уменьшить количество строк и удалить дублированный код, вот еще одна итерация:
sList=[]
x = None
while x != 0:
print("x contains: " + str(x))
print("x type is: " + str(type(x)))
x = input("Insert 0 to stop: ")
if (x != None) and x.isdigit():
x = int(x)
if x != 0:
sList.append(x)
print (sList)