楠枫. 发表于 2022-2-15 08:30:41

第五行代码,为什么要先给guess赋值啊,

第五行代码,为什么要先给guess赋值啊,还有第七行”end=" "参数告诉print()用空格代替换行“这个有点没看懂啊



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("游戏结束,不玩啦^_^")

大马强 发表于 2022-2-15 08:50:51

1、
while (guess != secret) and (times > 0):
变量要引用首先要进行声明定义,所以要在这句前将 guess 变量和secret变量声明好
2、print函数的原型是
print(*values, sep=' ', end='\n')
它的终止符默认参数end为\n,所以连续执行两个print它们都不会在一行,所以直接print() 可以起到换行作用

isdkz 发表于 2022-2-15 08:52:30

本帖最后由 isdkz 于 2022-2-15 08:55 编辑

第一个问题:
之所以要先给guess值,是因为while循环那里用到了guess作为判断条件,如果guess在这之前没有赋值的话,这时guess就还没有定义,会报NameError的错误

第二个问题:
print打印后都会默认换行,就是因为它的end的参数的默认值为'\n',它会给打印的字符串末尾加上换行,
而你给它赋值就会替换掉默认值,end=" ",就是用空格替换掉了原来的默认值'\n'

xxx鱼xxx 发表于 2022-2-16 10:24:23

{:10_250:}消化下
页: [1]
查看完整版本: 第五行代码,为什么要先给guess赋值啊,