我想知道Python中如果while无限循环就输出false该怎么写

问题遇到的现象和发生背景

这是我刷的题目:
给定任何数字,我们可以通过添加该数字的数字平方和来创建一个新数字。例如,给定 203,我们的新号码是 4 + 0 + 9 = 13。如果我们重复这个过程,我们会得到一个数字序列:
203 -> 13 -> 10 -> 1 -> 1
有时,与 203 一样,序列到达(并停留在)1。像这样的数字被称为快乐。

并不是所有的数字都是快乐的。如果我们从 11 开始,序列将是:
11 -> 2 -> 4 -> 16 -> ...
这个序列永远不会到达1,所以这个数字11被称为不快乐。

给定一个正整数,你必须确定这个数字是快乐的还是不快乐的

问题相关代码,请勿粘贴截图

自己写的半成品代码:
n = input()
ls = list(n)
sum = 0
for i in ls:
sum = sum + int(i)*int(i)
sum = str(sum)
while sum!='1':
ls1 = list(sum)
sum = 0
for i in ls1:
sum = sum + int(i)*int(i)
sum = str(sum)
x = sum == '1'
print(x)

求指点

n = 203
xx = []
while True:
    y = sum(map(lambda x: int(x) **2, str(n)))
    
    if y == 1 or y in xx: 
        xx.append(y)
        break
    xx.append(y)
    n = y

print('是快乐数' if 1 in xx else "非快乐")

我整理了一个例子,参考一下吧:

n = input()
lsts = []
while True:
    if n=='1':
        print('happy number')
        break
    lst = [int(s)*int(s) for s in n]
    n = str(sum(lst))
    print(n)
    if n not in lsts:
        lsts.append(n)
    else:
        print('not happy number')
        break