鱼C论坛

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

[已解决]求助04改进我们的小游戏课后习题

[复制链接]
发表于 2020-4-21 09:29:42 | 显示全部楼层 |阅读模式

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

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

x
import random
times = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
# 这里先给guess赋值(赋一个绝对不等于secret的值)
guess = 0
# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times > 0):
    temp = input()
    guess = int(temp)
    times = times - 1 # 用户每输入一次,可用机会就-1
    if guess == secret:
        print("我草,你是小甲鱼心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
    else:
        if guess > secret:
            print("哥,大了大了~~~")
        else:
            print("嘿,小了,小了~~~")
        if times > 0:
            print("再试一次吧:", end=" ")
        else:
            print("机会用光咯T_T")
print("游戏结束,不玩啦^_^")
请问这个guess = 0是起什么作用啊
还有要加入end把换行变成空格是为什么呢
最佳答案
2020-4-21 09:35:52
guess=0,是给guess赋初值,为while徐娜混做准备,
因为若不赋初值,while循环的条件中就不能写guess!=secret,会报错
之所以赋初值为0,就是因为0是一个肯定不对的值(secret范围1到10),所以你可以赋初值为其他的值,比如一个负数,或者大于10 的数

第二个问题
print有个end参数是控制输出结尾字符的,默认值为'\n',即回车,这里设定end参数,就是为了让这个print输出不换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-21 09:35:52 | 显示全部楼层    本楼为最佳答案   
guess=0,是给guess赋初值,为while徐娜混做准备,
因为若不赋初值,while循环的条件中就不能写guess!=secret,会报错
之所以赋初值为0,就是因为0是一个肯定不对的值(secret范围1到10),所以你可以赋初值为其他的值,比如一个负数,或者大于10 的数

第二个问题
print有个end参数是控制输出结尾字符的,默认值为'\n',即回车,这里设定end参数,就是为了让这个print输出不换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-21 09:37:06 | 显示全部楼层
1.guess = 0是初始化guess变量,只要把guess赋值给一个肯定不是答案的变量即可
2.end = ' '是为了它打印完"再试一次吧:"后不换行(默认end = '\n')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-21 09:38:43 | 显示全部楼层
1、python表示你得先让我知道guess是个啥或者是个类型,我下面才好判断。

2、end表示当前输出结果不换行,其实就是为了美观,换行不换行没啥区别。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-21 09:39:37 | 显示全部楼层
1.guess = 0是为了初始化guess,因为secret不会是0
2.为了在下一次打印时不换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-21 09:51:19 | 显示全部楼层
本帖最后由 liuzhengyuan 于 2020-4-21 09:52 编辑

初始化 guess,如果guess=5,或其他什么数的话,万一 sceret,真好与 guess 相等,那就猜不了了,一上来直接对

含简单呀,如果不弄成换行输入格式就会有问题
(默认是换行)
如果不加 end 输入就会是。。。
再试一次把:
5

原本是
再试一次把:5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-21 15:45:42 | 显示全部楼层
guess = 0 定义一个数赋初值为0 相当于之后用户输入的数 和secret = random.randint(1,10)这个函数产生的随机数比较
end  为了在下一次打印时不换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-22 15:26:48 | 显示全部楼层
guess = 0,是为了让程序进入while循环,guess也不一定要赋值0,因为secret为1~9,你可以赋值guess除了1~9外的任何数。
print是默认换行的,加上end = ‘’就不换行了,相当于把纵向输入,变为横向的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 06:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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