NoKnow0722 发表于 2020-11-15 13:43:46

新人对于return理解的一个小问题

def isEqual(num1, num2):
   if num1<num2:
       print ('too small')
       return False
   if num1>num2:
       print ('too big')
       return False
   if num1==num2:
       print ('bingo!')
       return True
from random import randint
num = randint(1, 100)
print('Guess what I think?')
bingo = False
while bingo == False:
   answer = int(input())
   bingo = isEqual(answer, num)
一个猜数字的游戏,请问红色部分如果猜对数字 前面定义的函数是将bingo返回为True吗?所以猜对数字后bingo不为False就不继续运行了是这样吗?如果是的话,那前面的那个isEqual函数里最后的return False或者return True是不是将整个函数改为False或者True啊,表达的不专业,还请见谅
另外,这里面的False和True可以有其他的替代吗? 在论坛里搜索了没有找到可能是问题太简单了,还请各位帮帮看下,谢谢啦{:10_254:}

Twilight6 发表于 2020-11-15 13:49:23



请问红色部分如果猜对数字 前面定义的函数是将bingo返回为True吗?

是的,猜对数值执行 isEqual 函数里面的第三个 if 条件,返回 True

所以猜对数字后bingo不为False就不继续运行了是这样吗?

是的,因为函数返回了 True ,所以不符合红字部分 while 循环条件,退出循环

前面的那个isEqual函数里最后的return False或者return True是不是将整个函数改为False或者True啊?

函数调用返回结果即为赋值给变量的数值,举个例子:假如你猜对数字,那么 isEqual 函数返回的是 True

则bingo = isEqual(answer, num) 即 isEqual(answer, num) 猜对数字返回 True ,isEqual(answer, num) = True ,相当于 bingo = True

这里面的False和True可以有其他的替代吗?

可以用 0 和1 代替,因为 1 == True , 0== False


NoKnow0722 发表于 2020-11-15 13:53:40

Twilight6 发表于 2020-11-15 13:49
是的,猜对数值执行 isEqual 函数里面的第三个 if 条件,返回 True




太感谢啦!明白啦~

昨非 发表于 2020-11-15 13:55:15

一个猜数字的游戏,请问红色部分如果猜对数字 前面定义的函数是将bingo返回为True吗?

答:在函数调用环节:bingo的初值为False,所以可以经过while判断进入循环,如果猜对了,bingo变成True,下次循环就进不去了,也就是直接结束了


所以猜对数字后bingo不为False就不继续运行了是这样吗?

答:是的,你说的很正确


那前面的那个isEqual函数里最后的return False或者return True是不是将整个函数改为False或者True啊?

答:表达不准确,但基本意思是对的,,
因为调用的时候, bingo = isEqual(answer, num)
这一句,将函数的返回值赋值给了bingo,,所以 函数的返回值是什么,bingo就等于什么,函数调用时返回什么,函数就等效于什么(大白话,听懂就好)

NoKnow0722 发表于 2020-11-15 13:56:07

昨非 发表于 2020-11-15 13:55
答:在函数调用环节:bingo的初值为False,所以可以经过while判断进入循环,如果猜对了,bingo变成True ...

明白啦~谢谢!!

昨非 发表于 2020-11-15 13:56:08

啊这,几分钟没刷新而已,这么快吗,,,,
页: [1]
查看完整版本: 新人对于return理解的一个小问题