一閃一閃亮晶晶,滿天都是小星星,掛在天上放光明,好像許多小眼睛。不要問我為什么喜歡這首歌,我不會告訴你是因為有人用口琴吹給我聽。
一、Python學習文檔與資料
一般來說文檔的資料總是最權威,最全面的,可是很少有人能認真的從頭到尾把文檔或者幫助手冊看一遍,畢竟太枯燥了,就像java api 文檔一樣,正確的用法當然是把它當做一個工具書,想到用什么,就去查,當然最好還是能大概看一遍,這樣心中有個印象找東西也方便。
最權威的當然是官方文檔,地址在:https://docs.python.org/3/。推薦閱讀英文的,但是如果真的想看中文的也是有地方的:http://python.usyiyi.cn/translate/python_352/index.html。如果想看書,那就推薦一本我覺得比較適合的書:《Python編程快速上手》,這本書真的很不錯。
當然按照我博客的順序閱讀也是可以的,這也算是我學習過程。
二、Python基礎知識
雖然學習東西應該一步一步來,但是很多知識到深了都會相互關聯的,所以先從表象簡單介紹下所有的知識點,然后依次深入,本篇只是概括。
2.1 全局函數(內置函數)
我喜歡叫它全局函數,因為可以在任何地方調用,從這個角度來看,Python和JavaScript還是有些相似的,都有一些全局的函數。Python也有很多直接使用方法,例如可以直接寫print(1)來在控制台打印一個1。
2.2 基本數據類型
Python不像Java是強類型語言那樣要在使用的時候就要確定變量類型,這點依然和js比較相似,Python數據類型分為,整型、浮點型、字符串、布爾型、對象。
2.2.1 整型
Python的整型和Java一樣也有一樣的運算。
1232,0,-10,0x22
像上面那樣的都是整數,十六進制也是以0x開頭。
2.2.2 浮點型
浮點型和js語言相似。
3.17,-12.9,2.3e10,6.2e-8
浮點型都是帶小數的也支持科學計數法。
2.2.3 字符串
字符串也和js相似,可以用單引號或者雙引號或者三引號(三個單引號或三個多引號)引起來。當然字符串本質上也是字符的不可變數組。
'hello',"yiwangzhibujian"
看個人習慣,單雙引號都可以使用。
2.2.4 布爾型
Python的布爾型寫法比較特殊,為True和False,首字母分別要大寫,這一點感覺很奇怪,然后布爾型的與或非運算符則為,and、or、not
2.2.5 None值
這是一個不代表任何值的值
2.3 變量
不需要提前定義,也不需要指定類型。就是這么方便。當然變量名也是有要求的:
- 只能是一個詞
- 只能包含字母數字和下划線
- 不能以數字開頭
name='yiwangzhibujian' print('hello',name) ========控制台輸出======== hello yiwangzhibujian
不用定義比js用起來還爽。
2.3 類和對象
Python中也是有類和對象的,熟悉Java的都了解,學習Java的大部分時間都是在學習類的使用方法。
2.3.1 list
列表就是java中的List,但是表示形式有點不一樣,用中括號引起來的一系列元素:
[1,2,3,4,5] ['yiwangzhibujian','laizhezhikezhui',35]
基本方法也都和Java相似,后續會詳細講解。
2.3.2 tuple
不可變的list,使用一對小括號:
('hello','yiwangzhibujian')
操作和list一樣,除了不能對其進行修改。
2.3.3 range
range是一個特殊的對象,簡單來說就是一個數字序列,一般用來遍歷,例如range(0,10)即代表0,1,2,3,4,5,6,7,8,9的序列,使用起來很方便。
2.3.4 set
不可重復的集合和Java的Set一個性質。除了使用構造方法以外,也可以使用大括號來表現:
{'hello','yiwangzhibujian'}
還有一種不可變的set叫做frozenset,就像list和tuple的關系一樣,不再單獨介紹。
2.3.5 dict
字典表就是Java中的Map,是鍵值對的集合,表現形式和json很像,都是大括號括起來的鍵值對:
{'name':'yiwangzhibujian','num':'3','sex':'no'}
使用方法依然和Map相似,后續會進行詳細介紹。
2.3.6 其他對象
像IO、時間等對象會在后續進行學習,亦可以自己參考文檔學習里面的基本用法。
2.4 控制流
說到控制流就要了解Python的一大特點,Python的作用域不是以兩個大括號引起來,而是使用統一的縮進來表示,在要縮進的地方加上冒號表示一下,雖然覺得不適應,但是習慣就好。例如:
if True: print('true') else: print('false')
基本用法和Java一樣,注意格式即可。
2.4.1 分支
分支是最常見的控制流,通過boolean型的表達式來判斷程序的走向。
2.4.2 循環
熟悉while和for即可,同樣支持continue和break,while和for的示例
2.5 函數或方法
使用def來定義,就像js使用function來定義一樣,基本示例如下:
def my_add(x,y): return x+y
這個是很重要的知識點,后面也會進行詳解。
2.6 作用域
作用域簡單的分為全局作用域和局部作用域,基本使用規則和Java一樣。
2.7 異常處理
Python也是有異常處理的,使用try和exception來實現。一個下面給出一個簡單的示例,如果不進行異常捕獲,異常會被拋出程序會停止運行:
print(1/0)
print(1/1) =======控制台輸出======= Traceback (most recent call last): File "D:\workspace\eclipse_neon\python-hello\src\test.py", line 7, in <module> 1/0 ZeroDivisionError: division by zero
如果進行捕獲:
try: print(1/0) except ZeroDivisionError: print('除數不能為0') print(1/1) =========控制台輸出========= 除數不能為0 1.0
使用的方法和Java一樣,該捕獲的就捕獲,不該捕獲的就拋出。
2.8 注釋和縮進
所有以#開頭的都會被當做注釋,多行注釋可以利用三引號來實現:
#這是一個注釋 """ 這是多行注釋 這是多行注釋 """
寫程序多用注釋,不然一段時間后會忘記當初寫這個是干嘛用的。
2.9 模塊
為了方便組織不同功能的代碼,都是用模塊來組織,引用的地方也使用import來引入,例如:
import sys
簡單介紹了下,基礎知識只是為了了解這個語言的大概情況,以后會有詳細說明的。
