鱼C论坛

 找回密码
 立即注册
查看: 2147|回复: 5

[已解决]新人对于return理解的一个小问题

[复制链接]
发表于 2020-11-15 13:43:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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可以有其他的替代吗? 在论坛里搜索了没有找到  可能是问题太简单了,还请各位帮帮看下,谢谢啦
最佳答案
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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-15 13:53:40 | 显示全部楼层
Twilight6 发表于 2020-11-15 13:49
是的,猜对数值执行 isEqual 函数里面的第三个 if 条件,返回 True


太感谢啦!明白啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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就等于什么,函数调用时返回什么,函数就等效于什么(大白话,听懂就好)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

明白啦~谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 13:56:08 | 显示全部楼层
啊这,几分钟没刷新而已,这么快吗,,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 21:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表