-2

有人可以告诉我为什么即使定义了“lname”也会出现此错误。错误信息在最后。

在 k = ['安东尼','马克','Mdel']。名字是“Anthony”,姓氏是“Mark Mdel”。我知道姓氏以“Mar”开头的项目开始,这里是“Mark”。因此需要找到以“Mar”开头的项目并提取该项目和之后的所有项目。但我得到了错误。

k = ['Antony', 'Mark', 'Mdel']

for word in k:
    if word.startswith('Mar'):
        fidx = k.index(word)
        lname_i = k[fidx:]
        lname = []
        for nm in lname_i:
            lname.append(nm)
        print(lname)

    fname = [x for x in k if x not in lname]
    email = fname[0] + '.' + lname[0] + '@' + 'gmail.com'

    fn = ' '.join(fname)
    print(fn)

    ln = ' '.join(lname)
    print(ln)

C:\Users\Path\python.exe C:/Users/Path/Trail.py
Traceback (most recent call last):
  File "C:/Users/Path/Trail.py", line 26, in <module>
    fname = [x for x in k if x not in lname]
  File "C:/Users/Path/Trail.py", line 26, in <listcomp>
    fname = [x for x in k if x not in lname]
NameError: name 'lname' is not defined
4

1 回答 1

-1

lname在 if 语句中定义。但是,由于 'Antony' 不是以 'Mar' 开头的,所以 if 语句中的代码不会被执行。因此,lname未定义。

于 2018-10-14T14:22:23.910 回答