Python 我的游戏不适合我的功能

Python 我的游戏不适合我的功能,python,function,python-3.x,Python,Function,Python 3.x,这就是问题所在,我的game()函数不会转到我的firstlevel()函数,只是说进程退出,退出代码为0,我不知道为什么我甚至尝试更改函数名,但仍然没有运气我真的不知道该怎么做我只是一个初学者 代码: 导入winsound 导入随机运行 进口泡菜 配置文件={} def fightsound(): 播放声音('fight2.wav',winsound.SND_文件名| winsound.SND_异步) def排名(): 如果配置文件['xp']>=20: 配置文件['level']+=1 如果

这就是问题所在,我的game()函数不会转到我的firstlevel()函数,只是说进程退出,退出代码为0,我不知道为什么我甚至尝试更改函数名,但仍然没有运气我真的不知道该怎么做我只是一个初学者

代码:

导入winsound
导入随机运行
进口泡菜
配置文件={}
def fightsound():
播放声音('fight2.wav',winsound.SND_文件名| winsound.SND_异步)
def排名():
如果配置文件['xp']>=20:
配置文件['level']+=1
如果配置文件['xp']>=50:
配置文件['level']+=1
如果配置文件['xp']>=100:
配置文件['level']+=1
游戏()
其他:
游戏()
其他:
游戏()
其他:
游戏()
def播放音乐():
播放声音('mk.wav',winsound.SND_文件名| winsound.SND_异步)
def load_game():
全球概况
profile=pickle.load(打开(“save.txt”、“rb”))
游戏()
def致命性()
播放声音('fatal2.wav',winsound.SND_文件名| winsound.SND_异步)
def game():
全球概况
打印(“玩家:+profile['Player']))
打印(“XP:,配置文件['XP'])
打印(“级别:”,配置文件[“级别])
打印(“win:”,配置文件['win'])
打印(“损失:”,配置文件[“损失])
如果配置文件['level']>=1:
打印(“1.“食人魔王…”)
如果配置文件['level']>=2:
打印(“2.女巫的王国!”)
y=输入(“选择选项->”)
如果y==1:
第一级()
def firstlevel():
全球概况
格斗之声
enemyhp=50
马力=100
当enemyhp>0时:
打印(“您的hp:,hp,“敌人hp:,enemyhp”)
输入(“按enter键攻击…”)
伤害=随机数(0,25)
enemyhp-=损害
伤害=随机数(0,25)
hp-=损坏

如果hp要打赌这是因为
y
不是你想象的那样。请尝试打印或在其上放置断点,以确保它是值为1的整数。

问题在于以下三行:

y = input("Select an option -> ")
if y == 1:
    firstlevel()
当您得到输入时,它将作为字符串返回。您正在将字符串
“1”
与整数
1
进行比较。两者不相等,因此永远不会调用
firstlevel()

您应该将字符串转换为整数,或将整数更改为字符串,以便比较相同类型的两个对象。

问题在于:

y = input("Select an option -> ")
if y == 1:

input()
返回一个字符串,因此它永远不会等于整数
1
。在比较之前,只需在
y
上使用
int()
,您就可以开始了。

另外,我将修复我的排名函数,但这与点无关。因此,您确定y永远等于1吗?试着把y打印出来,看看你是否得到了你想要的。难怪它不起作用!
y = input("Select an option -> ")
if y == 1: