【问题标题】:I am getting an ValueError while using for loops [solved]使用 for 循环时出现 ValueError [已解决]
【发布时间】:2020-03-05 02:35:56
【问题描述】:

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

输入一个字符串:python

pn

是的

h

ht

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

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

【问题讨论】:

  • 嗨!试试for row, col in zip(inp[::-1], inp),应该可以的
  • 但是怎么做呢? zip 对我的代码有什么作用以及我在哥们之前哪里错了?你能进一步解释一下吗?谢谢你的回答...

标签: python python-3.x for-loop valueerror


【解决方案1】:

按照您的方式,它不是试图依次从每个列表中获取一个元素。

您可以将列表包装在 zip 中,它会完全按照您的意愿行事。

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

它适用于py 的原因是字符串有 2 个元素长,并且您有两个变量分配给(rowcol)。如果你做了for row, col, z in,它将适用于pyt,例如因为字符串是3个字符并且你有3个变量要分配,等等。

【讨论】:

    猜你喜欢
    • 2018-10-07
    • 2021-12-30
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多