if構文で条件が重なって消えてしまうので、これの対策を知りたいです。
emailアドレスが正しいかを判断する関数を作成していますが、
def foreword(location):
if email.find(" ") == -1 and not(email[0] == "@"and email.find("@") == -1:
return True
else: return False
このとき、email = @abcd.com のように先頭に@がある時にFalseを出力したいのですが、その前の@があるかどうかでTrue判定になってしまうため、この関数は結果としてTrueになってしまいます。
初歩的な質問だと思いますが、このような時の対策を教えていただけたら幸いです。
if ' ' not in email and email[0] != '@' and '@' in email[1:]:
- アドレスにブランクがあってはいけない
- アドレスの先頭が@以外の文字列でなければならない
- アドレスに@が含まれていなければならない
これを満たすif文を知りたい、ということですか?
1行に収めたいか(たぶんできても美しい処理というより「ワンライナーへのこだわり」を感じる仕上がり)、
if文を少し分割してもいいか(美しいかはともかく、ほかの人や自分が後から見直しても分かりやすい仕上がり)、で回答の難易度が変わりそうです。
ありがとうございます!!!
とても助かりました!!
回答2件
あなたの回答
tips
プレビュー