0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pythonでのスライスエラー(´;ω;`)

Posted at

#エラー発生!!!

pythonにて、無効なメールアドレスをはじくメソッドを書いていました。

def isValidEmail(email):
    if email[0] == '@':
        return False
    elif ' ' in email:
        return False
    elif email.count('@') > 1:
        return False
    elif email['@':].count('.') < 1:
        return False
    else:
        return True

条件の4個目の「@」以降に「.」が無いメールアドレスをはじく条件を付けたかったのですが、エラーになりました。

エラー内容は「slice indices must be integers or None or have an __ index __ method」
となっておりました。
どうやらスライスの中身は整数である必要があるとのこと。

#解決策
事前に@以降のドメイン名を切り出した変数を用意し、その中で「.」を検索することとしました。成功!

def isValidEmail(email):
    domain = email.find('@')
    if email[0] == '@':
        return False
    elif ' ' in email:
        return False
    elif email.count('@') > 1:
        return False
    elif email[domain:].count('.') < 1:
        return False
    else:
        return True

根本的な解決ではないかもしれませんが、とりあえず解決!

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?