1

我正在开发一个程序来检测python中的单词。用户输入 = 我的电子邮件 ID 是 harry@hogwarts.com 输出 = 我的电子邮件 ID 是 xxxxx@hogwarts.com

这就是我到目前为止所拥有的

def main():
    message = []
    userInput = str(input("Enter the sentence: "))
    splitInput = str(list(userInput))
    print(splitInput)
    for item in splitInput:
        indeces = splitInput.index('@')
        while((indeces-1).isalpha()):
            item = 'x'
            message.append(item)
    print(' '.join(message))

这是我得到的错误

File "C:\Users\Manmohit\Desktop\purifier.py", line 8, in main
    while((indeces-1).isalpha()):
AttributeError: 'int' object has no attribute 'isalpha'

我试过在网上寻找不同的方法。我想要类似于 alpha 方法的东西。我应该编写自己的 alpha 方法来检查还是可以使用内置的东西???帮助表示赞赏。谢谢

更新 :

在将循环更改while((indeces-1).isalpha()):while((str(indeces-1)).isalpha()):我没有得到错误但我也没有得到任何输出。

4

3 回答 3

1

您可以使用此功能对电子邮件进行编码:

>>> def encodeemail(email):
       e = email.split("@")
       return "@".join(["x" * len(e[0]), e[1]])

>>> encodeemail("harry@hogwarts.com")
xxxxx@hogwarts.com

甚至

>>> def encodeemail(email):
        d = email.split(" ")
        for i, f in enumerate(d):
            e = f.split("@")
            if len(e) > 1: d[i] = "@".join(["x" * len(e[0]), e[1]])
    return " ".join(d)

>>> encodeemail("this is harry@hogwarts.com")
this is xxxxx@hogwarts.com

没有枚举:

>>> def encodeemail(email):
        d = email.split(" ")
        for i in range(len(d)):
            e = d[i].split("@")
            if len(e) > 1: d[i] = "@".join(["x" * len(e[0]), e[1]])
    return " ".join(d)
于 2013-07-28T18:12:17.677 回答
0

re如果字符串不只包含电子邮件,您可以使用模块。

>>> s
'my email id is harry@hogwards.com'
>>> re.sub('(?<=\s)\w+(?=@)', lambda y: 'x'*len(y.group()), s)
'my email id is xxxxx@hogwards.com'
于 2013-07-28T18:23:33.747 回答
0

我假设您想检查字符串的一部分是否通过了 isalpha() 测试。那不是您的代码正在做的事情。

虽然可能有更好的方法来解决您的问题,但您也可以让您的代码正常工作。希望这很有用。

while((indeces-1).isalpha()):

indeces 是一个整数,-1 也是如此,所以你应用 isalpha 的结果是一个 int,正如错误所说。

(str(indeces-1)).isalpha()

这也不起作用。那是从 int 中创建一个字符串,因此 str(2) 的结果是“2”,这也不是您想要的测试。

如果要检查字符,只需索引到字符串,如下所示:

>>> for i in range(len(s)):
...    if s[i].isalpha():
...         print 'x'
...    else:
...         print s[i]
于 2013-07-28T19:09:13.530 回答