当用户输入电子邮件地址,程序读取电子邮件并按照其标准(例如yeo.myy@edu.co)显示电子邮件时,如下所示:
username是yeo.myydomain是edu.co我知道这和"@"有关。
这是密码
class Email:
def __int__(self,emailAddr):
self.emailAddr = emailAddr
def domain(self):
index = 0
for i in range(len(emailAddr)):
if emailAddr[i] == "@":
index = i
return self.emailAddr[index+1:]
def username(self):
index = 0
for i in range(len(emailAddr)):
if emailAddr[i] == "@" :
index = i
return self.emailAddr[:index]
def main():
emailAddr = raw_input("Enter your email>>")
user = Email(emailAddr)
print "Username = ", user.username()
print "Domain = ", user.domain()
main()这就是我遇到的错误:
Traceback (most recent call last):
File "C:/Users/Owner/Desktop/sdsd", line 29, in <module>
main()
File "C:/Users/Owner/Desktop/sdsd", line 24, in main
user = Email(emailAddr)
TypeError: this constructor takes no arguments发布于 2014-11-19 13:03:21
def __int__(self,emailAddr):你是说__init__吗
def __init__(self,emailAddr):在您的方法中还缺少了几个self,并且您的return缩进不当。
def domain(self):
index = 0
for i in range(len(self.emailAddr)):
if self.emailAddr[i] == "@":
index = i
return self.emailAddr[index+1:]
def username(self):
index = 0
for i in range(len(self.emailAddr)):
if self.emailAddr[i] == "@" :
index = i
return self.emailAddr[:index]结果:
Username = yeo.myy
Domain = edu.co顺便提一句,我建议使用partition和rpartition将字符串拆分为给定分隔符上的两个部分。当然比手动跟踪指数要好。
def domain(self):
return self.emailAddr.rpartition("@")[2]
def username(self):
return self.emailAddr.rpartition("@")[0]https://stackoverflow.com/questions/27017493
复制相似问题