chujiujiu 发表于 2020-4-21 09:29:42

求助04改进我们的小游戏课后习题

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把换行变成空格是为什么呢

sunrise085 发表于 2020-4-21 09:35:52

guess=0,是给guess赋初值,为while徐娜混做准备,
因为若不赋初值,while循环的条件中就不能写guess!=secret,会报错
之所以赋初值为0,就是因为0是一个肯定不对的值(secret范围1到10),所以你可以赋初值为其他的值,比如一个负数,或者大于10 的数

第二个问题
print有个end参数是控制输出结尾字符的,默认值为'\n',即回车,这里设定end参数,就是为了让这个print输出不换行

wuqramy 发表于 2020-4-21 09:37:06

1.guess = 0是初始化guess变量,只要把guess赋值给一个肯定不是答案的变量即可
2.end = ' '是为了它打印完"再试一次吧:"后不换行(默认end = '\n')

heidern0612 发表于 2020-4-21 09:38:43

1、python表示你得先让我知道guess是个啥或者是个类型,我下面才好判断。

2、end表示当前输出结果不换行,其实就是为了美观,换行不换行没啥区别。

老八秘制 发表于 2020-4-21 09:39:37

1.guess = 0是为了初始化guess,因为secret不会是0
2.为了在下一次打印时不换行

liuzhengyuan 发表于 2020-4-21 09:51:19

本帖最后由 liuzhengyuan 于 2020-4-21 09:52 编辑

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

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

原本是
再试一次把:5

wening 发表于 2020-4-21 15:45:42

guess = 0 定义一个数赋初值为0 相当于之后用户输入的数 和secret = random.randint(1,10)这个函数产生的随机数比较
end为了在下一次打印时不换行

雨留下的印记 发表于 2020-4-22 15:26:48

guess = 0,是为了让程序进入while循环,guess也不一定要赋值0,因为secret为1~9,你可以赋值guess除了1~9外的任何数。
print是默认换行的,加上end = ‘’就不换行了,相当于把纵向输入,变为横向的了
页: [1]
查看完整版本: 求助04改进我们的小游戏课后习题