【发布时间】:2019-04-07 17:23:57
【问题描述】:
我正在尝试从员工列表(每个员工在他们自己的嵌入式列表中)生成电子邮件列表。这是通过首先选择电子邮件的格式,然后对每个员工的姓名使用 for 循环来完成的。下面是代码。我的问题是,如果我给 self.first 和 self.last 空字符串,以便它们可以在下面的格式选择中调用,它们不会在 for 循环中重新分配实际的名字和姓氏,而是打印电子邮件带着他们的空弦。我看到获取名字和姓氏的方法有效,但由于某种原因,email = self.email_format 在以下输出(或类似输出)下无法正常工作:
['@gmail.com', '@gmail.com', '_@gmail.com']
如何解决此问题或重新排列数据?
class email_generator():
def __init__(self):
self.domain = 'gmail'
self.generated_emails = []
self.employees = [['Foo Bar', 'job title'], ['Matthew Gorand', 'job title'], ['Julia Snyder', 'job title']]
def format_choice(self):
self.last = ''
self.first = ''
choice = input('''
Choose a format for generating emails:
1) first.last@domain.com
2) last.f@domain.com
3) f.last@domain.com
4) last_first@domain.com
5) firstl@domain.com
6) flast@domain.com
7) Pass
''')
if choice == '1':
self.email_format = f'{self.first}.{self.last}@{self.domain}.com'
elif choice == '2':
self.email_format = f'{self.last}.{self.first}@{self.domain}.com'
elif choice == '3':
self.email_format = f'{self.first[:1]}.{self.last}@{self.domain}.com'
elif choice == '4':
self.email_format = f'{self.last}_{self.first}@{self.domain}.com'
elif choice == '5':
self.email_format = f'{self.first}.{self.last[:1]}@{self.domain}.com'
elif choice == '6':
self.email_format = f'{self.first[:1]}{self.last}@{self.domain}.com'
elif choice == '7':
pass
else:
print('Invalid Input')
self.format_choice()
for employee in self.employees:
split = employee[0].split(' ')
self.first = split[0]
self.last = split[1]
email = self.email_format
self.generated_emails.append(email)
print(self.generated_emails)
test = email_generator()
test.format_choice()
【问题讨论】:
-
请对所有个python问题使用通用[python]标签
标签: python python-3.x list for-loop