2016-06-09 79 views
1

自從我使用python以來已經有好幾個月了。我沒有得到一個錯誤,但我也沒有收到所需的輸出。獲取python 3+比較返回值和輸入值

我有一個函數:

def set_account(gather_accounts): 
    print("gather_accounts():\n") 
    for a in gather_accounts: 
     print('Value: {}'.format(a[1])) 

    if decision_enter_account == 'Y': 
     bool_add_account = True 
     while bool_add_account == True: 

      prompt_account_url = input('What is the account\'s url?\n') 
      prompt_account_name = input('\nWhat is the account name? \n') 
      #TODO check for duplicate account names, and disallow 
      for a in gather_accounts: 
       if prompt_account_name == a[1]: 
        print('Sorry you already had an account with {} try again.\n'.format(prompt_account_name)) 
        prompt_account_name = input('\nWhat is the account name? \n') 

我試着去實施對返回值gather_accounts重複檢查,具體而言,在for循環a[1]變得像Chase

但是一個值,當我運行這個腳本,如果我輸入Chase它沒有命中:if prompt_account_name == a[1]

我該如何解決這個比較用戶輸入的val ue的prompt_account_name並將其與a[1]的值進行比較?

感謝

+0

請提供證明問題的[mcve]。 – Kevin

+0

'gather_accounts'是兩個字符串的元組列表嗎? –

+0

這段代碼適合我。你能說明你如何創建gather_accounts以及你正在運行什麼版本的Python? –

回答

0

我猜你是在Python2運行,如果Python2,你需要在這種情況下使用prompt_account_name = raw_input('\nWhat is the account name? \n')而不是prompt_account_name = input('\nWhat is the account name? \n')

實際上,在Python3中,input()相當於Python2中的raw_input()。 雖然在Python3中刪除了raw_input()

+0

它絕對是Python3 –

+0

如果OP使用2.7,我期望他得到一個異常'NameError:name'Chase'沒有被定義。但他說他沒有得到一個錯誤。 – Kevin