IndentationError:unindent 不匹配任何外部缩进级别我啥都不懂[关闭]
Posted
技术标签:
【中文标题】IndentationError:unindent 不匹配任何外部缩进级别我啥都不懂[关闭]【英文标题】:IndentationError: unindent does not match any outer indentation level I do not understand anything [closed]IndentationError:unindent 不匹配任何外部缩进级别我什么都不懂[关闭] 【发布时间】:2021-09-30 22:52:00 【问题描述】:我什么都不懂。我已经检查了所有内容,在 IDLE 中,我通过 format> tabify 区域翻译了选项卡中的空格。它仍然不起作用。什么不是这样
File "bot.py", line 365
if if_do==True:
^
IndentationError: unindent does not match any outer indentation level
短代码:
if_do = True
if patron in ctx.message.author.roles:
await ctx.messsage.author.remove_roles(patron)
await ctx.message.channel.send('И патрон потратил...')
break
if if_do==True:
await ctx.message.channel.send('Чел, ты...А патрон...')
所有代码:
@bot.command(pass_context = True)
@commands.cooldown(1, 15, commands.BucketType.user)
async def shot(ctx, member: discord.Member=None):
if_do = False
police = discord.utils.get(ctx.author.guild.roles, id=867662803968065586)
armor = discord.utils.get(member.guild.roles, id=867692189106044939)
dead = discord.utils.get(ctx.author.guild.roles, id=867692254746640394)
hard_blood = discord.utils.get(ctx.author.guild.roles, id=867692258760196116)
easy_blood = discord.utils.get(ctx.author.guild.roles, id=867692269054459954)
gun = discord.utils.get(ctx.author.guild.roles, id=868069389365280818)
patron = discord.utils.get(ctx.author.guild.roles, id=868228372222840913)
if gun in ctx.message.author.roles:
if patron in ctx.message.author.roles or police in ctx.message.author.roles:
if member == None:
await ctx.message.channel.send('Выстрел в воздух...Бедная птичка..')
if patron in ctx.message.author.roles:
await ctx.messsage.author.remove_roles(patron)
await ctx.message.channel.send('И патрон потратил...')
else:
mention = member.mention
veroyatnost = randint(1,10)
telo = ['левую ногу','левую руку','правую ногу','правую ногу','живот','плече','грудь']
if veroyatnost>6 and veroyatnost<=10:
res = 'В выстрелили! К счастью пуля не попала в цель.'.format(mention)
elif armor in member.roles:
res = 'В стреляли! К счастью на нем был бронежилет, который больше непригоден...'.format(mention)
await member.remove_roles(armor)
else:
if veroyatnost<3:
await member.add_roles(dead)
res = 'В выстрелили! Рана смертельная, поздравляю, вы умерли.'.format(mention)
elif veroyatnost>=3 and veroyatnost<=4 :
await member.add_roles(hard_blood)
res = 'В выстрелили! Ловкое попадание. Тяжелая рана. Выстрел в . Боль. '.format(mention,random.choice(telo))
elif veroyatnost>4 and veroyatnost <=6:
await member.add_roles(easy_blood)
res = 'В выстрелили! Чудом уклонившись он(а) получил(а) легкое рание в '.format(mention,random.choice(telo))
await ctx.message.channel.send(res)
if_do = True
if patron in ctx.message.author.roles:
await ctx.messsage.author.remove_roles(patron)
await ctx.message.channel.send('И патрон потратил...')
break
if if_do==True:
await ctx.message.channel.send('Чел, ты...А патрон...')
else:
await ctx.message.channel.send('Тебе не из чего стрелять!')
【问题讨论】:
问题正是消息告诉您的:if
语句以独特的级别缩进,语言结构要求它与上面的内容匹配。您对此有何困惑?
【参考方案1】:
我绘制了您的代码。看看抛出错误的行如何与之前的任何缩进不一致? Python 不知道如何处理它,所以它会抛出一个错误。一般来说,尽量让缩进的空格数始终相同,以避免这种情况。
考虑这两段代码:
a = 3
if a < 5:
if a < 2:
print("option 1")
else:
print("option 2")
这里,“else”与if a < 2
语句有关,因此将打印“option 2”。比较一下:
a = 3
if a < 5:
if a < 2:
print("option 1")
else:
print("option 2")
这里不会打印任何内容,因为else
指的是if a < 5
行。现在想象一下:
a = 3
if a < 5:
if a < 2:
print("option 1")
else:
print("option 2")
else
指的是哪个if
语句?这是模棱两可的,所以 python 说“修复这个!”而不是猜测。
【讨论】:
以上是关于IndentationError:unindent 不匹配任何外部缩进级别我啥都不懂[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
IndentationError: unindent does not match any outer indentation level
IndentationError: unindent does not match any outer indentation level
报错:IndentationError:unindent does not match any outer indentation level
python中出现IndentationError:unindent does not match
IndentationError: unindent does not match any outer indentation level解决策略
报错内容 IndentationError: unindent does not match any outer indentation level