鱼C论坛

 找回密码
 立即注册
查看: 1693|回复: 4

对于Python第五讲课后作业

[复制链接]
发表于 2019-10-14 14:05:11 | 显示全部楼层 |阅读模式

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

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

x
《零基础学习Python》中,第五讲课后作业, 改变猜数字游戏中,可能用户输入问题不是数字类型字符串:
import random
times = 3
secert = random.randint(1,10)
print('---------------猜数字---------------')
print('不妨猜一下小甲鱼现在心里想的是那个数:',end = ‘ ’)  # 这个操作是否多余,不带这个操作,也可以正常运行。去掉这个end = ‘’ 然后程序会自动下一步。 不太懂这个程序的运行。望大神解释下。谢谢!!!!
guess = 0  # 这里面这个guess为什么会赋值为0,我尝试赋值别的,这个也可以正常运行。但是不带这个guess赋值,就会报错,说这个guess没有进行赋值,那个大神来给解释下,这个什么原因。
while (guess != secert) and (times):
    temp = input('请输入:')
    while not temp.isdigit():
        temp = input('输入有误,请输入整数:')
    guess = int(temp)
    times -= 1

    if guess == secert:
        print('猜对啦')
        print('猜对也没有奖励')
    else:
        print('猜错啦')
        if guess > secert:
            print('大了,大了')
        else:
            print('小了,小了')



print('不玩啦,游戏结束~')
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-10-14 14:34:37 | 显示全部楼层
  1. import random
  2. times = 3                                                  # 可以尝试 3 次
  3. secert = random . randint(1 , 10)                          # 在 1 ~ 10 的范围内产生一个随机数,记录在变量 secert 中
  4. print('---------------猜数字---------------')              # 打印提示信息而已,不重要,不必理会。
  5. print('不妨猜一下小甲鱼现在心里想的是那个数:',end = '')  # 打印提示内容而已,不重要,不必理会。
  6. guess = 0                                                  # guess 赋值 0,有两个意义,第一,后面 while 语句要用这个变量,所以,必须先赋值;
  7.                                                            # 赋值为 0 是为了避免与 secert 的值相同,以便可以进入 while 循环
  8. while (guess != secert) and (times):                       # 只要 guess 与 secert 不相等,同时,times 不为 0 就进入(或继续)循环
  9.     temp = input('请输入:')                                   # 从键盘读取字符串,保存到 temp 中
  10.     while not temp.isdigit():                                  # 如果 temp 内容不是纯数字就循环
  11.         temp = input('输入有误,请输入整数:')                      # 再次读取键盘输入
  12.     guess = int(temp)                                          # 从 temp 中提取整数,存入 guess
  13.     times -= 1                                                 # 剩余输入次数减 1

  14.     if guess == secert:                                        # 如果键盘输入与 secert 数值相同
  15.         print('猜对啦')                                            # 显示信息1
  16.         print('猜对也没有奖励')                                    # 显示信息2
  17.     else:                                                      # 否则
  18.         print('猜错啦')                                            # 显示信息1
  19.         if guess > secert:                                         # 如果 guess 大于 secert
  20.             print('大了,大了')                                        # 显示信息2                           
  21.         else:                                                      # 否则
  22.             print('小了,小了')                                        # 显示信息2

  23. print('不玩啦,游戏结束~')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-14 15:05:39 | 显示全部楼层
end = ''是print语句如何结尾的设置,默认是\n也就是换行,当你没有自行设置end =多少时会采用默认值,这里改成了空字符串会使得print之后下一次print紧跟着输出。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-14 16:45:05 | 显示全部楼层
1、这个操作是多余的,不过主要是为了用户体验,你也不希望自己做个程序出来,只有猜数字,后面啥解释都没有吧?

2、python要求变量首先声明了之后,才能使用。你不事先声明guess是什么,python怎么能知道guess是个变量,还是字符串还是个数值呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-14 20:02:54 | 显示全部楼层
1. end='' 可加可不加,加了 print 语句就不会以换行结尾。
2. guess = 0 是先初始化 guess 变量,给它赋一个不是 1 ~ 10 的数字,为了是顺利进入下面的 while 循环(while (guess != secert) and (times):)。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-20 00:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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