这个脚本有什么问题?该功能不会用新电子邮件替换旧电子邮件

我试图编写一个脚本,如果在输入中找到,用 Gmail 替换 Hotmail 地址,但我认为该功能有问题。没有语法错误,但结果只是不输出替换的 Gmail 域,而是输出相同的 Hotmail 域。

old_email = "hotmail.com"
new_email = "gmail.com"
email = input("Enter email: ")

def replace_domain(email, old_email, new_email):
    if "@" + old_email in email.endswith:
        index = len(old_email)
        new = email[:-index]+ "@" + new_email
        return new
    return email
a = email
print(a)

回答

这是固定代码,然后我将解释我所做的更改:

old_email = "hotmail.com"
new_email = "gmail.com"
email = input("Enter email: ")

def replace_domain(email, old_email, new_email):
    if email.endswith("@" + old_email):
        index = len(old_email)
        new = email[:-index] + new_email
        return new
    return email

a = replace_domain(email, old_email, new_email)
print(a)

第一:没有调用该函数。我已将其添加到倒数第二行。

第二endswith是一个函数。因此,我更改了该行,以便使用旧电子邮件域调用该函数。

第三@被输出两次,因为它没有在:-index零件中删除,然后立即添加一个新的。

我也会提出一些建议:

第四a不是一个描述性的变量名,这使得代码更难阅读。同样,indexnew不是理想的变量名。像这样new的词最好避免作为变量名,因为它们很容易与内置名称发生冲突。

第五:我会考虑改变变量名称old_emailold_domain代替。与new_email. 这更适合该变量的内容。

示例输出:

Enter email: robson@hotmail.com
robson@gmail.com

另一个示例输出:

Enter email: robson@aol.com
robson@aol.com


以上是这个脚本有什么问题?该功能不会用新电子邮件替换旧电子邮件的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>