2017-02-15 22 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

你需要用'如果email中的字符'替換'email中的字符'',同樣'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") 
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/

電子郵件
相關問題