零基礎快速入門python教程,結合新手練習的5大項目

2021-01-08 愛Python編程的南風

Python是一門動態語言

與Java,C等相對,Python不用編譯,像腳本一樣直接運行.這就導致了,所有錯誤都是運行時的!即使有語法錯誤,或者異常,如果程序邏輯沒有執行到,就不會有錯誤.比如一個if分支中有語法錯誤,使用了未定義的函數,但如果未執行到此分支,就可以正常運行.

動態的另外一層意思就是它的類型是動態的,也就是說無需指定變量的類型,在運行時,根據它的內容來決定的類型.

如何運行Python

通常來講有二種方式,一種方式是交互式的,就像Shell命令行提示符那樣,交互式的,輸入,就有輸出;

在終端輸入python命令,就進入了Python的命令提示符中:>>>輸入Python語句,解釋器就會執行,並輸出結果,如:

[python] view plain copy

[alex@alexon:~]$python

Python 2.7.3 (default, Apr 102013, 06:20:15)

[GCC 4.6.3] on linux2

Type "help", "copyright", "credits"or"license"for more information.

>>> print'hello, world'

hello, world

>>>

輸入exit()可以退出命令提示符.

另外一種方式就是腳本,就像Shell的腳本的一樣,把一組命令集合到一起執行,這就能發揮更大的作用.

[python] view plain copy

#!/usr/bin/python

print'hello, world'

Python以縮進來區分語句塊

不像Java,C/C++以花括號{}來區分語句塊.Python是以縮進來表示語句塊,同一縮進級別為同一級別的語句塊.

一個腳本文件中的0級縮進是文件加載的時候就會被執行的語句,如上面的print.開啟一個新的縮進需要使用:(冒號),代表下一級別的語句塊,如條件,循環或者函數定義.

縮進最好使用四個空格.而且要注意縮進要一致,使用空格就全都用空格,使用Tab就都使用Tab,混用就可能得到縮進錯誤:

IndentationError: unindent does not match any outer indentation level

操作符

與Java和C中十分類似, +(加), -(減), *(乘), /(除), %(求餘), **(指數運算), = (賦值).以及減便運算,如 +=, -=, *=和/= 等.

賦值運算與其他語言一致.

邏輯操作

> = != ==與其他語言一樣.

不一樣的有not邏輯非,and邏輯與和or邏輯或.

注釋與文檔

一行當中,從#開始地方就是注釋.不會影響下一行.

""引號放在文件的開頭,函數的開頭或者一個類的開頭,就是文檔注釋,與Java中的/** ... */作用和目的是一樣的.

折行

如果一行太長了,寫不下了,就需要在下一行接著寫,這時可以使用來告訴Python,下一行繼續.

一行寫多個語句

Python是一個語句放在一行,行尾可以選擇性的加上;但如果想在一行放多個語句,就需要用;來分隔語句:

a = 1; b = 2; c = 3;

雖然這在語法上可行,但不是一個好習慣,絕大多數的編程規範都是要一行寫一個語句.

基本數據類型

int

long

bool

float

與Java中非常接近.可以近似認為一致.bool的值是True和False,或者0(False),非0就是True.

List和Tuple

這就是Java或C中的數組.它是一個容器,能用來順序的,以整數索引方式檢索, 存儲一組對象.List用[]來表示,如[1, 2, 3]就是一個List;而Tuple用()來表示,如(3, 4, 5)就是一個Tuple.它們的區別在於List是可變的;而Tuple是不可變的.也就是說不可以增,刪和改.

索引方式除了與Java一樣的以一個整數下標方式外,還可以指定開始,結束和步長,和使用負索引來分割List:

通用語法格式是:list[start:end:step]

list[index] --- 返回第(index+1)個元素,受C語言影響,下標亦是從0開始

list[start:end] --- 返回從start開始,到end-1,也就是list[start], list[start+1].....list[end-1]

list[start:end:step] --- 與上面類似,只不過每隔step取一個

list[:end] ---- 預設的開端是0

list[start:] ---- 預設的結尾是len(list),或者-1

負數索引更是方便,它與正數的對應關係為:

正數索引 0 1 2 3

數組元素 [1] [3] [5] [7]

負數索引 -4 -3 -2 -1

實例:

[python] view plain copy

>>> a = [1, 3, 5, 7];

>>> a[0]

1

>>> a[3]

7

>>> a[-1]

7

>>> a[-2]

5

>>> a[0:3]

[1, 3, 5]

>>> a[1:3:2]

[3]

>>> a[0:3:2]

[1, 5]

>>> a[0:-1:2]

[1, 5]

>>>

List是一個對象,它有一此內置的方法,如:

包含關係: in, not in

[python] view plain copy

