Python 显式基整数转换错误

Python 显式基整数转换错误,python,typeerror,Python,Typeerror,我只是花了最后一个小时制作你在你下面看到的东西。这是我第一次真正运用头脑中的东西。我在网上看到的关于这个问题的一切我都没有真正理解,因为我真的不知道发生了什么。我有点跳过了很多基本的东西,但我感觉我做功能生意做错了。有人能解释一下我的代码哪里出错了吗 代码: 随机导入 uname=input(“怎么了!你的用户名是什么?”) 打印(“Hiya”+uname+“.Cool name;”) 全局猜测循环 def game(): 问题=无 无效的\u输入=错误 问题=输入(“你想玩我的史诗级猜谜游戏吗

我只是花了最后一个小时制作你在你下面看到的东西。这是我第一次真正运用头脑中的东西。我在网上看到的关于这个问题的一切我都没有真正理解,因为我真的不知道发生了什么。我有点跳过了很多基本的东西,但我感觉我做功能生意做错了。有人能解释一下我的代码哪里出错了吗

代码:

随机导入
uname=input(“怎么了!你的用户名是什么?”)
打印(“Hiya”+uname+“.Cool name;”)
全局猜测循环
def game():
问题=无
无效的\u输入=错误
问题=输入(“你想玩我的史诗级猜谜游戏吗?”[Y/N])
如果有问题!=“Y”或“N”:
无效的_输入:bool=True
如果问题==“N”:
打印(“好吧,那我反正也不想和你玩了!”)
如果问题==“Y”:
猜一猜
如果无效_输入==真:
打印(“哎呀,好像您输入了一个无效字符。请用大写字母“Y”或“N”回答”)
问题=无
游戏()
全球尝试
def guess_loop():
全局猜测循环
随机数=random.randint(1,10)
无效的\u输入2=真
guess=int(输入(“太棒了,让我们玩吧!我选了一个介于1和10之间的数字。试着猜一下!”)
如果guess不是int(1,11):
无效的\u输入2=真
如果猜测>随机数:
尝试次数+=1
int(输入(“太低!猜得更高!”+f“这是您的第{trys}次尝试!”)
猜一猜
如果猜测>随机数:
尝试次数+=1
int(输入(“太高!猜得更低!”+f“这是您的第{trys}次尝试!”)
猜一猜
如果猜测==随机数:
new_game=input(f“恭喜{uname}你赢了!你想再玩一次吗?[Y/N]”)
如果是新游戏!=“Y”或“N”:
无效的_输入:bool=True
如果新游戏==“N”:
打印(“好吧,那我反正也不想和你玩了!”)
如果新游戏==“Y”:
猜一猜
当无效的_输入==True时:
打印(“哎呀,好像您输入了一个无效字符。请用大写字母“Y”或“N”回答”)
猜一猜
当无效_input2==True时:
打印(“哎呀,你好像输入了一个无效字符。请用1到10之间的数字回答”)
猜一猜
游戏()
输出:

怎么了!你的用户名是什么?R33 你好,R33。酷名字;) 你想玩我的史诗般的猜谜游戏吗???[Y/N]Y 太棒了,让我们玩吧!我在一和十之间选了一个数字。试着猜猜看!1. 回溯(最近一次呼叫最后一次): 文件“88888”,第58行,在 游戏() 文件“88888”,第18行,在游戏中 猜一猜 文件“88888”,第32行,在guess_循环中 如果guess不是int(1,11): TypeError:int()无法转换具有显式基的非字符串
int()
函数不会按预期的方式重新运行列表。您可能希望将
if guess not int(1,11)
更改为
if guess not in range(1,11)
,这将返回一个迭代器,并实际检查
guess
是否不在此范围内

我跳过了很多基本的东西

这是你的问题。你真的应该放慢速度,先用一个好的在线教程来理解基础知识

错误

int()无法转换具有显式基的非字符串

告诉您,当使用两个参数调用
int()
函数时,第一个参数是字符串,第二个参数是给出基的整数

您可能想检查
guess
是否在1到10之间,为此您需要执行以下操作:

if 1 <= guess <= 10:

int(1,11)
不是
int
函数的有效使用。你是说
如果不是1
我跳过了很多基本的东西
,那么我建议不要这样做,回去学习你在做什么。在不理解代码的情况下键入代码称为。我这样说是因为
int(1,11)
没有意义;你不能将两个整数的元组转换成一个整数,我不知道你为什么要这样做。@Davis我看过的所有在线教程都非常慢,速度非常慢,或者浏览了很多东西。我只是决定寻找一个编程挑战,并尝试用我自己的方式去做。我想,如果我唯一不能调试的就是一个小小的错误,那么我的方法一定是成功的。@r_33做绝对是最好的学习方式,只是像这样的“小错误”表明你跳过了很多基础知识,这就是我为什么说我做了什么。
range(1,11)
不返回迭代器。它返回一个范围对象。这很重要,因为当您在
中使用
进行成员资格测试时,它不必迭代所有值。这不起作用。所有内容都返回为无效的\u整数。
如果guess=11:
可以正常工作,但由于某些原因
1
无法正常工作。我现在没有时间想清楚我要睡觉了哈哈
if guess in range(1, 11):