gpt4 book ai didi

python - 使 collat​​z 程序自动化无聊的事情

转载 作者:太空狗 更新时间:2023-10-29 17:12:36 25 4
gpt4 key购买 nike

我正在尝试使用《使用 Python 自动化无聊的东西》第 3 章末尾的项目指南编写 Collat​​z 程序。我正在使用 python 3.4.0。以下是项目大纲:

编写一个名为 collat​​z() 的函数,它有一个名为 number 的参数。如果数字是偶数,则 collat​​z() 应该打印 number//2 并返回该值。如果数字是奇数,则 collat​​z() 应该打印并返回 3 * number + 1。然后编写一个程序,让用户输入一个整数,并继续对该数字调用 collat​​z(),直到该函数返回值 1

这个程序的输出看起来像这样:

Enter number: 3 10 5 16 8 4 2 1 

我正在尝试创建一个在 while 循环中使用 ifelif 语句的函数。我希望打印数字,然后返回到循环的开头并使用 Collat​​z 序列将其自身缩减为 1,结果数字的每个实例在通过循环时被打印出来。使用我当前的代码,我只能打印数字的第一个实例,并且该数字之后不会通过循环。以下是我的代码:

#collatz

print("enter a number:")
try:
number = (int(input()))
except ValueError:
print("Please enter a valid INTEGER.")


def collatz(number):
while number != 1:

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

elif nnumber % 2==1:
number = (3*number+1)
#print(number)
return (print(int(number)))

continue


collatz(number)

最佳答案

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

n = input("Give me a number: ")
while n != 1:
n = collatz(int(n))

输出:

Give me a number: 3
10
5
16
8
4
2
1

Give me a number: 11
34
17
52
26
13
40
20
10
5
16
8
4
2
1

关于python - 使 collat​​z 程序自动化无聊的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com