我在python上遇到这个奇怪的错误:我定义了一个名字(在这种情况下, last ),但是它说它还没有定义。
代码:
name = input("Insert name here: \n")
list = list(name)
last = list[len(list)-1] ### here is when it's defined
print("--\n")
while not len(list) == 1:
if last == " ": ### here is when it's first required
del(last)
print(("".join(list)))
del(last)
print(("".join(list)))
错误回复:
Traceback (most recent call last):
File "C:/Users/ocari/OneDrive/Documents/Python things/Decompor.py", line 9, in <module>
if last == " ":
NameError: name 'last' is not defined
我怎么解决?
(顺便说一句,如果我在其所需的每一行中交换名称'last'作为其所需的定义(当前'list [len(list)-1]'),那么代码就可以工作。这证明了问题不是它的定义,而是另一种问题)
答案 0 :(得分:1)
一旦del last
,就不再定义它了。您可以在循环中的两个点执行此操作。然后下一次循环,再次尝试del last
。由于不再定义,这是一个错误。
答案 1 :(得分:0)
当您的列表超过1个项目时
你的'last'将超过1次(因为它在循环中)
如果你想删除列表中的最后一项
你可以用pop
试试吧
name = input("Insert name here: \n")
list = list(name)
last = list[len(list)-1] ### here is when it's defined
print("--\n")
while not len(list) == 1:
if list[-1] == ' ' :
list.pop()
if len(list) == 1 :
break
list.pop()
print(("".join(list)))