鱼C论坛

 找回密码
 立即注册
查看: 1267|回复: 14

[已解决]哪个大佬能帮我解决一下这个问题吗谢谢

[复制链接]
发表于 2019-1-30 00:15:17 | 显示全部楼层 |阅读模式

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

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

x
我输入的是8  那个isinstance(temp,int)为True     应该执行if里面的语句   可为什么运行结果是执行else

源代码
import random
times=3
secret=random.randint(1,10)
print('我爱鱼C工作室')
guess=0
print('猜一下我心中想的数字:',end=" ")
while (guess!=secret)and (times>0):
    temp=input('')
    if isinstance(temp,int):
        guess=int(temp)
        times=times-1
        if guess==secret:

            print("猜中了")
            print("没有奖励")
        else:
            if guess>secret:
                   print('猜大了')
            else:
                   print('猜小了')
            if times>0:
                   print('再试一遍把:',end=' ')
            else:   
                   print('机会用完了')
    else:
        print("输入不合法,重新输入")
print("游戏结束不玩了")



运行结果
我爱鱼C工作室
猜一下我心中想的数字: 8
输入不合法,重新输入

最佳答案
2019-1-30 00:25:18
本帖最后由 xy123151 于 2019-1-30 00:26 编辑

你如果想先进行判断合法,应该用try语句
或者用if temp.isdigit():
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-30 00:23:46 | 显示全部楼层
你输入的是'8',不是8,所以if isinstance(temp,int):永远是False
temp=int(input(' '))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 00:25:18 | 显示全部楼层    本楼为最佳答案   
本帖最后由 xy123151 于 2019-1-30 00:26 编辑

你如果想先进行判断合法,应该用try语句
或者用if temp.isdigit():
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 00:27:59 | 显示全部楼层
xy123151 发表于 2019-1-30 00:25
你如果想先进行判断合法,应该用try语句
或者用if temp.isdigit():

这个阶段还没讲try捕捉异常
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 00:28:53 | 显示全部楼层
虚无→与→飘渺 发表于 2019-1-30 00:27
这个阶段还没讲try捕捉异常

不一定要按顺序学啊,人家说试试try,我肯定会跳课先去找找try是干嘛的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-30 00:34:59 | 显示全部楼层
xy123151 发表于 2019-1-30 00:23
你输入的是'8',不是8,所以if isinstance(temp,int):永远是False
temp=int(input(' '))

可是我输入的是8啊  int型啊   怎么到你这里就变成了str型   能讲讲吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 00:40:29 | 显示全部楼层
aoilting 发表于 2019-1-30 00:34
可是我输入的是8啊  int型啊   怎么到你这里就变成了str型   能讲讲吗

input()接收到的全部东西都是str
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-1-30 00:45:06 | 显示全部楼层
xy123151 发表于 2019-1-30 00:40
input()接收到的全部东西都是str

用你的意思是说我把temp=input('')改成temp=int(input(' '))  就行了吗。这个语句是用int获取input中的数字是吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 00:46:03 | 显示全部楼层
input()接收到的全部东西都是str,需要用int转整型数据
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-1-30 00:46:38 | 显示全部楼层
aoilting 发表于 2019-1-30 00:45
用你的意思是说我把temp=input('')改成temp=int(input(' '))  就行了吗。这个语句是用int获取input中的数 ...

然而这样你又违背了你的另外一个思路
你都int()它了,你何必再isinstance
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-30 00:49:54 | 显示全部楼层
xy123151 发表于 2019-1-30 00:46
然而这样你又违背了你的另外一个思路
你都int()它了,你何必再isinstance

好的,谢谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-30 00:51:20 | 显示全部楼层
aoilting 发表于 2019-1-30 00:34
可是我输入的是8啊  int型啊   怎么到你这里就变成了str型   能讲讲吗


不吊你胃口了,给你答案吧
  1. temp=input('')
  2. try: #try的方法
  3.     temp=int(temp)
  4.     print(temp)
  5. except:
  6.     print('没办法进行try里的内容哦')
复制代码
  1. temp=input('')
  2. if temp.isdigit(): #对字符串用isdigit()方法,判断是否由纯数字字符组成
  3.     print(int(temp))
  4. else:
  5.     print('输入的不是纯数字,isdigit结果是False')
复制代码

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

使用道具 举报

 楼主| 发表于 2019-1-30 00:55:50 | 显示全部楼层
xy123151 发表于 2019-1-30 00:51
不吊你胃口了,给你答案吧

大佬能帮忙看一下这个问题吗
>>> temp=5
>>> temp.isdigit()
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    temp.isdigit()
AttributeError: 'int' object has no attribute 'isdigit'
>>>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-30 01:00:02 | 显示全部楼层
aoilting 发表于 2019-1-30 00:55
大佬能帮忙看一下这个问题吗
>>> temp=5
>>> temp.isdigit()

我知道了   temp要是字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-30 01:14:21 | 显示全部楼层
Stubborn 发表于 2019-1-30 00:46
input()接收到的全部东西都是str,需要用int转整型数据

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-2 03:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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