ATBSWP,第 3 章,Collat​​z 序列。为什么当条件已经满足时 while 循环 运行?

ATBSWP, Chapter 3, Collatz Sequence. Why does the while loop run when condition is already met?

如果用户输入数字 1,那么 while 循环不应该 运行 因为 1 = 1,对吗?

def collatz(number):

    if number % 2 == 0:
        print(number // 2)
        return number // 2

    elif number % 2 == 1:
        result = 3 * number + 1
        print(result)
        return result

try:
    n = input('Give me a number: ') #user inputs number, saved to n
    while n != 1: #function repeats while number is not equal to 1
        n = collatz(int(n)) #this is what actually calls the function
except ValueError:
    print('Please use whole numbers only.')

最初, n 的类型被认为是 str 所以 "1" != 1 因此条件满足。 看这个例子https://code.hackerearth.com/0acb47j