【问题标题】:An error for converting elements in a list转换列表中的元素时出错
【发布时间】:2015-04-15 19:58:42
【问题描述】:

我是 iPython 初学者,我的代码需要一些帮助。 我想从输入中读取 6 个值。它们可以是整数、浮点数、复数、字符串或列表。 读取值并将它们附加到列表后,我进行以下转换:

  • 对于整数:将其替换为列表中的平方根。

  • 对于浮点数:将其替换为列表中数字的余弦。

  • 对于复数:将其替换为列表中的实部。

  • 对于字符串:将其转换为列表中的大写字母。

  • 对于列表:丢弃最后一个元素。

程序抛出以下错误:

File "<ipython-input-1-1f00b88d82c9>", line 20
    else i is list:
         ^
SyntaxError: invalid syntax

而且它也不能将字符串值存储到列表中。它总是存储 . 我应该如何解决这个错误? 这是我的代码:

import math as m
l=[]
i=0
while i<6:
    x=input("Enter some values: ")
    if isinstance(x,str):
        x=int(x)
    l.append(x)
    i=i+1
print l
for i in l:
    if i is str:
        i=s.capitalize(i)
    elif i is int:
        i=m.sqrt(i)
    elif i is float:
        i=m.cos(i)
    elif i is complex:
        i=l.real(i)
    else i is list:
        n=len(l)
        i=remove[n-1]
print l

【问题讨论】:

  • else 应该是elif 否则,else 后面一定没有。
  • 您不应该像这样使用is 关键字。认为您严重误解了此关键字

标签: python ipython


【解决方案1】:

只需替换

else i is list:

elif i is list:

由于即使在最后一种情况下您也需要评估条件,因此您需要“if”功能,因此请使用elifelse 不能紧跟条件,因此您看到了错误。
另外,你的行有错误

i=remove[n-1]

如果你想从列表 i 中删除最后一个元素,你需要

del i[-1]

【讨论】:

    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多