我开始学习python,我刚刚完成了我的第一个项目,即collatz序列,“如果n是偶数,则除以2得到n / 2.如果n是奇数,则乘以它由3加1以获得3n + 1.重复该过程直到达到1.“
这是我的代码,它不是很长:
import sys
def integer(): #Asks for input and checks whether positive integer
while True:
number = input("Enter a positive, whole number:")
try:
number = int(number)
if number > 0:
break
else:
raise ValueError
except ValueError:
print("That's not right! \n Please enter a positive, whole number")
return number
number = None
def collatz():
global number
print(number)
while number > 1:
if number % 2 ==0:
number = number // 2
else:
number = number * 3 + 1
print(number)
while True: #loop so that you can try again
number = integer()
collatz()
repeat = input("Try again? Y/N").upper()
while repeat != "Y" and repeat != "N": #Only Y/N are valid
repeat = input("Try again? Y/N")
if repeat == "N":
sys.exit() #end program if N selected
else:
pass #Reloops to try again
我在我的Google Pixel XL(高达2.4 GHz)上运行了一个名为“QPython3”的应用程序,运行Android 7.1.1以及我的基本型号MacBook Pro(Retina,13英寸,2015年初)(2.7千兆赫)。
当我使用10 ^ 100这样荒谬的大数字时,MacBook花了几分钟才达到1分钟,但我的手机几乎是瞬间完成了。
我不明白为什么会这样。适当的计算机不应该在各方面都更好吗?
(如果你想对我的代码的整体有效性给出反馈,这是值得赞赏的,但可能不值得你花时间,因为我很新,很可能不太了解。我只是想做在这个阶段工作的代码)