如何在Python中一起使用if / while循环?

时间:2014-04-14 16:15:38

标签: python loops if-statement while-loop addition

所以基本上我想这样做生成一个随机数(我知道该怎么做)如果那个数是偶数(或number%2 == 0)然后将它除以2然后得到的数字是奇数(或{ {1}})然后乘以3并加1。如果这没有多大意义,那么这是一个例子

  • 选择一个像26这样的数字(即使这样除以2)
  • 产生的数字是13(这是奇数,所以乘以3加1)
  • 得出的数字是40(甚至这样除以2)

继续此过程,直到数字为== 1

我不确定使用什么循环来做到这一点所以非常感谢任何帮助! :)

2 个答案:

答案 0 :(得分:4)

number = # generate random number
while number != 1:
    if number % 2: # if number is odd, multiply by 3, add 1
        number *= 3
        number += 1
    else: # if number is even, divide by 2
        number /= 2

如果您愿意,可以运行一些厚颜无耻的代码来跟踪迭代:

num_iterations = 0
number = # generate random number
while number != 1:
    num_iterations += 1
    if number % 2:
        number = number * 3 + 1
    else:
        number /= 2

答案 1 :(得分:0)

由于您不知道将number等于1需要多少步骤,即迭代次数未知,请使用while循环:

number = # random number

while number != 1:
    if number % 2:
        number *= 3
        number += 1
    else:
        number /= 2

或另一种方法:

number = # random number

while True:
    if number == 1:
        break
    elif number % 2:  # odd
        number *= 3
        number += 1
    else:          # even
        number /= 2