python有段時間沒用了,實在是慚愧啊,屌絲今天決定開始對python基礎知識重新進行總結,以慰自心。
一.python概念
Python是著名的“龜叔”Guido van Rossum在1989年聖誕節期間,爲了打發無聊的聖誕節而編寫的一個編程語言。
python定位“優雅”,“簡單”,“明確”
二.python安裝
略
三.python基礎
1.輸入輸出
輸入輸出input/output,簡稱I/O
輸出:
print 語句也可以跟上多個字符串,用逗號“,”隔開,就可以連成一串輸出,逗號在print語句裏面看做空格,print可以輸出整數和進行運算輸出結果
輸入:
raw_input:輸入值並存放到變量裏面
變量相信不需要多說了
2.數據類型
整數:
Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1
,100
,-8080
,0
,等等。
計算機由於使用二進制,所以,有時候用十六進制表示整數比較方便,十六進制用0x
前綴和0-9,a-f表示,例如:0xff00
,0xa5b4c3d2
,等等。
浮點數:
浮點數也就是小數,之所以稱爲浮點數,是因爲按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是相等的。浮點數可以用數學寫法,如1.23
,3.14
,-9.01
,等等。但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9
,或者12.3e8
,0.000012可以寫成1.2e-5
,等等。
整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四捨五入的誤差。
字符串:
字符串是以''或""括起來的任意文本,比如'abc'
,"xyz"
等等。請注意,''或""本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'
只有a
,b
,c
這3個字符。如果'
本身也是一個字符,那就可以用""括起來,比如"I'm OK"
包含的字符是I
,'
,m
,空格,O
,K
這6個字符。
如果字符串內部既包含'又包含"怎麼辦?可以用轉義字符\來標識,比如:轉義字符\可以轉義很多字符,比如\n表示換行,\t表示製表符,字符\本身也要轉義,所以\\表示的字符就是\
如果字符串裏面有很多字符都需要轉義,就需要加很多\,爲了簡化,Python還允許用r''表示''內部的字符串默認不轉義
如果字符串內部有很多換行,用\n寫在一行裏不好閱讀,爲了簡化,Python允許用'''...'''的格式表示多行內容。
布爾值:
布爾值和布爾代數的表示一致。布爾值只有True或者False兩種值,python可以用True 或 False表示布爾值,注意大小寫,也可以通過布爾運算,比如:
>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False
布爾值可以用and or not 來運算,and是與運算,都是True纔會是True,or是或運算,有一個True就爲True,not是單目運算符,表示非運算True變False,False變True。
布爾值一般用在條件判斷中
空值:
空值是Python裏一個特殊的值,用None表示。None不能理解爲0,因爲0是有意義的,而None是一個特殊的空值。
python還有列表,元組,字典,還有自定義數據類型,後面一一整理道來
變量:
大小寫英文字母,數字,_下劃線且不能以數字開頭,可以表示各種數據類型
動態語言:變量本身類型不固定的稱爲動態語言,反之就是靜態語言,如java,聲明時必須指定類型
a='aaa'
表示在內存中創建aaa字符串,在內存中創建a變量,並將a變量指向aaa
a=b
表示將a變量指向b變量的值
常量:
不能變的變量,例如PI,python中沒有機制表示常量不能變,一般習慣用大寫字母來表示常量
3.字符串和編碼
字符串是一種數據類型,字符串有一個問題就是編碼問題,計算機只能處理數字,要處理文本,必須將文本用數字來表示,這樣就有了編碼,而計算機是由美國人發明的,英文可以用一個字節表示,最早只有127個字符被編碼到計算機,這個編碼表稱爲ASCII碼,但處理中文一個字節不夠,至少需要兩個字節,而且還不能和ASCII碼衝突,所以,中國製定了GB2312碼
全世界語言那麼多,各國有各國的標準,不可避免的會有衝突,unicode就這樣產生了,unicode通常是兩個字節,非常偏僻的字才用更多字節,ASCII碼前面補0就是unicode碼了
用unicode碼也有問題,雖然統一用unicode編碼亂碼問題解決了,但是佔用空間大了,這樣就有了可變長編碼utf-8
utf-8將一個unicode字符根據不同數字大小編碼成1-6個字節,常用的英文字母編碼爲一個字節,漢字通常三個字節,很生僻的字符纔會編碼成4-6個字節,如果用於大量英文,utf-8可以節省很多空間。UTF-8還一個好處就是ASCII碼實際可以看做utf-8的一部分,大量支持ASCII碼的歷史遺留軟件可以在utf-8編碼下繼續工作。
搞清楚了ASCII、Unicode和UTF-8的關係,我們就可以總結一下現在計算機系統通用的字符編碼工作方式:
在計算機內存中,統一使用Unicode編碼,當需要保存到硬盤或者需要傳輸的時候,就轉換爲UTF-8編碼。
用記事本編輯的時候,從文件讀取的UTF-8字符被轉換爲Unicode字符到內存裏,編輯完成後,保存的時候再把Unicode轉換爲UTF-8保存到文件
瀏覽網頁的時候,服務器會把動態生成的Unicode內容轉換爲UTF-8再傳輸到瀏覽器,所以你看到很多網頁的源碼上會有類似<meta charset="UTF-8" />的信息,表示該網頁正是用的UTF-8編碼。
4.python字符串
python誕生比unicode早,所以最早的python只支持ASCII碼,字母和數字對應,python提供了ord()和chr()函數將字母和相應的數字兌換,python後來添加了對unicode支持,unicode字符串表示u'...','...'可以看做utf-8編碼或者ASCII編碼,但是u'...'只能看做unicode編碼,英文表示的unicode編碼和utf-8編碼一樣,但是佔用的空間不同,而中文字符轉換後一個unicode字符將變爲三個utf-8字符,len()函數返回字符串長度,將utf-8字符轉換爲unicode字符,用decode('utf-8'),python源碼也是一個文本文件,一般保存爲utf-8,#coding utf-8
5.格式化
最常見的是輸出格式化的字符串,python的格式化和c語言一致,%s用字符串替換,%d用整數替換,如果只有一個%?,括號可以省略,
常見的佔位符:
%s 字符串
%d 整數
%f 浮點數
%x 十六進制整數
記住:格式化整數和浮點數可以指定是否補0和整數和小數的位數
>>> '%2d-%02d' % (3, 1) ' 3-01' >>> '%.2f' % 3.1415926 '3.14'
如果你不確定用什麼,%s可以將任何數據類型轉換爲字符串
>>> 'Age: %s. Gender: %s' % (25, True) 'Age: 25. Gender: True'
對於unicode字符,用法完全一樣,但最好確保替換的字符串也是unicode字符串
>>> u'Hi, %s' % u'Michael' u'Hi, Michael'
如果字符串的%也是一個普通字符,這就需要轉義,%%表示%
待續。。。