Py列為黑客應該學的四種編程語言之一初學者該怎麼學
在開始前先簡單和大家說一說: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
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() 絕對值函數
擴展函數:
必須要先導入其所在的模塊才能使用,並且用模塊名.函數名的形式調用,如
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
bbbbb"
print(a)
現在信息更新的非常快速,又迎來了大數據的時代, 各行各業如果不與時俱進,都將面臨優勝劣汰,知識是不斷的更新的,只有一技之長,才能立於不敗之地。
學習Python編程語言,是大家走入編程世界的最理想選擇,在初期入門階段就可以自己動手做一些實用的小項目,這樣會極大的增進我們學習編程的 熱情。
學好python你需要一個良好的環境,一個優質的開發交流群,群里都是那種相互幫助的人才是可以的,我有建立一個python學習交流群,在群里我們相互幫助,相互關心,相互分享內容,這樣出問題幫助你的人就比較多,群號是304加上050最後799,這樣就可以找到大神聚合的群,如果你只願意別人幫助你,不願意分享或者幫助別人,那就請不要加了,你把你會的告訴別人這是一種分享。
感覺寫的好,對你有幫助,就點個讚唄,別光只收藏哈.~( ̄▽ ̄)~
推薦閱讀:
※Python每日一練0006
※Scrapy連接到各類資料庫(SQLite,Mysql,Mongodb,Redis)
※如何高效的產生一億組1到1億的隨機排列?
※Python __slots__ 詳解
※Django 全棧開發教程之03 - YaDjangoBlog 之前後端分離篇
TAG:Python |