2017-02-15 11 views
0

ユーザーが自分のプログラムに入力したデータ(電子メールアドレス)を検証したいと思います。ユーザーが '@'記号を入力すると、プログラムはその記号を受け入れます。そうでなければ、プログラムはループして、再度電子メールを要求する必要があります。これまでのところ、私はこれを行うことを試みてきたが、プログラムは入力された文字ごとにループ:入力に「@」記号が含まれていることを確認する

emailright = True 

while emailright == True:  
    email = input("Please enter your email address") 
    character = ("@") 
    for character in email: 
     if character == '@': 
      print("Your email address had been registered") 
      emailright = True 
     else: 
      print("invalid email address, please re-enter") 
      emailright = False 

その内部のwhileループとすべてのものもインデントされています。 ありがとうございました!

+0

メールで 'もし '@':'? –

+0

'電子メール内の文字のために:'を '電子メール内のif文字'に置き換える必要があります。また、 'emailright'は先頭で' False'で始める必要があります。 –

+0

'@'は単に有効な電子メールアドレス。なぜホイールを再発明するのですか? http://emailregex.com/ – SiHa

答えて

2

多くの優れた電子メールの検証方法がありますが、これははるかに簡潔あなたのロジックを実装します。このような

email = input("Please enter your email address") 
while '@' not in email:  
    email = input("invalid email address, please re-enter") 
print("Your email address had been registered") 
-3
while True:  
    email = input("Please enter your email address") 
    if '@' in email: 
     break 

または:

https://pypi.python.org/pypi/validate_email

+0

OPが何を求めたのか、これがなぜ非常に多くの下位票を持っているのかよく分かりません。 – SiHa

0

何かを?

import re 


is_email_valid = None 


while is_email_valid is None: 
    email = input("Please enter your email address") 
    is_email_valid = re.match('^[a-zA-Z0-9_.+-][email protected][a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$', email) 
    if is_email_valid: 
     print("Your email address had been registered") 
    else: 
     print("invalid email address, please re-enter") 

これは私がから正規表現を抽出するサイトです。

http://emailregex.com/

関連する問題