鱼C论坛

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

005课后作业

[复制链接]
发表于 2020-1-13 14:01:59 | 显示全部楼层 |阅读模式

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

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

x
import random
secret = random.randint(1,10)
times = 3
guess = 11
print('你能猜到小甲鱼心里想的一个数字么:', end = '')
while not isinstance(guess, int):
    guess = input()
    print('输入非法字符', end = '')
    guess = input('请输入一个整数:')
while guess != secret and times:
    guess = input('')
    times = times - 1
    if guess == secret:
        print('恭喜你 答对了!!!')
    elif guess > secret:
        print('大了 大了')
    else:
        print('小了 小了')
    if times > 0:
            print('你还有机会哟', end = '')
    else:
            print('机会用完啦')
print('游戏结束')

大神能帮忙看下这段有什么问题么   报错了 但是我怎么都找不到错在哪里了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-13 14:24:01 | 显示全部楼层
本帖最后由 sunrise085 于 2020-1-13 14:34 编辑

报错是因为你的程序中input的值直接赋值给了guess,而input的返回值是字符串str不是整型int,所以在第16行 guess>secret 就出错了。

  1. import random
  2. secret = random.randint (1,10)
  3. print("不妨猜一下我心里想的是哪个数字,给你三次机会。")
  4. guess = 0
  5. for i in range(3):
  6.     print ('第',i+1,'次:', end= '')
  7.     temp=input()
  8.     while not temp.isdecimal():
  9.         print("抱歉,输入不合法,", end='')
  10.         temp = input("请输入一个整数:")
  11.     guess = int(temp)
  12.     if guess == secret:
  13.         print("哇草,你是小甲鱼心里的蛔虫吗?")
  14.         print ('哼,猜中了也没有奖励!')
  15.         break
  16.     else:
  17.         if guess > secret:
  18.             print ('哥,大了大了!')
  19.         else:
  20.             print("嘿,小了!小了!")
  21. else:
  22.     print ('3次都没猜对!')

  23. print("游戏结束,不玩啦!")
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-13 18:09:05 | 显示全部楼层
代码有许多错误,帮你重写了:

  1. import random

  2. secret = random.randint(1, 10)
  3. times = 3
  4. print('你能猜到小甲鱼心里想的一个数字么:', end='')
  5. guess = input()

  6. while not guess.isdigit():
  7.     print('输入了非法字符,', end='')
  8.     guess = input('请输入一个整数:')

  9. guess = int(guess)

  10. while guess != secret and times:
  11.     times = times - 1
  12.     if guess == secret:
  13.         print('恭喜你 答对了!!!')
  14.     elif guess > secret:
  15.         print('大了 大了')
  16.     else:
  17.         print('小了 小了')
  18.     if times > 0:
  19.         print('你还有机会哟', end='')
  20.     else:
  21.         print('机会用完啦')
  22.         break
  23.     guess = int(input(''))
  24. print('游戏结束')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-21 08:37:04 | 显示全部楼层
Hi, 我对你的代码理解如下,请看注释里的内容:
  1. import random
  2. secret = random.randint(1,10)
  3. times = 3
  4. guess = 11
  5. print('你能猜到小甲鱼心里想的一个数字么:', end = '')
  6. while not isinstance(guess, int): #因为第4行语句,所以isinstance(guess, int)为True,前面加not为False, 那么7-9行代码的循环永远不会执行
  7.     guess = input()
  8.     print('输入非法字符', end = '')
  9.     guess = input('请输入一个整数:')
  10. while guess != secret and times:
  11.     guess = input('')
  12.     times = times - 1
  13.     if guess == secret: # ==左侧的数据类型是字符串,右侧是整型
  14.         print('恭喜你 答对了!!!')
  15.     elif guess > secret:
  16.         print('大了 大了')
  17.     else:
  18.         print('小了 小了')
  19.     if times > 0:
  20.             print('你还有机会哟', end = '')
  21.     else:
  22.             print('机会用完啦')
  23. print('游戏结束')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 11:23:32 | 显示全部楼层
input输入的默认是字符串,除非你用secret = int(secret)转换成整形
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 15:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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