>>> 3in a

True

>>> 8in a

False

>>> 8notin a

True

>>>

連接符: +

[python] view plain copy

>>> a + [9, 11]

[1, 3, 5, 7, 9, 11]

重複: *

[python] view plain copy

>>> a * 2

[1, 3, 5, 7, 1, 3, 5, 7]

>>>

字符串String

字符串就是一個字符的數組,List的操作都可以對String直接使用.

[python] view plain copy

>>> str = 'hello, world'

>>> str[0:3]

'hel'

>>> str[0:3:2]

'hl'

>>> str[-1]

'd'

>>> str * 2

'hello, worldhello, world'

>>> '3'in str

False

>>> 'le'in str

False

>>> 'el'in str

True

>>> 'ell'notin str

False

>>>

字串格式化符%

這是一個類似C語言printf和Java中的String.format()的操作符,它能格式化字串,整數,浮點等類型:語句是:

formats % (var1, var2,....)

它返回的是一個String.

[python] view plain copy

>>> "Int %d, Float %d, String '%s'" % (5, 2.3, 'hello')

"Int 5, Float 2, String 'hello'"

>>>

Dictionary字典

相當於Java中的HashMap,用於以Key/Value方式存儲的容器.創建方式為{key1: value1, key2: value2, ....}, 更改方式為dict[key] = new_value;索引方式為dict[key]. dict.keys()方法以List形式返回容器中所有的Key;dict.values()以List方式返回容器中的所有的Value:

[python] view plain copy

>>> box = {'fruits': ['apple','orange'], 'money': 1993, 'name': 'obama'}

>>> box['fruits']

['apple', 'orange']

>>> box['money']

1993

>>> box['money'] = 29393

>>> box['money']

29393

>>> box['nation'] = 'USA'

>>> box

{'money': 29393, 'nation': 'USA', 'name': 'obama', 'fruits': ['apple', 'orange']}

>>> box.keys()

['money', 'nation', 'name', 'fruits']

>>> box.values()

[29393, 'USA', 'obama', ['apple', 'orange']]

>>>

分支語句

格式為:

[python] view plain copy

if expression:

blocks;

elif expression2:

blocks;

else:

blocks;

其中邏輯表達式可以加上括號(),也可以不加.但如果表達式裡面比較混亂,還是要加上括號,以提高清晰.但整體的邏輯表達式是可以不加的:

[python] view plain copy

>>> a = 3; b = 4; c = 5;

>>> if a == b and a != c:

... print"Are you sure"

... elif (a == c and b == c):

... print"All equal"

... else:

... print"I am not sure"

...

I am not sure

>>>

while循環

與Java中類似:

while expression:

blocks

[python] view plain copy

>>> i = 0;

>>> while i

... print"I am repeating";

... i += 1;

...

I am repeating

I am repeating

I am repeating

>>>

適合Python初學者的5大項目

在練手項目的選擇上,還存在疑問?不知道要從哪種項目先下手?

首先有兩點建議:

最好不要寫太應用的程序練手,要思考什麼更像是知識,老只會寫寫爬蟲是無用的,但是完全不寫也不行。

對於練手的程序,要注意簡化和抽象,但是如果簡化不得當的話,很容易看幾篇教程就被懶得下手了。

接下來就給大家介紹幾種適合新手的練手項目。

0.算法系列-排序與查找

Python寫swap很方便,就一句話(a, b = b, a),於是寫基於比較的排序能短小精悍。剛上手一門新語言練算法最合適不過了,還能順便刷題,利於找工作。簡單的練習,讓你受益無窮。

1.編譯系列

這個系列的重點就是前面說到的簡化,但是不要指望一口氣寫一個完整的C編譯器,即使只針對C一個很小的子集。所以我們需要一步一步來,寫一個計算器的解釋器是很好的開始,再進一步可以寫一個極簡語言的解釋器,譬如brainfuck。

再進一步你可以擴展已有的計算器解釋器,譬如加入聲明、賦值與運算、循環、流程控制, 構成一個簡單的LL(1)語法,然後遞歸下降分析,這就可以搞一個簡易同時又圖靈完備的玩具語言出來了。

2.分布式系統/計網系列

這系列的項目,第一步可以從寫一個簡單的HTTP客戶端開始,原因很簡單,因為HTTP大概是最簡單的應用層協議了。然後可以考慮實現一個基本的ssh,你大概每天都會用ssh,難道不想做一個自己的簡易版本嗎?

然後可以考慮分布式系統課上的經典作業,譬如寫一個簡單的RPC。可以參考Java的RPC原理以及Google的RPC框架(有Python版)。

3.作業系統系列

