首页 > 解决方案 > 使用 for 循环时出现 ValueError [已解决]

问题描述

我正在练习 for 循环,并想创建一个程序来询问用户输入,然后将其转换为正常和反向字符串。例如:-

输入一个字符串:python

PN

th

H T

np

我的代码:-

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

输入“python”时出现的错误是:-

 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

请帮我解决这个问题。提前致谢...

标签: pythonpython-3.xfor-loopvalueerror

解决方案


你得到它的方式,它不是试图依次从每个列表中获取一个元素。

您可以将列表包装在 a 中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 个变量要分配,依此类推。


推荐阅读