鱼C论坛

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

[已解决][课后作业] 第004讲:改进我们的小游戏习题有几个地方搞不懂。

[复制链接]
发表于 2020-11-16 14:37:35 | 显示全部楼层 |阅读模式

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

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

x
遇到了两个问题,搜索未果,自己琢磨很久,脑子转不过来,实在理解不了,求助!!!

import random
times = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
# 这里先给guess赋值(赋一个绝对不等于secret的值)
guess = 0   
# print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行
# 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"?
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ") (①这个地方打印的应该只是“不妨猜一下小甲鱼现在心里想的是哪个数字:”这句话,为什么运行的时候是对应的输入值?end=""在这里是为了不换行把下面的print()连在一起?搞不懂。)
while (guess != secret) and (times > 0):
    temp = input()(②这个地方input输入的值是空的,怎么和上面的print()的内容联系的?)
    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("游戏结束,不玩啦^_^")
最佳答案
2020-11-16 15:15:39


print 中有一个默认参数,end ,默认值为 "\n",表示换行符

当没有人为为end参数赋值时,就会默认 end = "\n"

print 函数就在打印完填入的参数后,追加打印一个 end 参数的值,所以这也是print为什么会自动换行的原因

而 input 函数也会将填入的字符串参数打印出来,且不换行

当print 函数的 end 参数被赋值为 " " 时,则 print 函数打印出字符串后追加打印 end 就不会换行

代码执行到 input() 时 ,因为input函数没填入参数,则不打印字符

所以看上去就像是input函数打印出的结果,实际上是上一个代码 print 函数不换行的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-16 15:15:39 From FishC Mobile | 显示全部楼层    本楼为最佳答案   


print 中有一个默认参数,end ,默认值为 "\n",表示换行符

当没有人为为end参数赋值时,就会默认 end = "\n"

print 函数就在打印完填入的参数后,追加打印一个 end 参数的值,所以这也是print为什么会自动换行的原因

而 input 函数也会将填入的字符串参数打印出来,且不换行

当print 函数的 end 参数被赋值为 " " 时,则 print 函数打印出字符串后追加打印 end 就不会换行

代码执行到 input() 时 ,因为input函数没填入参数,则不打印字符

所以看上去就像是input函数打印出的结果,实际上是上一个代码 print 函数不换行的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-16 16:17:14 | 显示全部楼层
import random
guess = random.randint(1,10)
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
temp = input()
number = int(temp)
if number!=guess:
    print("You are wrong")
else:
    print("You are right")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-16 16:29:02 | 显示全部楼层
Twilight6 发表于 2020-11-16 15:15
print 中有一个默认参数,end ,默认值为 "\n",表示换行符

当没有人为为end参数赋值时,就会默认 e ...

print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times > 0):
    temp = input()

就是说,单独提取出来,while循环在上述中,print()和input()之间不会影响打印,还是可以看成
print('aa', end='')
temp = input('bb')

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

使用道具 举报

发表于 2020-11-16 16:31:15 From FishC Mobile | 显示全部楼层
云归 发表于 2020-11-16 16:29
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times >  ...



对的,不会影响,除非你没有进入循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-16 16:55:47 | 显示全部楼层
Twilight6 发表于 2020-11-16 16:31
对的,不会影响,除非你没有进入循环

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

使用道具 举报

 楼主| 发表于 2020-11-16 16:56:29 | 显示全部楼层
ZBN 发表于 2020-11-16 16:17
import random
guess = random.randint(1,10)
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ...

谢谢,已经弄清楚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-17 18:07:56 | 显示全部楼层
ok
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-10 21:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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