繁体   English   中英

python函数输出无

[英]python function output None

import random
def getAnswer (answerNumber):
    if getAnswer == 1:
        return 'It is certain'
    elif getAnswer == 2:
        return 'It is decidedly so'  
    elif getAnswer == 3:
        return 'Yes' 
    elif getAnswer == 4:
        return "Reply hazy try again"
    elif getAnswer == 5:
        return 'Ask again later'
    elif getAnswer == 6:
        return "Concentrate and ask again"
    elif getAnswer == 7:
        return 'My reply is no'
    elif getAnswer == 8:
        return 'not so good'
    elif getAnswer == 9:
        return 'doubtful'

r = random.randint(1 , 9)
future = getAnswer(r)
print(future)

您将随机数作为answerNumber ,然后对照getAnswer的值进行检查。 因此,该函数试图将对具有整数的函数的引用进行比较,该整数显然不会求值为True 由于所有if语句都不会得出True ,因此它不会到达return语句就到达函数的末尾,因此默认情况下返回None

将函数主体中的所有getAnswer引用替换为answerNumber并且应该已全部设置好。 就像是:

import random
def getAnswer(answerNumber):
    if answerNumber == 1:
        return 'It is certain'
    elif answerNumber == 2:
        return 'It is decidedly so'  
    elif answerNumber == 3:
        return 'Yes' 
    elif answerNumber == 4:
        return "Reply hazy try again"
    elif answerNumber == 5:
        return 'Ask again later'
    elif answerNumber == 6:
        return "Concentrate and ask again"
    elif answerNumber == 7:
        return 'My reply is no'
    elif answerNumber == 8:
        return 'not so good'
    elif answerNumber == 9:
        return 'doubtful'

r = random.randint(1 , 9)
future = getAnswer(r)
print(future)
import random
def getAnswer (answerNumber):
    if answerNumber == 1:
        return 'It is certain'
    elif answerNumber == 2:
        return 'It is decidedly so'  
    elif answerNumber == 3:
        return 'Yes' 
    elif answerNumber == 4:
        return "Reply hazy try again"
    elif answerNumber == 5:
        return 'Ask again later'
    elif answerNumber == 6:
        return "Concentrate and ask again"
    elif answerNumber == 7:
        return 'My reply is no'
    elif answerNumber == 8:
        return 'not so good'
    elif answerNumber == 9:
        return 'doubtful'

r = random.randint(1 , 9)
future = getAnswer(r)
print(future)

您正在将函数getAnswer与整数值进行比较,并且由于未在其中定义else语句,因此函数调用返回None

answerNumber将实际数字answerNumber与代码中的数字进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM