鱼C论坛

 找回密码
 立即注册
查看: 959|回复: 6

[已解决]怎样解决这个错误

[复制链接]
发表于 2020-4-13 22:11:50 | 显示全部楼层 |阅读模式

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

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

x
import easygui
import random
secret=random.randint(1,10)
sore=3
print ('------------I love you !-----------')
def func1(guess):
    if (guess==secret):
        easygui.msgbox ('我操,居然猜对')
        easygui.msgbox ('不过猜对也没有奖,哈哈')
        
    else:
        if(guess>secret):
            easygui.msgbox ("哥,大了大了~~!")
        else:
            easygui.msgbox("嘿,小了小了~~!!")

def func2():
    temp=easygui.enterbox('请录入你猜到的数字:')
    while temp.isdigit()!=1:
        temp=easygui.enterbox ('请输入整数数字:')
    guess=int(temp)
    func1(temp)

            
while sore>1:
    func2()
    sore-=1
   
easygui.msgbox('游戏结束!')
最佳答案
2020-4-13 22:22:13
你这个问题很简单  secret = random.randint(1, 10)中是一个int类型的 而你传给他的guess  是一个字符串 str和int不能进行判断 类型都不一样

你原本是这样的func1(temp)这个传进去是一个字符串 我改成了func1(int(temp)) 就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 22:14:19 | 显示全部楼层
错误呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 22:15:49 | 显示全部楼层

Traceback (most recent call last):
  File "E:/A/python/Exercise/easygui 4-13.py", line 26, in <module>
    func2()
  File "E:/A/python/Exercise/easygui 4-13.py", line 22, in func2
    func1(temp)
  File "E:/A/python/Exercise/easygui 4-13.py", line 12, in func1
    if(guess>secret):
TypeError: '>' not supported between instances of 'str' and 'int'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 22:20:48 | 显示全部楼层
import easygui
import random

secret = random.randint(1, 10)
sore = 3
print('------------I love you !-----------')


def func1(guess):
    if (guess == secret):
        easygui.msgbox('我操,居然猜对')
        easygui.msgbox('不过猜对也没有奖,哈哈')

    else:
        if (guess > secret):
            easygui.msgbox("哥,大了大了~~!")
        else:
            easygui.msgbox("嘿,小了小了~~!!")


def func2():
    temp = easygui.enterbox('请录入你猜到的数字:')
    while temp.isdigit() != 1:
        temp = easygui.enterbox('请输入整数数字:')
    guess = int(temp)
    func1(int(temp))


while sore > 1:
    func2()
    sore -= 1

easygui.msgbox('游戏结束!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 22:22:13 | 显示全部楼层    本楼为最佳答案   
你这个问题很简单  secret = random.randint(1, 10)中是一个int类型的 而你传给他的guess  是一个字符串 str和int不能进行判断 类型都不一样

你原本是这样的func1(temp)这个传进去是一个字符串 我改成了func1(int(temp)) 就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 22:30:07 | 显示全部楼层
import easygui,os
import random
secret=random.randint(1,1)
sore=3
print ('------------I love you !-----------')
def func1(guess):
    if (guess==secret):
        easygui.msgbox ('我操,居然猜对')
        easygui.msgbox ('不过猜对也没有奖,哈哈')
        easygui.msgbox('游戏结束!')
        os._exit(0)
            
    else:
        if(guess>secret):
            easygui.msgbox ("哥,大了大了~~!")
        else:
            easygui.msgbox("嘿,小了小了~~!!")

def func2():
    temp=easygui.enterbox('请录入你猜到的数字:')
    while temp.isdigit()!=1:
        temp=easygui.enterbox ('请输入整数数字:')
    guess=int(temp)
    func1(guess)

            
while sore>0:
    func2()
    sore-=1
   
easygui.msgbox('游戏结束!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 22:31:13 | 显示全部楼层
admintest166 发表于 2020-4-13 22:22
你这个问题很简单  secret = random.randint(1, 10)中是一个int类型的 而你传给他的guess  是一个字符串 st ...

谢谢,改为 func1(guess)就好了,忘了改变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 10:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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