转换列表中元素的错误

Mic*_* Ji -1 python ipython

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

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

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

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

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

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

该程序引发以下错误:

File "<ipython-input-1-1f00b88d82c9>", line 20
    else i is list:
         ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

kvo*_*iev 6

只需更换

else i is list:
Run Code Online (Sandbox Code Playgroud)

elif i is list:
Run Code Online (Sandbox Code Playgroud)

由于您需要在最后一种情况下评估条件,因此您需要"if"功能,因此请使用elif.else不能立即跟踪条件,因此你看到的错误.
此外,你有错误

i=remove[n-1]
Run Code Online (Sandbox Code Playgroud)

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

del i[-1]
Run Code Online (Sandbox Code Playgroud)