鱼C论坛

 找回密码
 立即注册
查看: 2479|回复: 10

急!急!急!求各路大神指教

[复制链接]
发表于 2017-2-10 11:19:55 | 显示全部楼层 |阅读模式

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

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

x
  1. import random
  2. temp = input("请输入数字:")
  3. guess = temp
  4. i = 3
  5. secress = random.randint(1,1)
  6. while i:
  7.     if isinstance(guess,int):
  8.         if guess == secress:
  9.             print("正确")
  10.             break
  11.         else:
  12.             if guess < secress:
  13.                 print("小了,你还有",i - 1,"次机会")
  14.                 if i-1 != 0:
  15.                     temp = input("请重新输入:")
  16.                     guess = temp
  17.             else:
  18.                 print("大了,你还有",i - 1,"次机会")
  19.                 if i-1 != 0:
  20.                     temp = input("请重新输入:")
  21.                     guess = temp
  22.     else:
  23.         temp = input("请输入一个整数:")
  24.         guess = temp
  25.     i = i-1
  26. print("游戏结束")
复制代码

                今天看了小甲鱼老师的从零基础入门学习Python,尝试做了对前几章的小游戏进行了修改,不知道以上程序哪里有问题,总是不能按照要求运行,希望各位大神帮小弟指出问题并进行一下修改,小弟不胜感激’
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-10 11:55:37 | 显示全部楼层
将你的代码中所有的guess = temp改成guess = int(temp)试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-10 14:45:03 | 显示全部楼层
你对是不是数字的那个判断有问题,另外你这个secress = random.randint(1,1),这样还需要猜么,每次都是1咯
  1. import random
  2. temp = input("请输入数字:")
  3. guess = temp
  4. i = 3
  5. secress = random.randint(1,1)
  6. while i:
  7.     if guess.isdigit():
  8.         guess=int(guess)
  9.         if guess == secress:
  10.             print("正确")
  11.             break
  12.         else:
  13.             if guess < secress:
  14.                 print("小了,你还有",i - 1,"次机会")
  15.                 if i-1 != 0:
  16.                     temp = input("请重新输入:")
  17.                     guess = temp
  18.             else:
  19.                 print("大了,你还有",i - 1,"次机会")
  20.                 if i-1 != 0:
  21.                     temp = input("请重新输入:")
  22.                     guess = temp
  23.     else:
  24.         temp = input("请输入一个整数:")
  25.         guess = temp
  26.     i = i-1
  27. print("游戏结束")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-10 15:17:13 | 显示全部楼层
secress = random.randint(1,1)这样写的话只有1,这样基本你除了输0都是比要猜的数字大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-10 15:42:30 | 显示全部楼层
32269100 发表于 2017-2-10 15:37
他是暂时故意这样设置的,这个是半成品,他遇到的问题并不是随机数字的设置。他只是没发现input输入的内 ...

# -*- coding: UTF-8 -*-
import random
temp = input("Please input number:")
guess = temp
i = 3
secress = random.randint(1,10)
while i:
    if isinstance(guess,int):
        if guess == secress:
            print("Correct")
            break
        else:
            if guess < secress:
                print("Less,you have ",i - 1,"chances")
                if i-1 != 0:
                    temp = input("Please input number:")
                    guess = temp
            else:
                print("Bigger,you have",i - 1,"chances")
                if i-1 != 0:
                    temp = input("Please input number:")
                    guess = temp
    else:
        temp = input("Please input number:")
        guess = temp
    i = i-1
print("Game over")

我这边用python2的环境编的,这样是可以的,并不会你说的input获取的是字符串的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-10 16:03:12 | 显示全部楼层
32269100 发表于 2017-2-10 15:48
小甲鱼提倡大家使用3系列的python,旧版的话,未来会遇到很多不兼容的问题,已经不提倡使用了。

但是现在主流还是python2,很多开发还没有应用到python3
如果按你那么说,input要输入数字都要进行转换后在进行判断,那就根本不需要判断数据类型了,目前还在学习python2,不是很清楚python3这一块是怎么处理的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-10 16:21:57 | 显示全部楼层
第3行你就错了,input返回的是字符串,字符串不一定能做比较运算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-10 17:33:49 | 显示全部楼层
32269100 发表于 2017-2-10 15:34
首先你遇到的第一个问题应该是永远进入“请输入一个整数”的选项中
原因是input输入的内容,默认为字符串 ...

我加群,加群密码多少啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-10 17:58:42 | 显示全部楼层
32269100 发表于 2017-2-10 15:34
首先你遇到的第一个问题应该是永远进入“请输入一个整数”的选项中
原因是input输入的内容,默认为字符串 ...

  1. import random
  2. print("请输入数字:")
  3. temp = input()
  4. guess = temp
  5. i = 3
  6. secress = random.randint(1,1)
  7. while i:
  8.     if isinstance(guess,int):
  9.         if int(guess) == secress:
  10.             print("正确")
  11.             break
  12.         else:
  13.             if int(guess) < secress:
  14.                 print("小了,你还有",i - 1,"次机会")
  15.                 if i-1 != 0:
  16.                     print("请重新输入:")
  17.                     temp = input()
  18.                     guess = temp
  19.             else:
  20.                 print("大了,你还有",i - 1,"次机会")
  21.                 if i-1 != 0:
  22.                     print("请重新输入:")
  23.                     temp = input()
  24.                     guess = temp
  25.     else:
  26.         print("请输入一个整数:")
  27.         temp = input()
  28.         guess = temp
  29.     i = i-1
  30. print("游戏结束")
复制代码

如果这样呢,为什么还是不行呢?我input()里面什么也没有,没有字符串,为啥还是不可以呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-10 18:02:02 | 显示全部楼层
余欲渔 发表于 2017-2-10 14:45
你对是不是数字的那个判断有问题,另外你这个secress = random.randint(1,1),这样还需要猜么,每次都是1咯 ...
  1. import random
  2. print("请输入数字:")
  3. temp = input()
  4. guess = temp
  5. i = 3
  6. secress = random.randint(1,1)
  7. while i:
  8.     if isinstance(guess,int):
  9.         if int(guess) == secress:
  10.             print("正确")
  11.             break
  12.         else:
  13.             if int(guess) < secress:
  14.                 print("小了,你还有",i - 1,"次机会")
  15.                 if i-1 != 0:
  16.                     print("请重新输入:")
  17.                     temp = input()
  18.                     guess = temp
  19.             else:
  20.                 print("大了,你还有",i - 1,"次机会")
  21.                 if i-1 != 0:
  22.                     print("请重新输入:")
  23.                     temp = input()
  24.                     guess = temp
  25.     else:
  26.         print("请输入一个整数:")
  27.         temp = input()
  28.         guess = temp
  29.     i = i-1
  30. print("游戏结束")
复制代码

谢谢大神的指点,你的代码我看懂了,也明白了我的问题,因为我一开始input(“”请输入一个数字“”)始终会传入一个字符串,这次我把input()里面什么也没有,为什么还是会出现那样的错误呢?求大神指点一下,小弟不胜感激
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-13 09:21:52 | 显示全部楼层
Engou 发表于 2017-2-10 18:02
谢谢大神的指点,你的代码我看懂了,也明白了我的问题,因为我一开始input(“”请输入一个数字“”) ...


在Python3中input可能默认返回的就是字符串吧!并没有自动转换成整形!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-28 00:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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