鱼C论坛

 找回密码
 立即注册
查看: 1826|回复: 7

[已解决]第004讲的小游戏改进代码疑问

[复制链接]
发表于 2017-7-23 21:19:55 | 显示全部楼层 |阅读模式

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

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

x
小甲鱼公布的小游戏改进,我有几点疑问,恳请高手解答下:
import random
times = 3  #    这里time是变量?
secret = random.randint(1,10)    #这里不设置1--10的范围为什么不行?
print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")   # 这里end=''是用来做什么?字符串里面空格和没有空格,貌似一样啊?
while (guess != secret) and (times > 0):
    temp = input()
    guess = int(temp)
    times = times - 1
    if guess == secret:
        print("我草,你是小甲鱼心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
    else:
        if guess > secret:    # 貌似这里改完后,第一次输入数值,就会提示大小。到底问题出在哪里?
            print("哥,大了大了~~~")
        else:
            print("嘿,小了,小了~~~")
        if times > 0:   #这里的if为什么会在else分支下面?我改了下,貌似改到while下方的分支也是可以的?
            print("再试一次吧:", end=" ")   #为什么这里要增加end='',其他行的代码则没有?
        else:
            print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")
最佳答案
2017-7-23 21:27:55
times是变量 代表可以猜几次
可以设置其他范围
end那个字符串间有个空格,输入时就不会换行
第一次输入数值当然会提示大小
这是个大else里面的一个if
end有没有都行,换不换行而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-23 21:27:55 | 显示全部楼层    本楼为最佳答案   
times是变量 代表可以猜几次
可以设置其他范围
end那个字符串间有个空格,输入时就不会换行
第一次输入数值当然会提示大小
这是个大else里面的一个if
end有没有都行,换不换行而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-23 21:43:47 | 显示全部楼层
新手·ing 发表于 2017-7-23 21:27
times是变量 代表可以猜几次
可以设置其他范围
end那个字符串间有个空格,输入时就不会换行

我试了下,end后面的字符串里,有没空格,貌似都可以换行啊。。就是出现提示说,(再试一次吧:)这里的冒号后面会多个空格。
之前在教学视频里的程序,第一次输入时,就没有提示大小。。
我把这个if time > 0更改到和大else平行状态下,貌似也是可以的?,只是不知道有没错。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-23 22:56:03 | 显示全部楼层
times = 3  time是变量,在这段代码当中的意义就是机会只有3次。机会用完就不能继续了,循环就停止
random.dandint()是取随机数的函数,你肯定要设置参数啊,在某个范围内取一随机数。如果不设置
那么自然数是无限的,你让python怎么取?
print()这个函数有一个参数是end 就是以什么结尾 默认是以换行符结尾,这个设置end=" "就表示以
空格符号代替换行符,这样打印的时候就不会换行
if guess>secret 就是判断用户输入的数值大于答案,那么就执行下面语句 打印 大了大了~
if为什么不能在else分支下面? 程序可能有无数个分支,那么在分支中如果出现多种情况该怎么办呢?
所以if是可以在else分支里面的,也是可以在while循环里面的!只要注意缩进就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-24 08:46:29 | 显示全部楼层
QQ图片20170724084344.png 我自己的了解 学了几天了 就到这理解不了头痛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-26 05:50:42 | 显示全部楼层
新手·ing 发表于 2017-7-23 21:27
times是变量 代表可以猜几次
可以设置其他范围
end那个字符串间有个空格,输入时就不会换行

请教几个疑问:
1. 为什么guess这个变量,在使用前要先赋值?
2. guess赋值的时候,用的是=,而在if语句里,guess则用的是==,这里让我对字符串和数字所使用的=,==有点迷糊了。。能否帮忙解释下。
3. 这个是小甲鱼教学视频里的代码,我之前试验过,貌似第一次输入数字时,只能提示对错,而不会告知大小。。我没搞懂这里做了什么改变,导致第一次就可以提示大小了。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-12 21:49:03 | 显示全部楼层
老笨啊 发表于 2017-7-26 05:50
请教几个疑问:
1. 为什么guess这个变量,在使用前要先赋值?
2. guess赋值的时候,用的是=,而在if语 ...

times = times - 1
这个是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-13 08:29:36 | 显示全部楼层
X_Rose 发表于 2017-8-12 21:49
times = times - 1
这个是什么意思?

用在循环语句里,表示用一次,次数减少一次。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 19:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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