< Zpět na seznam úloh

P1 Odsazený kód

var datasets = [
  {arg: "print('a')", out: true},
  {arg: "    print('a')", out: false},
  {arg: `for i in range(10):
  print(i)`, out: true},
  {arg: `def:
  for:
    print
  if:
    return
`, out: true},
  {arg: `def:
  if:
  return`, out: false},
]
var names = ['text'];

var remapPreview = (text) => `text = """${text}"""
main(text)
`

Odsazování v Pythonu je docela ošemetná záležitost. Pro naše účely budeme vyžadovat upravená a zjednodušená pravidla.

Program dostává jeden dlouhý řetězec, který obsahuje něco jako kód v Pythonu. Vaším úkolem je zkontrolovat, že počet mezer na začátku každého řádku dává smysl. To znamená:

Výstupem programu je pravdivostní hodnota, jestli odsazení je v pořádku.

def main(text):
  for line in text.split("\n"):
    if line.startswith(" "):
      return False
  return True

Rada: počítat mezery jde různými způsoby. Může se k tomu hodit třeba funkce str.lstrip.