【问题标题】:When i run this code snippet several times which generates a random even number in python it prints "None" for some times. Why is this happening?当我多次运行此代码片段时,它会在 python 中生成一个随机偶数,它会打印“无”一段时间。为什么会这样?
【发布时间】:2018-04-25 13:08:28
【问题描述】:

当我多次运行此代码时,它会打印“无”一段时间。为什么会这样

import random
def randomeven():
    n=int(r.random()*100)
    if n%2==0:
       return n
    else:
       randomeven()

print(randomeven())

【问题讨论】:

  • else的情况下,返回什么?
  • return randomeven() 没有它,该方法什么也不返回。

标签: python-3.x random


【解决方案1】:

你需要return randomeven()

否则,您将从函数返回 void/None。

所以,当第一个随机数不是偶数时,你会得到None

randomeven()
 |
 ---> (generates 15) calls itself, returns None
       |
       ---> (generates 2) returns 2
             |
         <---- (2 is returned)
       |
 <------ (returns None)

我建议使用调试器来解决这类问题。

【讨论】:

    猜你喜欢
    • 2020-02-03
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多