python - 如何检查字符串中是否有特定字符(在 Python 中)
问题描述
我现在正在编写一个有趣的小系统(在 Python 中)。我在写邮件检查器时遇到了麻烦。它应该检查电子邮件地址是否包含“。” 和 '@'。这是代码:
def check_mail(mail):
email = str(mail)
needed_charachters = ['@', '.']
if needed_charachters[1] not in email:
print(send_error('Mail invalid (has to contain ".")'))
return False
if needed_charachters[0] not in email:
print(send_error('Mail invalid (has to contain "@")'))
return False
elif '.' in email:
print('contains .')
我已经尝试了一些技术,但每次都出现同样的错误。如果我将“ahksdasdhk”作为邮件输入,则会出现我的错误“必须包含”。“”这没关系,也是我想要的。但是当邮件是“gaagsggg@ksdkj.wssf”时,仍然会出现同样的错误。顺便说一句,这是我给错误创建者的代码:
def send_error(message):
return f'ERROR: {message}'
解决方案
elif
是问题,试试这个:
def check_mail(mail):
email = str(mail)
needed_charachters = ['@', '.']
if needed_charachters[1] not in email:
print(send_error('Mail invalid (has to contain ".")'))
return False
if needed_charachters[0] not in email:
print(send_error('Mail invalid (has to contain "@")'))
return False
else:
print('Valid mail')
return True
并建议循环执行:
def check_mail(mail):
email = str(mail)
needed_charachters = ['@', '.']
for character in needed_characters:
if character not in email:
print(send_error('Mail invalid (has to contain ' + character + ')'))
return False
else:
print('Valid mail')
return True
推荐阅读
- c - C 编程使用 malloc 和赋值
- razor - 无法在 ASP.NET 核心 2.0 类项目中使用 TagHelper 在“cshtml”中添加条码
- dependencies - python的所有RDEPENDS是否需要在Yocto的IMAGE_INSTALL_append中显式定义?
- homebrew - 在 MacOS High Sierra 上通过 Homebrew 安装 Python 2 时出错
- java - 无法实例化 ExpandableListAdapter,因为它是抽象的
- python - Python 二维数组赋值
- android - 使用 Apk Easy 工具签名后 Apk 不起作用?
- automation - 如何禁用特定 SpecFlow 场景的并行运行?
- mongodb - 优化 mongoDB 查询
- mapbox - IOS;迅速; 即使在 MapBox 地图视图中点击屏幕,如何保持注释打开?