鱼C论坛

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

[已解决]第五课课后练习问题

[复制链接]
发表于 2017-12-17 18:21:41 | 显示全部楼层 |阅读模式

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

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

x
课后联系改进这个文字游戏,这样写为什么程序为什么过不去呢?
奇了怪了,麻烦给大家 给看看!~

  1. import random
  2. print('小游戏!')
  3. secret = random.randint(1,10)
  4. count = 0
  5. guess = int(input('请输入一个数字:'))
  6. if guess > secret:
  7.     print('大了!')
  8. else:
  9.     print('小了!')
  10. while guess != secret and count < 3:
  11.     if guess.isdigit():
  12.         if guess == secret:
  13.             print('yes!')
  14.         elif guess > secret:
  15.             print('大了!')
  16.         else:
  17.             print('小了!')
  18.         if count > 1:
  19.             print('请再试一次吧!')
  20.         else:
  21.             print('机会用完了,游戏推出!')
  22.     else:
  23.         print('请输入一个整数:',end='')
  24.         input()
  25.     count+=1
复制代码
最佳答案
2017-12-18 00:22:04
不太明白第一个if else语句有什么用(感觉可以删掉)
if isinstance(guess,int):这个也可以删掉(因为之前已经强制转化为整形了,再判断没意义
while判断语句也有问题(只有当guess!=secert的时候才会执行循环,那么下面的那个if guess == secret:就不可能实现了)
这是给你改的代码,你自己看看,有不懂的再一起交流(我也才刚刚入门不久一起学习哈)
import random
print('小游戏!')
secret = random.randint(1,10)
secret=1
count = 0
guess = int(input('请输入一个数字:'))
while guess != secret and count < 3:
        if guess == secret:
            print('yes!')
        elif guess > secret:
            print('大了!')
        else:
            print('小了!')
        if count >= 0 and count < 2:
            print('请再试一次吧!')
            print('请输入一个整数:',end='')
            guess=int(input())
            count+=1
        else:
            print('机会用完了,游戏退出!')
            break
if guess == secret:
    print("yes!")

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-17 18:31:11 | 显示全部楼层
你的 guess 前面已经定义为整型了, 下面有调用 isdigit()方法,这个方法是字符串类的,不是整型类的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-17 18:50:56 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-17 18:31
你的 guess 前面已经定义为整型了, 下面有调用 isdigit()方法,这个方法是字符串类的,不是整型类的。

我改成isinstance()也不行啊!~
  1. #!/usr/bin/python3.6
  2. import random
  3. print('小游戏!')
  4. secret = random.randint(1,10)
  5. count = 0
  6. guess = int(input('请输入一个数字:'))
  7. if guess > secret:
  8.     print('大了!')
  9. else:
  10.     print('小了!')
  11. while guess != secret and count < 3:
  12.     if isinstance(guess,int):
  13.         if guess == secret:
  14.             print('yes!')
  15.         elif guess > secret:
  16.             print('大了!')
  17.         else:
  18.             print('小了!')
  19.         if count > 1:
  20.             print('请再试一次吧!')
  21.         else:
  22.             print('机会用完了,游戏推出!')
  23.     else:
  24.         print('请输入一个整数:',end='')
  25.         input()
  26.     count+=1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-17 18:56:52 | 显示全部楼层
aozhenlh 发表于 2017-12-17 18:50
我改成isinstance()也不行啊!~

可以运行啊,只是你的代码没写对,所以输出不对而已。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-17 20:12:43 From FishC Mobile | 显示全部楼层
while循环中的input语句缩进不对
判断对了也没有break跳出循环语句
而且input的返回值应该用一个变量存放并通过int强制转换赋值给guess
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-17 21:19:28 | 显示全部楼层
最上面的那个if和else有问题,大于的else是小于等于。我建议在调代码的时候,把答案写成固定值,用isdigit(),把输入分成两步。先用tmp=input() 再用tmp.isdigit()判断输入的是否全部是数字。如果不是(比如字母、浮点数),让用户重新输入;如果是全部是数字,那再用guess=int(tmp) ,希望对你有帮助。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-18 00:22:04 | 显示全部楼层    本楼为最佳答案   
不太明白第一个if else语句有什么用(感觉可以删掉)
if isinstance(guess,int):这个也可以删掉(因为之前已经强制转化为整形了,再判断没意义
while判断语句也有问题(只有当guess!=secert的时候才会执行循环,那么下面的那个if guess == secret:就不可能实现了)
这是给你改的代码,你自己看看,有不懂的再一起交流(我也才刚刚入门不久一起学习哈)
import random
print('小游戏!')
secret = random.randint(1,10)
secret=1
count = 0
guess = int(input('请输入一个数字:'))
while guess != secret and count < 3:
        if guess == secret:
            print('yes!')
        elif guess > secret:
            print('大了!')
        else:
            print('小了!')
        if count >= 0 and count < 2:
            print('请再试一次吧!')
            print('请输入一个整数:',end='')
            guess=int(input())
            count+=1
        else:
            print('机会用完了,游戏退出!')
            break
if guess == secret:
    print("yes!")

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

使用道具 举报

 楼主| 发表于 2017-12-18 08:32:25 | 显示全部楼层
659525 发表于 2017-12-18 00:22
不太明白第一个if else语句有什么用(感觉可以删掉)
if isinstance(guess,int):这个也可以删掉(因为之 ...

谢谢,我的代码是在原来的代码基础上改的,条件忘了改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 08:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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