Python: если elif

#python #if-statement #while-loop

#python #if-оператор #цикл while

Вопрос:

я пытаюсь создать функцию, которая создает пустое цветное изображение с учетом количества плиток из createSquareTile(numTiles, префикс)

 def createSquareTile(numTiles, prefix):
  current = 1
  if current == 1:
    numTiles = requestNumber("Please input a positive number")
    numTilesI = int(numTiles)

    while (numTilesI < 0):
      showError("Your input number"   str(numTiles)  "is not valid. Do it       again!")
      numTiles = requestNumber("Please input a positive number")

    if (numTilesI > 0):
    current = current   1
    color = pickAColor()
    return makeEmptyPicture(numTilesI), numTilesI), color)

  elif current > 1:
    previousChoice = requestString("Same size as pervious tile? (Y/N)")

    while (previous != "N") and (previous != "Y"):
      showError("Your input character"   previousChoice   "is not valid. Do it again!")
      previousChoice = requestString("Same size as previous tile? (Y/N)")

    if (previousChoice == "Y"):
      color = pickAColor()
      return makeEmptyPicture(numTilesI, numTilesI, color)
      current = current   1


    elif (previousChoice == "N"):
      numTilesN = requestNumber("Please input a positive number")
      numTIlesNI = int(numTilesN)
      colorN = pickAColor()
      return makeEmptyPicture(numTilesNI, numTilesNI, colorN)
      current = current   1
  

Согласно python, в

 elif current > 1:
  

Может кто-нибудь, пожалуйста, помогите мне, что не так с моим оператором elif? Заранее спасибо!

Комментарии:

1. пожалуйста, укажите вашу ошибку трассировку, чтобы мы могли указать вам на нее..

2. Ошибка Python при попытке загрузить программу была «В программе произошла ошибка интервала. Это может быть из предыдущей строки, но я думаю, что ошибка находится в строке 16 »

3. Я уже вижу несколько ошибок отступа из вставленного вами кода. Я не уверен, является ли это точным форматом или была просто ошибка форматирования, но, например, в строке if (numTilesI > 0): вам нужно будет сделать отступ для остальной части того, что следует за этим оператором if.

4. похоже на проблему с отступом в: «if (numTilesI> 0):»

5. У вас не может быть кода после оператора return . current = current 1 является недоступным кодом

Ответ №1:

Возможные причины:

  • Строка над ним содержит неправильные пробелы.
  • Вы смешались tab с space .
  • У вас случайно есть несколько скрытых символов.

Почему бы сначала не попытаться удалить белую строку над ним? Если все возможности не будут работать, пожалуйста, прокомментируйте.

Комментарии:

1. Здравствуйте, прежде всего, спасибо за помощь, я перепробовал все вышеперечисленные решения, включая полное удаление белой линии над ним, и это все равно не работает.

2. @DarioOngsono Пожалуйста, загрузите ваш файл кода, чтобы я мог его протестировать.

3. Извините, я новичок на этом сайте, но как мне загрузить файл кода?

4. @DarioOngsono просто загрузите его на веб-диск и так далее. StackOverflow не может загружать файлы.

5. Есть ли служба, которую вы можете порекомендовать, где я могу поделиться с вами своим файлом?

Ответ №2:

вот ваша проблема: вернуть makeEmptyPicture(numTilesI), numTilesI), color)

вы должны удалить ) from numTilesI), color) и должны работать, потому что на самом деле ваша программа останавливается на этой строке и не движется вперед. Выполнил отладку и проверку:

Подключенный к отладчику pydev (сборка 162.1967.10) Процесс завершен с кодом выхода 0

правильным будет: makeEmptyPicture(numTilesI), numTilesI, цвет