Я получаю ValueError при использовании для циклов - PullRequest
0 голосов
/ 08 ноября 2019

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

Введите строку: python

pn

yo

th

ht

oy

np

Мой код: -

inp = input("Enter a string: ")
for row, col in inp[::-1], inp:
    print(row, col)

Ошибка при вводе "python" is: -

 Traceback (most recent call last):
  File "C:\Users\intel\Desktop\Python\test.py", line 2, in <module>
    for row, col in inp[::-1], inp:
 ValueError: too many values to unpack (expected 2)

Когда я набираю "py" , тогда ошибка не отображается: -

y p
p y

Пожалуйста, помогите мне выйти из этого. Заранее спасибо ...

1 Ответ

1 голос
/ 08 ноября 2019

Как у вас есть, он не пытается взять по одному элементу из каждого списка по очереди.

Вы можете обернуть свои списки в zip, и он будет делать именно то, что вы хотите.

inp = input("Enter a string: ")
for row, col in zip(inp[::-1], inp):
    print(row, col)

Причина, по которой он работает для py, заключается в том, чтодлина строки составляет 2 элемента, и вам назначаются две переменные (row, col). Это будет работать для pyt, если вы сделали for row, col, z in, например, потому что строка состоит из 3 символов, и у вас есть 3 переменные для назначения, и так далее, и так далее.

...