2013-07-29 13 views
-1

好吧,我是Python的noob,清除空氣。我15歲,剛開始學習Python,認爲這是最好的編程語言開始。這可能看起來很愚蠢,但在這裏,誰可以調試或自動更正它? :P我的def函數不工作,我需要保存它然後將其導入到另一個項目?

def firstlogin(x,y): 
    x=raw_input('Enter name: ') 
    if x == 'Bob': 
     return 'Hello there,press enter to go to the next test.' 
    y=raw_input('Enter pass: ') 
    if y == 'password': 
     return ('You are now free to *** this account up') 

因爲高清是在其中您可以製作自己的功能,從一次又一次地編寫相同的功能,以防止和或基本上只是讓自己的函數功能。但是當我將它保存爲.py時,我無法打開它。我想我必須輸入/將其導入python,當我想將它用於另一個項目,或者有另一種方式。

PS:自學習,我住在一個國家,我不能讓編程語言書籍的任何地方:(..所以我在網上衝浪..使用布凱視頻一點點,等

+0

你是什麼意思,「我不能打開這個,當我說它爲.py」。你的意思是,當你執行文件時,你沒有得到所需的輸出? – misguided

+1

我建議從官方教程[這裏](http://docs.python.org/2/tutorial/)開始。 – l4mpi

回答

3

您可以通過導入它這個保存爲任何你想要的名稱,如「foo.py」

然後在你的其他Python文件,您可以使用此功能。

import foo 
... 

foo.firstlogin(bar,baz) # how to call the function. 
1

一種方法來檢查你的功能如下圖所示:

def firstlogin(x,y): 
    x=raw_input('Enter name: ') 
    if x == 'Bob': 
     return 'Hello there,press enter to go to the next test.' 
    y=raw_input('Enter pass: ') 
    if y == 'password': 
     return ('You are now free to *** this account up') 


if __name__ == '__main__': 
    firstlogin(bar, baz) 

,然後使用這個命令:python foo.py

這到底是怎麼發生的是,魔術變量__name__是由Python的設定值__main__告訴你,你的模塊已直接在命令加載線。

當你從另一個Python模塊調用的模塊如下:

import foo 
firstlogin(bar, baz) 

魔術變量__name__將被設置爲foo,包含你的功能,因此您的引導代碼不會被執行模塊的名稱。這是Python中使用的一種標準習慣用法,它允許您檢出代碼,即使您通常打算從其他模塊調用代碼。從這裏你可以看到__name__通常是你模塊的名稱,但是當你直接從命令行調用你的模塊時,它的設置爲__main__

2

這個功能不會做你的想法,因爲你在第一次檢查後返回,所以它會繼續詢問姓名,當用戶輸入Bob時,什麼都不會發生,因爲你沒有做任何事情結果。

由於您正在覆蓋您傳遞給該函數的任何用戶名和密碼,它將始終檢查Bob而不是您要求它檢查的內容。在同一目錄

def firstlogin(user, passwd): 
    ''' A function to check the username 
     and password for a user ''' 

    x = raw_input('Enter Name: ') 
    if x == user: 
     y = raw_input('Great! Now try guessing the password: ') 
     if y == passwd: 
      print 'Correct!' 
     else: 
      print 'Sorry, password was wrong' 
    else: 
     print 'Sorry, username was wrong' 

將其保存到一個文件,可以說my_func.py,然後在另一個文件,類型:

試試這個版本而不是

from my_func import firstlogin 

firstlogin('user','sekret') 

,也可以鍵入python以再次從您保存的同一目錄獲取交互提示my_func.py

>>> from my_func import firstlogin 
>>> firstlogin('user','sekret') 
+0

我嘗試了一切......但看起來它是完全錯誤的,它只是沒有工作:/ ..即使當我f5它,它只是不工作xD –

+0

你是什麼意思「當我F5它」 - 你如何運行代碼? –

+0

不用導入它,我會通過在IDLE上運行它來測試它,這就是Bucky所做的:P和f5是開始的,當我開始時它什麼都沒有發生,甚至沒有發生錯誤..我不明白..所以我寫這個的方式根本不起作用:/至少對我來說,甚至使用了你在那裏寫的那個,沒有任何東西......只是顯示空白 –

相關問題