Python получить данные в этом формате - PullRequest
0 голосов
/ 02 августа 2020

У меня есть небольшая единица кода, которая приведена ниже:

round = 4
chars = 68
for k in range(round):
   if (k % 2) == 0:
      Title = 'Start '+chr(chars)
   else:
      Title = 'Reached ' + chr(chars)
      chars = chars - 1
      print(Title)

Используя это, я получаю следующий результат:

Start D
Reached C
Start B
Reached A

Я действительно хочу, чтобы результат :

Start C
Reached B
Start B
Reached A

как мне получить название таким образом, пожалуйста, помогите мне в связи с этим

Ответы [ 4 ]

1 голос
/ 02 августа 2020
chars = 67
counter = 1

while counter <= 4:
   if (counter % 2) != 0:
      title = 'Start '+chr(chars)
      counter += 1
      chars -= 1
   else:
      title = 'Reached ' + chr(chars)
      counter += 1
   print(title)

ВЫХОД (по желанию):

Start C
Reached B
Start B
Reached A

ОБЪЯСНЕНИЕ:

Я использовал while l oop для перебора l oop и incremented переменную счетчика на 1 после каждой итерации, чтобы убедиться, что l oop будет повторяться 4 раза. Для первой итерации counter = 1, так что это нечетное число, будет напечатано "Start " + chr(chars). Для Chars по умолчанию установлено 67, что соответствует букве «C». Затем я вычел 1 из chars, чтобы получилось 66, или «B». На следующей итерации счетчик будет равен 2, поэтому он напечатает «Reached B». Нет необходимости вычитать из chars на этой итерации, потому что мы хотим, чтобы символы оставались равными «B» для следующей итерации. Я просто повторил этот logi c в al oop и повторил его 4 раза, чтобы добиться желаемого результата. Надеюсь, это поможет!

0 голосов
/ 02 августа 2020

Несколько вещей, которые следует учитывать при кодировании. Вы не хотите определять переменные, которые имеют то же имя, что и функция python. Например, round - это функция в python, и у вас есть переменная round, назначенная на 4. Вместо этого я изменил ее на r.

Также chr(68) is D, поэтому запустил программа на 67, чтобы получить желаемый результат. При первом цикле значение k будет 0. Это приводит к значению if (k % 2 == 0 true. Вот почему вы должны начинать с 67.

Кроме того, ваш print(Title) не имеет правильного отступа. Я переместил его за пределы оператора if-else, чтобы он мог печатать правильно.

Единственное изменение, которое вам нужно было внести в свой код, было в двух местах. chars = 67 и вычтите значение chars, прежде чем присвоить новое значение Title с помощью Reached.

r = 4 #changed the variable name to r. round is a function

chars = 67 #started with 67 to give you C instead of D

for k in range(r): #used r instead of round

    if (k % 2) == 0:
        Title = 'Start '+ chr(chars)

    else:
       chars = chars - 1 #moved this line before you reassign value to Title
       Title = 'Reached ' + chr(chars)

    print(Title) #modified the indentation to print after each iteration

Вывод:

Start C
Reached B
Start B
Reached A

Надеюсь, это поможет вам понимать изменения и реализацию вашего кода.

0 голосов
/ 02 августа 2020
round = 4
chars = 67
start  = True
for k in range(round):
    if(start):
            print('start '+chr(chars))
            start = False
            chars = chars-1
    else:   
            print('reached '+chr(chars))
            start = True

этот код получает ваш результат

start C
reached B
start B
reached A
0 голосов
/ 02 августа 2020

Есть несколько вещей, которые необходимо исправить:

chr(68) представляет букву 'D', поэтому вам следует инициализировать переменную chars = 67.

Вам также понадобится диапазон от l oop до значений от 1 до 4, поэтому вам нужен диапазон (1,5) вместо диапазона (4), который будет l oop через значения от 0 до 3.

Оператор печати должен быть вне ваших операторов if / else, чтобы он печатал на каждой итерации l oop.

round = 4
chars = 67
for k in range(1, round+1):
   if (k % 2) == 0:
      Title = 'Start '+chr(chars)
   else:
      Title = 'Reached ' + chr(chars)
      chars = chars - 1
   print(Title)

Вывод:

Reached C
Start B
Reached B
Start A
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...