2016-03-22 14 views
0

yazdırılır o None demek iki çizgi izledi goodbye yazdırır. Bunu nasıl ortadan kaldırırım?tanımlanmış deyimi yürütüldüğünde sonra aşağıdaki kodu çalıştırın ve bütün <code>request</code> işlevi geçmesi ve ben <code>reqSecPass</code> kısmına <code>n</code> cevap zaman "yok", iki kez

goodbye ifadesinin kendiliğinden olduğunu ve bunun bir fark yaratıp yaratmadığını bilmiyorum.

def goodbye(): 
    print('Good Bye!') 

def request(): 
    reqPass = input('Which password would you like?[Google, Twitter, Reddit, Computer]') 
    #still need to figure out dictionary manipulation so this is a temporary sytem. 
    if(reqPass == 'google' or reqPass == 'google'): 
     print('________________') 
     print('Pass: GOOGLEPASSWORDHERE') 
     print('________________') 
     reqSecPass = input('Request another password?[y/n]') 
     if(reqSecPass == 'y' or reqSecPass == 'Y'): 
      print(another()) 
     else: 
      print(goodbye()) 
    elif(reqPass == 'twitter' or reqPass == 'Twitter'): 
     print('_________________') 
     print('User: TWITTERUSERNAMEHERE') 
     print('Pass: TWITTERPASSWORDHERE') 
     print('________________') 
     reqSecPass = input('Request another password?[y/n]') 
     if(reqSecPass == 'y' or reqSecPass == 'Y'): 
      print(another()) 
     else: 
      print(goodbye()) 
    elif(reqPass == 'computer' or reqPass == 'Computer'): 
     print('________________') 
     print('Pass: COMPUTERPASSWORDHERE') 
     print('________________') 
     reqSecPass = input('Request another password?[y/n]') 
     if(reqSecPass == 'y' or reqSecPass == 'Y'): 
      print(another()) 
     else: 
      print(goodbye()) 
    elif(reqPass == 'reddit' or reqPass == 'Reddit'): 
     print('_________________________') 
     print('User: REDDITUSERNAMEHERE') 
     print('Pass: REDDITPASSWORDHERE')  
     print('________________') 
     reqSecPass = input('Request another password?[y/n]') 
     if(reqSecPass == 'y' or reqSecPass == 'Y'): 
      print(request()) 
     else: 
      print(goodbye()) 
print('_____This is a password keeper_____') 
#checking if the user has an account 
actCheck = input('Do you already have an account?') 
if(actCheck == 'Yes' or actCheck == 'yes'): 
    #asking for user's name and password 
    yourUser = input('___What is your Username?___') 
    yourPass = input('___What is your Password?___') 
    if(yourUser == 'ari' and yourPass == 'rycbar1234'): 
     dirCheck = input('Account settings?[y,n]') 
     if(dirCheck == 'y' or dirCheck == 'Y'): 
      print('this function is not working yet!') 
      actSetCheck = input('Change username or password?') 
      if(actSetCheck == 'user' or actSetCheck == 'User' or actSetCheck == 'Username' or actSetCheck == 'username'): 
       yourUser = input('What would you like your new username to be?') 
      elif(actSetCheck == 'pass' or actSetCheck == 'Pass' or actSetCheck == 'password' or actSetCheck == 'Password'): 
       yourPass = input('What would you like your new username to be?') 
     elif(dirCheck == 'n' or dirCheck == 'N'): 
      print(request()) 
    else: 
     print('Incorrect Username or password') 
+0

Hiçbir şey döndürmemek gibi görünen işlevler, "Hoşçakal" gibi "Yok" u döndürür. Yani, 'Hoşçakal() == Yok'. – 3442

+0

Bir işlevden varsayılan geri dönüş, 'Yok'dur Fonksiyonda yazdırıyorsunuz ve daha sonra işlevi, aramanın etrafında 'print' ile çağırıyorsunuz. – dawg

cevap

3

İşlevlerinizin dönüş değerlerini yazdırıyorsunuz. İşlevlerinizin tümü None döndürür (açık bir return bildirimi kullanmadığınız zaman varsayılan döndürme değeri).

sizin işlev aramalardan print() ifadeleri çıkarın, bu yüzden yerine:

print(another()) 
# ... 
print(goodbye()) 
# ... 
print(request()) 

sadece Alternatif

another() 
# ... 
goodbye() 
# ... 
request() 

kullanın sizin işlevi yazdırmak için bir dize döndürür vardır:

def goodbye(): 
    return 'Good Bye!' 

print(goodbye()) 

, muhtemelen tek bir dizgi döndürmek için bir işlev kullanmaya değmez değer.

+0

Teşekkürler! Önerdiğin düzenlemeyi yaptım, ancak hala "yok" yazıyor ama sadece bir kere. –

+1

@AriMadian: bu yüzden başka bir 'print()' geri dönüş değeri basmış başka bir yere sahip olursunuz. Tüm kodlarınızı ayrıntılı olarak taradım. –

2

Açık return ifadesi olmayan işlevlerden dönen değeri yazdırıyorsunuz. Böyle bir işlevden döndürülen değer varsayılan olarak None'dur. Bu değeri yazdırıyorsunuz.

Bazen her zaman yazdırmak yerine, return ifadesini kullanmayı deneyin. return 'Goodbye!'.

İlgili konular