2012-06-15 77 views
2

這可能會讓你驚訝這些問題的基本原理,但請耐心等待!如果有更好的地方可以提問,我會對遷移表示讚賞。兩個基本的Python編程問題

我正在看兩個Python教程,其中之一是「學習Python的難題」。我無法評估教程的質量,所以我有幾個問題。 (我纔剛剛開始LPTHW所以我道歉,如果答案來得20個演習後。)

  1. 在LPTHW,練習到目前爲止已編碼到記事本++和從命令行執行txt文件。另一個是「將命令一個接一個輸入Python」教程。問題:哪個對學習者更實用? 「兩者」是可以接受的答案。

  2. 在LPTHW中,首先使用變量的解釋,格式字符命令%s%d和%r。練習中說:「搜索網絡以瞭解所有這些。」我做了一個網絡搜索,發現有人說:「不要使用這些,使用新的。」問題:LPTHW是否以這種方式過時,是否應該使用「新的」?

+0

感謝所有有用的答案!特別好知道我不浪費時間學習。 – rschwieb

回答

3
  1. 我會說「都」。當你編寫「真正的程序」時,你會用文本文件編輯它們並從命令行運行它們,但交互式環境是學習,探索和測試的好方法。我編寫了一個交互式Python會話,作爲檢查我的假設的地方。
  2. 你絕對應該學習舊的格式化語法。它基於C語言格式化的打印設備,許多編程語言都採用了類似的系統,因此瞭解這一點很重要。學習新的東西也是不容忽視的,嘗試在舊式和新式中編寫相同的格式化功能是一個很好的練習。
+0

我完全同意。在第二點,我想補充一點,如果你使用舊的風格,讓我們說''%s'%i',而你的變量i是一個int,它就會失敗。另一方面,如果你使用''{0}'格式(i)',你不會注意到一件事情。當然,這裏所需的輸出是相同的,但瞭解變量類型總是一件好事,並且定義變量應該是什麼會幫助你做到這一點! – 2012-06-16 00:16:57

+1

不是這樣的:''%s'%33'產生字符串'33'(無論如何,在Python 2.6中)。大多數事情通過調用'__str __()'特殊方法的'%s'格式化。引擎蓋。 (並且回到第1點,我只是在Python交互式shell中檢查了這一點,以確保我不高。) –

0

空閒會快一點,或者Eclipse的PyDev的插件(也給代碼完成等),你可以寫,從一個地方運行你的代碼,通過這些方式,而過時,真的取決於你的環境,你也可以不出差錯thenewboston教程YouTube上

1

這是我的看法:

  1. 新學員可能更喜歡由一個輸入命令一個成Python在第一,因爲他們獲得即時反饋並僅限於小程序。編碼到編輯器或IDE是爲了更高級的用戶。 「兩者」是最終的長期答案。
  2. 可能LPTHW是爲早期版本的Python(例如2.6)編寫的。我認爲我們現在是3.2。我會說,如果你根本不瞭解Python,並且只是第一次瞭解它,即使是一個不在最前沿的教程也能幫助你。可能會有一些細節會在這裏和那裏發生變化,但基礎語言仍然會很好。
0
  1. 打字Python代碼到交互式解釋是要進行測試的好方法,尤其是如果你不想爲它創建一個文件。查看函數返回的結果並嘗試任何操作是很有用的。但是你寫的任何程序當然會存儲在文件中。兩者確實都是答案,因爲它們都是在開發過程中使用的,僅用於不同的目的。

  2. 格式化字符串的新方法是"thestring".format(...)",其中...是各種格式選項。這確實是做事的新方式,您應該使用它。舊的格式選項使得代碼更不可讀(因爲你必須知道其中的縮寫%),並且它更容易編寫"string with values: {0} and {1}".format(3, 4)

+0

對於已經熟悉C系列語言(或較老版本的Python!)的'%s'格式化語法的人來說,舊樣式更容易,尤其是如果您只想要默認的字符串轉換:'「string值爲:%s和%s「%(3,4)'。一旦你想得到幻想,它們同樣神祕而難以學習:「格式(621.0/7.0)」與「%.5s」%(621.0/7.0)''。 –

