Python列為黑客應該學的四種編程語言之一 初學者該怎麼學

編程語言 Python 黑客 PHP Python學習開發交流 2017-05-05

Python列為黑客應該學的四種編程語言之一 初學者該怎麼學

在開始前先簡單和大家說一說:Python是什麼.呢?

也許最初設計Python這種語言的人都沒有想到今天Python會在工業和科研上獲得如此廣泛的使用。著名的自由軟件作者Eric Raymond在他的文章《如何成為一名黑客》中,將Python列為黑客應當學習的四種編程語言之一,並建議人們從Python開始學習編程。這的確是一箇中肯的建議,對於那些從來沒有學習過編程或者並非計算機專業的編程學習者而言,Python是最好的選擇之一。

Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麵向對象的腳本語言。

Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。

  • Python 是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節。類似於PHP和Perl語言。

  • Python 是交互式語言: 這意味著,您可以在一個Python提示符,直接互動執行寫你的程序。

  • Python 是面嚮對象語言: 這意味著Python支持面向對象的風格或代碼封裝在對象的編程技術。

  • Python 是初學者的語言:Python 對初級程序員而言,是一種偉大的語言,它支持廣泛的應用程序開發,從簡單的文字處理到 WWW 瀏覽器再到遊戲。

我之前學過C語言和php,在自己的工作中也經常用php開發一些小項目。這次選這門python的課程,主要是想做一些桌面應用程序。

因為之前有一點編程經驗,所以這門課對我來說不難。但我仍然覺得對初學者來說,講的太快了,知識點講的太粗糙了,對於真正想學這門課程的同學,我強烈建議配合一本python的書一起學習,不然很難真正學懂。

我自己也在同時看《python基礎教程》,把這個筆記也寫到這裡~~

1.2 萬年不變的hello,world和print

print在python3之前的版本中,既可以當做是一個命令,也可以當做是函數來調用。但是在python3以後的版本中,只能以函數的形式來調用。python3+中:

print "hello,world!" ——錯誤

print("hello,world!")——正確

之前用過php和c語言,以分號做為語句的結束已經成了習慣,在python中則是不需要的。

1.3 算法

算法是什麼?用一句話概括:詳細描述如何做某件事情。

2個要素:

每一步都是一條計算機能夠執行的命令。

執行的順序。

程序是什麼?數據結構+算法。

計算機可以做很多事情,但自己不會思考。所以我們需要操作的對象(數據),決定數據如何存儲以及數據之間的關係(數據結構),以及如何處理數據(算法)。

1.4數字和簡單運算符

加減乘法沒什麼太多需要說的。

除法:在python3之前的版本中有一個“陷阱”,當除數和被除數都為整數時,結果也會忽略掉小數部分,必然是一個整數(也就是執行了整除運算):

1 / 3 的結果是0

但是在python3之後,1 / 3 的結果是一個浮點數了,可以正常運算。

整除運算符:// 執行整除運算。

1 // 3 的結果是0

取餘運算符 %

是一個非常重要的運算符,在week1課程中的小項目會用到。取餘,在一些週期性和循環性的問題中,非常常用。

冪運算符 **

2**3 == 8

Python列為黑客應該學的四種編程語言之一 初學者該怎麼學

1.5-1.6 變量和賦值語句

我之前用php比較多,把php和python中的變量做個比較:

python中的變量必須先賦值(聲明)後使用,而php中的變量是不分聲明和使用的;

python中變量的本質,是存儲了變量的地址,而並非是變量的值。而python中的數據類型是分為可變和不可變2種的(書的這裡還有講到,簡單提下),一段非常重要的代碼可以說明這個問題:

a = 1

print(id(a))

a = 2

print(id(a))

--------------------------

輸出:

505986472

505986488

說明對a進行重新賦值(而非修改)後,變量a在內存中的地址已經被改變。

所以,python中的賦值,是非常非常特殊的,和其他語言有非常大的不同!

python中的賦值,a = b

是傳遞地址,即對原對象的引用。而改變b的值時a是否受影響,則要看對象是可變還是不可變。

1.7 獲取用戶輸入

在python3以後的版本中,取消raw_input,只有input函數可以使用,返回的是一個字符串。所以就算你輸入了一個整數,還是會被當成一個字符串。

如果你要對用戶的輸入進行運算,就必須要把數據類型轉化成數字:

x = int(input("please input your age:"))

print(x**2)

1.8 函數

python中的函數分為3種。

內建函數:

可以直接使用,比如用於數學運算的

pow() 冪函數

round() 四捨五入函數

abs() 絕對值函數

Python列為黑客應該學的四種編程語言之一 初學者該怎麼學

擴展函數:

必須要先導入其所在的模塊才能使用,並且用模塊名.函數名的形式調用,如

math.floor() 向下取整函數

用戶自定義函數:

需要用戶自己定義

以一個菜鳥的眼光來看,函數和流程控制是一個程序最核心的東西。

函數可以把一個大的項目分解成若干個獨立完成某個具體功能的函數來構成。

優點:

提高開發效率(提高了代碼的重用性);

提高可維護性(只需要修改函數中的部分,則被調用的地方都被修改了);

提高代碼的可讀性和可開發性(對外隱藏功能的實現細節,只需要知道這個函數能完成什麼功能即可)。

另外,在python中,可以用變量來引用函數,從而用自定義的變量來完成相同的功能。

mihanshu = pow

mihanshu(2,3)

會輸入8

1.9 模塊

在使用擴展函數之前,必須先導入其所在的模塊,使用import關鍵字:

import math

math.floor(3.14)

還有另外一種導入模塊的方法(本人並不推薦),在你確定只使用一個模塊下的一個函數時,可以使用

from math import floor

然後直接使用該函數

floor(3.14)

1.10 執行python程序

如何讓python程序像普通的程序(如瀏覽器等)可以直接雙擊運行呢?答案是:直接雙擊就可以了。。(- -!)

為了讓控制檯不在程序運行完畢後馬上關閉,可以在程序最後加上一條

input()

這樣在程序運行完後輸入任意鍵程序才會關閉。

註釋:

順便一提,python中使用#來進行註釋。

1.11 字符串

python使用+來連接字符串,在php中是用.的

str() 用來把一個對象轉成字符串

長字符串:

如果需要輸入一個非常長的字符串,跨越多行,就可以使用3個引號來包含這個字符串,並且裡面可以隨意使用單雙引號:""" """

原始字符串:

如果需要字符串中的任何字符都原樣輸出,就需要在字符串的前面加上一個r

a = r"aaaa\nbbbbb"

print(a)

相關推薦

推薦中...