如何在Python中返回两个值

2024-06-16 13:51:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码。在

class NameParser:

    def __init__(self):
        self.getName

    def getName(self, name):
        splitName = name.split(' ')
        surname = splitName.pop()
        for i in range(len(splitName)):
            print('Name: %s' % splitName[i])

        return('Surname: %s' % surname)


np = NameParser()

print(np.getName("ali opcode goren"))

# output: name: ali, name: opcode, surname: goren

如何返回两个值?如下代码:

^{pr2}$

我需要所有值,但只需要一个输出。我怎样才能解决这个问题?在


Tags: 代码nameselfinitdefnpalisurname
3条回答

试试这个:

class NameParser:

    def __init__(self):
        self.getName

    def getName(self, name):
        listy = [] # where the needed output is put in
        splitName = name.split(' ')

        for i in range(len(splitName)):
            if i==(len(splitName)-1):#when the last word is reach
                listy.append('Surname: '+ splitName[i])
            else:
              listy.append('Name: '+ splitName[i])


        return listy


nr = NameParser()

print(nr.getName("ali opcode goren"))

# output: name: ali, name: opcode, surname: goren

whithout循环:

^{pr2}$
  1. 拆分:按空格拆分名称,然后再次执行列表理解以从列表中删除空字符串。在
  2. POP:通过pop()方法从列表中获取最后一项,并将其分配给surname变量。在
  3. 异常处理:在pop过程中进行异常处理。如果输入为空,则将引发IndexError异常。在
  4. 字符串串联:按for loop对列表中的每个项目进行迭代,并将值赋给user_name变量。在
  5. 再次连接字符串中的surname。在
  6. 显示结果。在

演示

class NameParser:
    def __init__(self):
        pass

    def getName(self, name):
        #- Spit name and again check for empty strings.
        splitName = [i.strip() for i in name.split(' ') if i.strip()]
        #- Get Surname. 
        try:
            surname = splitName.pop()
        except IndexError:
            print "Exception Name for processing in empty."
            return ""
        user_name = ""
        for i in splitName:
            user_name = "%s Name: %s,"%(user_name, i)
        user_name = user_name.strip()

        user_name = "%s Surname: %s"%(user_name, surname)
        return user_name


np = NameParser()
user_name = np.getName("ali      opcode       goren      abc")
print "user_name:", user_name

输出

^{pr2}$

{cd1>尝试使用^

class NameParser:

    def __init__(self):
        self.getName

    def getName(self, name):
        splitName = name.split(' ')
        surname = splitName.pop()
        for i in range(len(splitName)):
            yield ('Name: %s' % splitName[i])

        yield ('Surname: %s' % surname)


np = NameParser()

for i in (np.getName("ali opcode goren")):
    print i

相关问题 更多 >