1

1)Both。創建腳本是您在Python中大規模處理的內容。使用Python shell也很好地向您展示您可以通過命令行執行大量選項的簡單腳本編寫,而不需要像編寫其他語言一樣編譯/編譯整個程序等。

2)格式變化,但沒有什麼大不了的。許多人仍然使用Python 2.x,因爲Python3引入了一些不必要的更改。只要看看它。

1
  1. Python repl非常適合測試內置函數,但是就編寫健壯,複雜的程序而言,您必須寫入文件。

  2. 儘管我們使用的是Python 3.x,但Python 2.x仍然被廣泛使用。 %s是一個字符串的佔位符,%d是一個整數的佔位符,%r是一些python命令的佔位符。

例如:

a = "hello world" 
b = "%s" 
b%a == "hello world" 
a = 10 
b = "%d" 
b%a == "10" 
a = "%r" 
a%range(10) == "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" #since range(10) is a python function 
               #which returns the list of numbers 
               #from 0 to 10 
+1

請注意,Python 2.6中提供了新風格的'str.format'方法* * 。 – BrenBarn

+0

感謝您解決代碼格式問題。我不知道爲什麼它原本不工作(在...之前從未遇到過這個問題) – user1413793

1

我已經通過LPTHW工作在過去的幾個月裏,我目前的EX50。我的簡短回答是:認真對待Shaw,並通過LPTHW破壞你的屁股!你會看到你會同時使用文本編輯器和交互式會話,所以這不是一個真正的問題。肖並不是在開玩笑說「很難」,但那是因爲如果你花費幾個月的時間,並且認真對待「額外的信用」,你會學到很多東西。

當他說,「閱讀關於等等,」是的,這很難。但我很快意識到,「閱讀有關」是一項必要技能(我想我已經知道了)。另外,它在網上衝浪和迷路閱讀關於都不在分配:)

一些技巧,從我的Python事情權限:

  • 先做這本書(比LPTH容易得多) :command line crash course。認真對待他,製作閃存卡。我很幸運,並且有兩臺筆記本電腦,一臺Windows 7,一臺Ubuntu Linux。在這一點上,我傾向於在linux中編寫所有代碼,並且我已經足夠用於命令行的東西,我實際上想要學習Vim(對我來說是一個大驚喜)

  • 如果您有Linux和Windows,你可能會更快樂地使用Linux。我認爲Windows上的所有功能都支持,但大部分的幫助都是針對Linux。我有一個並排學習的目標,但正如我上面所說的,在這一點上,我在我的Windows機器上讀取LPTHW,同時在Ubuntu機器上編碼

  • 完成所有額外功勞。但是如果你感到困惑,不要擔心。我後來發現,也許是第二天,也許是下週,我會回去,並最終了解以前練習的額外功勞。

  • 到目前爲止所有的練習中,「練習46:一個項目骨架」對我來說是最具變革性的。在書中的那一點,我開始陷入困境,感到無能。但是我一直在掙扎,一兩個星期後(可能工作10到20個小時)突然「點擊」了一下,現在我覺得我知道一些事情。我建議反覆進行「必要的測驗」問題3-6,直到你可以從內存中完成所有事情而不需要查看任何內容。在linux上,你可以用鍵盤來完成所有這些問題,並且我意識到如果你不需要鼠標,事情會變得很快。我想這就是爲什麼我很想學習Vim。

  • 最後,當您正在通過LPTHW工作時,如果可能的話,對於小型項目使用python。這是很好的動機,你可以閱讀,找出安裝軟件包的東西。我很早就發現,我能夠進入github,找到我需要的代碼,並根據自己的目的進行調整。即使大部分內容是神祕的,例如,如果__name__ ='__main__':。我不知道這是什麼意思,但是這並沒有阻止我使用python並想了解更多。

好的,祝你好運!