作業系統系列,可以嘗試寫一個簡單的存儲管理的文件系統。第一步的簡化就是用一個大的空文件作為磁碟,把對磁碟的讀寫抽象成對這個文件的讀寫。基本就是實現下inode,然後包裝成一個shell,支持下最基本的命令,新建、追加、讀寫、刪除之類的操作。這個練習最有趣也最有意義的地方在於多級索引的實現,

4.周邊系列

你也可以試試Jython,IronPython之類的,看看和CPython比如何。然後再試試Pypy,必然是一開始很高興,最後發現各種常見庫不支持,最後還是轉回CPython

好了,今天的知識就分享到這裡,歡迎關注愛編程的南風,私信關鍵詞:學習資料,獲取更多學習資源,如果文章對你有有幫助,請收藏關注,在今後與你分享更多學習python的文章。同時歡迎在下面評論區留言如何學習python。

相關焦點

  • 零基礎學習python,這幾本書少不了
    python是世界上最強大、最受歡迎的程式語言之一,即使不是程式設計師,我們平時在工作中也會經常用到,例如用python分析競品數據,做財務報表等等。目前,社會上已經掀起了一波學習python的熱潮,但是很多人由於並沒有python基礎,不知道從哪裡開始學習,小編今天整理了零基礎學習python的一些書籍,希望對大家有所幫助。1.
  • GitHub 上適合新手的開源項目(Python 篇)
    這裡是 HelloGitHub 的《GitHub 上適合新手的開源項目》系列,共計 5 篇文章:C++ 篇Python 篇我會盡力做到涵蓋每一個剛入門階段在找開源項目的小夥伴。1.1 有編程基礎:explore-python《Python 之旅》這本開源書雖然是入門級但並不是「保姆級」,如果你覺得手把手教你安裝 Python 之類是浪費時間,那麼我推薦 explore-python 這個項目。
  • Python零基礎入門教程,如何使用函數?
    可以把項目中某一功能想像成積木模型,函數是組成模型的大大小小積木塊。Python零基礎入門教程,流程控制有哪些?
  • 彩鉛測評|零基礎自學彩鉛3年,為新手精選5本入門書
    從16年開始真正自學彩鉛,到現在也有3年多了,當時作為一個沒有系統學過畫畫的新手,都靠教材書來學習。前前後後共買了40多本(包括電子書)。真正零基礎自學彩鉛畫畫的新手,最開始總是希望有人手把手教,但系統課程相對都比較貴(無論線上線下)。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    教程大合集,包含python所有就業方向,每套課程均來自市面上主流培訓機構的原版教程,價值都在數百元以上 每套課程均包含:視頻課程+課件+原始碼 重要:建議根據自己工作方向和需求,重點選擇2到3套課程學精,吃透,然後在工作 重要:零基礎小白建議先選擇零基礎全能篇的一套課程學精,然後再根據自 己的需求和規劃選擇學習其他方向課程,學完後一定要多實踐
  • 零基礎如何快速學習PS?新手學習PS該怎麼開始?
    零基礎如何快速學習PS?新手學習PS該怎麼開始?相信是很多同學在初學PS都會遇到的疑問,對於新手開始學習PS我給大家分享幾個建議.零基礎如何快速學習PS?零基礎如何快速學習PS?零基礎如何快速學習PS?
  • 關於零基礎學習Python有什麼好的建議?
    可以做自動化腳本,實現表格、文檔等快速處理。Python相對其他語言要簡單很多,入門門檻低。這些「好處」真的是太令人興奮了,所以我決定開始學Python。如何開始學習Python?並且該網站的作者翻譯了一本非常適合入門的Python學習書籍——《Think Python 》。這位作者選擇《Think Python》進行翻譯,一是因為這是他入門使用的第一本教材。二是因為它確實非常淺顯易懂,把很多概念用非常樸實的話進行了解釋,零基礎初學者學起來並沒有多少太大的障礙。
  • 素描快速入門教程之零基礎學習素描
    素描練習方法。學過繪畫的小夥伴都知道,素描是繪畫造型的基礎。那麼零基礎如何開始學素描?首要,需要搞清楚什麼是素描。更多美術教程可以搜索美術集網校下面直接進入正題初學者的素描練習:一、線條剛開始學素描的時候,狂練線條是很有用的,因為線條的美感會影響整個作品,而且在任何繪畫中線條都起著舉重若輕的作用
  • 板繪零基礎該怎麼自學?板繪新手入門教學
    板繪零基礎該怎麼自學?板繪新手入門教學!相信有很多朋友想學習漫畫卻又不知從何下手,今天微課菌給大家分享的內容就是幫助初學者解決這個問題。如何學?從哪裡開始學?這些問題都會在今天的分享中找到答案。「輕微課」的網站上非常多的繪畫教程、繪畫素材,也有專業的繪畫課程,學繪畫的小夥伴可以去上面找到很多有用的繪畫學習資源哦1、如果以後主要想板繪,完全可以零基礎學習板繪,但是在學習的過程中需要根據自己需要,補充繪畫的知識。
  • 如何快速學會Python爬蟲(入門篇)
    Python爬蟲入門二之爬蟲基礎了解3. Python爬蟲入門三之Urllib庫的基本使用4. Python爬蟲入門四之Urllib庫的高級用法5. Python爬蟲入門五之URLError異常處理6.
  • 板繪零基礎sai教程,簡單的板繪入門
    板繪零基礎sai教程,簡單的板繪入門!對每一位板繪新手來說,一個有規劃的學習順序是非常的重要,那麼零基礎學板繪究竟要怎麼做?每一步做什麼呢?下面就針對零基礎學板繪給出大家詳細的學習步驟,逐步練習方可進步哦!
  • AutoCAD2021定距等分2, cad零基礎入門教程
    AutoCAD2021定距等分2, cad零基礎入門教程 2020-11-26 15
  • 新手學漫畫怎麼入門?漫畫初學入門教程
    新手學漫畫怎麼入門?漫畫初學入門教程!喜歡畫畫的小白們還在入坑的邊緣來回徘徊猶豫就會敗北?微課菌經常能在私信中看到這樣的字眼:「初學者如何學畫」、「怎樣入門」「學漫畫入門怎麼學習」等相關問題。所以今天出一期漫畫新手常見問題解答特輯,給想學漫畫的萌新解除一些不必要的疑惑!
  • 《任天堂明星大亂鬥SP》極簡新手快速入門教程
    《任天堂明星大亂鬥SP》極簡新手快速入門教程 2020-02-25 10:27  遊戲時光VGtime
  • Python入門指南教程:10天學會使用python做爬蟲!免費領取!
    從去年開始,公眾號鋪天蓋地的python廣告,讓很多行外人也知道了python這個東西,python語言開始變得無所不能,剛畢業的新手用python能做什麼?前些天我弟弟突然聊天,推薦我學python,我把聊天截圖給了學計算機的楊先生。楊先生的解釋:python和C語言、java一樣是一門程式語言。學會了或許可以三分鐘做好excel的數據分析。但是,為了寫這個三分鐘的程序,你可能要花一個星期的時間。
  • 零基礎學習Python難不難?
    常見的一種應用情形是,使用python快速生成程序的原型(有時甚至是程序的最終界面),然後對其中有特別要求的部分,用更合適的語言改寫。比如3D遊戲中的圖形渲染模塊,速度要求非常高,就可以用C++重寫。至於學習Python難不難,其實不會難,代碼少而且簡單粗暴,至於上手快慢這個就因人而異。
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    Python是近幾年比較火的程式語言之一,因為人工智慧的火爆,讓很多人都想從事python開發。很多零基礎學員在學習python的時候都會走一些彎路,下面小編就為大家分享python學習路線圖,幫助零基礎學員在學習的時候少走彎路。 很多人都在問Python學習步驟應該如何安排?
  • Python爬蟲入門教程:超級簡單的Python爬蟲教程
    這是一篇詳細介紹 Python 爬蟲入門的教程,從實戰出發,適合初學者。讀者只需在閱讀過程緊跟文章思路,理清相應的實現代碼,30 分鐘即可學會編寫簡單的 Python 爬蟲。這篇 Python 爬蟲教程主要講解以下 5 部分內容:了解網頁;使用 requests 庫抓取網站數據;
  • 零基礎看得懂的C語言入門教程
    一、前言 距離上一次編寫C語言的教程是5年前了(2015年),由於自己是從初一時開始學習編程,深知學習編程的痛苦。當時正在念大學的我想著分享自己自學編程的經驗,搭建了一個社區(社區之後自己維護太懶,維護了一年不到關閉了)第一次編寫了C語言教程,分享自己的學習經驗。社區關閉後,於2017年上傳至了CSDN留存至今。 現在回過頭查看當時自己編寫的教程,由於當時技術的淺薄,編寫的教程還是存在很多的不足,故有了一個重新編寫C語言教程的想法。
  • python爬蟲100個入門項目
    1淘寶模擬登錄2天貓商品數據爬蟲3爬取淘寶我已購買的寶貝數據4每天不同時間段通過微信發消息提醒女友5爬取5K解析度超清唯美壁紙爬蟲教程,帶你從零到一14豆瓣讀書的爬蟲15鏈家網和貝殼網房價爬蟲16雪球網股票超級爬蟲17Python爬蟲,京東自動登錄,在線搶購商品18cnblog19caoliu