函数中If语句的语法错误无效

出于某种奇怪的原因,我的代码一直工作得很好,直到我做了一些更改,几乎破坏了函数中的所有东西。自那以后,我删除了上述更改,但它仍然损坏。它说这一节中的冒号是无效语法。事实上,它对每条if语句和一些比较运算符都是这样说的。

选择 | 换行 | 行号
  1. if difficulty == "e":
  2.   number_enemies -= 1
# 回答1


嗨,你能把你所有的代码都贴出来吗?
# 回答2


整个函数相当长,但可以肯定。它应该是在我正在开发的一款文本游戏中创造敌人的。

选择 | 换行 | 行号
  1. # Randomly generates enemies
  2. def create_enemies(difficulty, mode, current_location, battles):
  3.  
  4.   # Clears enemies from the last battle
  5.   enemies = []
  6.  
  7.   # List of possible names for the enemies to use
  8.   names = ["Aiden", "James", "Sam", "Aidan", "Brad", "Pavle", "Fuda", "David", "Andrew", "Harry", "Callum", "Tomasz", "Bazli", "Georgia", "Sheldon", "Legolas", "Aragorn", "Gimli", "Boromir", "Faramir", "Éomer", "Éowyn", "Treebeard", "Celeborn", "Galadrial", "Radagast", "Gandalf", "Merry", "Pippin", "Frodo", "Sam", "Bilbo", "Azog", "Gorkil", "Sharku", "Shagrat", "Gorbag", "Lurtz", "Tom Bombadil", "Goldberry"]
  9.  
  10.   # Randomly decides how many enemies there will be
  11.   number_enemies = int(random.randint(2,5)
  12.  
  13.   # 1 less enemy in Easy difficulty
  14.   if difficulty == "e": 
  15.     number_enemies -= 1
  16.   # 1 more enemy in Hard difficulty
  17.   elif difficulty == "h":
  18.     number_enemies += 1
  19.   # 2 more enemies in Legendary difficulty
  20.   elif difficulty == "l":
  21.     number_enemies += 2
  22.  
  23.   # The more battles you've had, the more enemies there will be
  24.   number_enemies += int((battles/100)*30)
  25.  
  26.   # There will always be at least 2 enemies
  27.   if not (number_enemies >= 2):
  28.     number_enemies = 2
  29.  
  30.   #Enemies are different at the boss battles
  31.   if mode == 2 and current_location.evil_final == True:
  32.     enemies = [Troll("Cave Troll"), Uruk("Uruk"), Wizard("Sauron"), Orc("Orc"), WargRider("Warg Rider"), Easterling("Easterling"), Goblin("Goblin 1"), Goblin("Goblin 2"), Goblin("Goblin 3")]
  33.   elif mode == 1 and current_location.good_final == True:
  34.     enemies = [Wizard("Gandalf"), Elf("Legolas"), Dwarf("Gimli"), Ranger("Aragorn"), Human("Boromir"), Hobbit("Frodo"), Hobbit("Sam"), Hobbit("Merry"), Hobbit("Pippin")]
  35.   else:
  36.     for z in range(number_enemies):
  37.       if mode == 1:
  38.         # Determines the class of the enemy
  39.         # 1/4 Goblin, 1/4 Orc, 1/8 Uruk, 1/8 Easterling, 3/24 Warg Rider, 2/24, Wizard, 1/24 Troll
  40.         enemy_class = random.randint(1, 24)
  41.         if enemy_class in range(1,6):
  42.           enemies.append(Goblin(names[random.randint(1,(len(names)-1))]))
  43.         if enemy_class in range(7,12):
  44.           enemies.append(Orc(names[random.randint(1,(len(names)-1))]))
  45.         if enemy_class in range(13,15):
  46.           enemies.append(Uruk(names[random.randint(1,(len(names)-1))]))
  47.         if enemy_class in range(16,18):
  48.           enemies.append(Easterling(names[random.randint(1,(len(names)-1))]))
  49.         if enemy_class in range(19,21):
  50.           enemies.append(WargRider(names[random.randint(1,(len(names)-1))]))
  51.         if enemy_class in range(22,23):
  52.           enemies.append(Wizard(names[random.randint(1,(len(names)-1))]))
  53.         if enemy_class == 24:
  54.           enemies.append(Troll(names[random.randint(1,(len(names)-1))]))
  55.  
  56.       if mode == 2:
  57.         # Determines the class of the enemy
  58.         # 1/4 Hobbit, 1/4 Human, 1/8 Elf, 1/8 Dwarf, 3/24 Ranger, 2/24 Wizard, 1/24 Ent
  59.         enemy_class = random.randint(1, 24)
  60.         if enemy_class in range(1,6):
  61.           enemies.append(Hobbit(names[random.randint(1,(len(names)-1))]))
  62.         if enemy_class in range(7,12):
  63.           enemies.append(Human(names[random.randint(1,(len(names)-1))]))
  64.         if enemy_class in range(13,15):
  65.           enemies.append(Elf(names[random.randint(1,(len(names)-1))]))
  66.         if enemy_class in range(16,18):
  67.           enemies.append(Dwarf(names[random.randint(1,(len(names)-1))]))
  68.         if enemy_class in range(19,21):
  69.           enemies.append(Ranger(names[random.randint(1,(len(names)-1))]))
  70.         if enemy_class in range(22,23):
  71.           enemies.append(Wizard(names[random.randint(1,(len(names)-1))]))
  72.         if enemy_class == 24:
  73.           enemies.append(Ent(names[random.randint(1,(len(names)-1))]))
  74.  
  75.   return enemies
# 回答3


谢谢!在做了几处更改之后,我设法运行了代码。我把它保存在txt中,因为我不能把它以.py格式上传到这里。我开始选择所有文本,然后按Shift+Tab键两次;然后,在11的末尾也有一个漏掉的圆括号。这个.py格式的文件运行正常。有时,错误可能在指示的行以外的行中。如果您有任何疑问,请告诉我。顺便说一下,由于我在这里遇到的一个错误,我将文件编码更改为UTF-8,但这可能是不必要的。如果你还有什么问题,请告诉我。
也许您需要做的唯一更改是将缺失的圆括号添加到代码中。
附加的文件
File Type: txt
Forum.txt
(3.7KB,368次浏览)
# 回答4


那个漏掉的括号..。我把它放在那里,突然一切都完美地工作了。非常感谢!
# 回答5


不客气!
最好的
标准数据队列

标签: python

添加新评论