Anirudh Ramasamy Ответов: 2

Что я делаю не так


Моя цель состоит в том, чтобы вывести функцию, которая печатает нет строчных и прописных символов. Я пытался выяснить это, но не смог

Что я уже пробовал:

Что не так в этом коде?
узнайте пожалуйста помогите
def determine_upper_lower(value):
upper_case = 0
lower_case = 0

for i in value:
if i.isupper():
upper_case = upper_case + 1


elif i.islower():
lower_case = lower_case + 1

result = 'the number of uppercase letters are ' + str(upper_case) + ' and the number of lowercase letters are ' + str(lower_case)
return result


sample_string = 'Quick brown fox jumped over the lazy Dog'
print(determine_upper_lower(sample_string)

2 Ответов

Рейтинг:
2

OriginalGriff

В Python отступ важен: он используется для обозначения блока операторов.
Так что если вы скажете Это:

if a != b:
   c = a + 1
   c = c + b
print(c)
тогда оба назначения выполняются только в том случае, если a и b различны
Если вы скажете Это:
if a != b:
   c = a + 1
c = c + b
print(c)
Тогда всегда выполняется второе задание.

Ваш код плоский слева: он не будет работать, потому что он ожидает
upper_case = 0
быть отступом как часть тела функции.

Предполагая, что вы исправите отступ, чтобы ваш код работал, вам нужно будет протестировать его и устранить любые проблемы. Подумайте о процессе разработки как о написании письма: отсутствие синтаксических ошибок означает, что вы написали письмо на правильном языке - английском, а не немецком, например, - а не то, что письмо содержало сообщение, которое вы хотели отправить.

Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но вы перейдете к более ранним стадиям позже): тестирование и отладка.

Начните с рассмотрения того, что он делает, и как это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а он удваивает его и печатает ответ, то если ввод / вывод был таким:
Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его - он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он находится где-то здесь:
def Double(value):
   return value * value

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить, почему. Поместите точку останова в первую строку метода и запустите приложение. Когда он достигнет точки останова, отладчик остановится и передаст управление вам. Теперь вы можете запускать свой код построчно (так называемый "одноступенчатый") и просматривать (или даже изменять) содержимое переменных по мере необходимости (черт возьми, вы даже можете изменить код и повторить попытку, если вам это нужно).
Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она действительно делала, когда вы использовали кнопку "Step over" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?
Надеюсь, это поможет вам определить, в какой части этого кода есть проблема и в чем она заключается.
Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он только улучшается при использовании!


Рейтинг:
1

CPallini

Вдавливание.
Правильный отступ кода является обязательным в Python.
Автоматический инструмент исправления кода© произведено:

def determine_upper_lower(value):
  upper_case = 0
  lower_case = 0

  for i in value:
    if i.isupper():
      upper_case = upper_case + 1
    elif i.islower():
      lower_case = lower_case + 1

  result = 'the number of uppercase letters are ' + str(upper_case) + ' and the number of lowercase letters are ' + str(lower_case)
  return result


sample_string = 'Quick brown fox jumped over the lazy Dog'
print(determine_upper_lower(sample_string))