python函数输出非

2024-09-28 22:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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)

Tags: importreturnifsoisdefitfuture
2条回答

将随机数作为answerNumber传入,然后检查getAnswer的值。因此,函数试图将引用与带有整数的函数进行比较,而整数显然永远不会计算为True。因为没有一个if语句的计算结果是True,所以它到达函数的末尾时不会碰到return语句,因此默认情况下返回None。你知道吗

answerNumber替换函数体中的所有getAnswer引用,您应该都设置好了。比如:

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与代码中的数字进行比较。你知道吗

相关问题 更多 >