遇到了多个功能串联的问题

2024-09-29 00:12:08 发布

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

基本上,我正在编写一个函数,它使用前面的2作为输入参数,2个数字x,即您想要播放的次数和y,即猜测的上限。循环记录你赢了多少次。。。但每当我运行它的总数总是0,我无法找出我哪里出错了这里是代码。(so_fun是问题开始的地方)尽管在以前的函数中可能是一个问题,它正在弄乱较低的函数。。。你知道吗

def closer(x,y,z):
    if (abs(x-y))<(abs(x-z)):
        return (True)
    else:
        return (False)


print(closer(4,2,7))

def grumpy(x):
    goal_num=randrange(0,x)
    user_guess=int(input('guess a number between 0 and ' + str(x)))
    comp_guess=randrange(0,user_guess)
    print(closer(goal_num,user_guess,comp_guess))

def so_fun(x,y):
    total=0
    while x>0:
        if grumpy(y):
            total+=1
        x -=1
    print(total)

Tags: 函数returnifsodefabsnumtotal
2条回答

对我来说,原因是在if语句中签入'grumpy'时没有返回值。检查此项:

from random import randrange

def closer(x, y, z):
    return abs(x-y) < abs(x-z)

def grumpy(end):
    goal_num = randrange(0, end)
    user_guess = int(raw_input('guess a number between 0 and {0}'.format(end)))
    comp_guess = randrange(0, user_guess)
    return closer(goal_num, user_guess, comp_guess)

def so_fun(x, y):
    total = 0
    while x > 0:
        if grumpy(y):
            total += 1
        x -= 1
    print total

so_fun(7,5)

问题在于:

if grumpy(y):

我认为函数grumpy不会返回任何东西。因此,此条件的计算结果始终为false,并且从不执行if块。尝试从grumpy函数返回一些值。你知道吗

相关问题 更多 >