Python學習筆記-第一章 基礎知識


心血來潮想重拾編程,原來學的那點C語言早就還給老師了,覺得還是學個實用又簡單的,於是選了Python,按照《Python基礎教程第二版》學了兩章,書裏面用的python版本是2.5.x,我下的是3.4.2,發現python在3.0以後的版本差異還是挺大的,遂重開博客,記錄一下吧。

第一章 基礎知識

1.1 安裝

官網下載安裝什麼的就不說了,過程中沒有遇到任何問題,一切順利。WIN7 64位+Python IDLE。話說這個截止到最新版本好像還是不會顯示行號?只能通過查找行號來看,不是很方便。

1.2 交互式解釋器

在>>>後輸入你的代碼就好了,不會的F1,Python一行就是結束,不需要分號

print "hello,world!"

居然第一步就出現了紅叉叉!驚訝好吧,記住嘍,新的print格式是醬紫滴:

print("hello,world!") 

say過hello了,算是進入python世界了吧。


1.3 算法是什麼

計算機程序設計就是要告訴計算機做什麼,算法就是具體的細節,類似於食譜的東西,教會計算機每一步怎麼做。

它包括要素(對象,物品)及指令(語句)。

print("hello,world!") #給我顯示"hello,world!"

1.4 數字和表達式

它是個強大的計算器,常用的加減乘除都可以直接輸入,它能識別的。

新版本已經可以自動顯示浮點數了,試驗了一下,最高顯示到小數點後16位。如果想要整除的話,就要用//了。

1/2 #顯示結果跟1.0/2.0是一樣的咯,都是0.5,很聰明吧。
1//2 #結果是0,
1.0//2.0 #結果是0.0

+,-,*,/,加減乘除就是常見符號,此外還有

%:取餘運算符。 X%Y的結果爲X除以Y的餘數

**:冪運算符,乘方。優先級高於取反。如果要計算(-3)**2,需要加括號。

1.4.1 長整型數

新版本在長整型末尾已經不會加L了。直接顯示數字。

1.4.2 十六進制和八進制

0xAF  #這個十六進制數的轉換還是可以使用,結果顯示正確的175
>>> 010
SyntaxError: invalid token
0o10  #這樣纔會出現正確的結果8,注意第2位是字母O哦,但是嘗試了0o20又會報錯,搞不清楚python的邏輯<img alt="抓狂" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/crazy.gif" />
其實有更簡單的方法來實現不同進制到10進制數的轉換

int('X',Y),把X換成你想轉換的數字,Y是你用的這個數字的進制

比如想把八進制數字010轉換成10進制,

>>> int('010',8) #正確的數字8就乖乖的出來啦!
1.5 變量

就是用來代表這個值的名字,X,Y之類的。

使用變量之前要先賦值,就是介紹一下這是個什麼東東,不然誰知道你X是代表染色體還是未知數啊。

第一步X=3,第二步X*2,電腦纔會乖乖顯示6。

1.6 語句

語句就是告訴計算機要做什麼,

2*2跟print 2*2的結果並沒有什麼不同。

1.7 獲取用戶輸入

input函數

新版本中必須強調變量爲數值型纔會進行運算,前面可以int或float等。

x=int(input("x:"))  #電腦會提示你輸入X的值
y=int(input("y:"))  #電腦會提示你輸入Y的值
print(x*y)    #這裏的結果就是你輸入兩個值的乘積。

1.8 函數

系統內自定義了一些小程序,比如pow代替冪運算,

使用2**3,跟用pow(2,3)是一樣的結果。

其它函數:

abs:絕對值,abs(-10)=10

round:四捨五入,round (1/2)顯示結果爲0。新版本做了改變的是(1.0/2.0)結果會返回0,所有結果正好爲0.5的會自動捨去,如果比0.5大一點,哪怕是0.50000(無限個0)1,都會五入。

1.9 模塊

導入到python以加強功能的擴展,需要用import命令來導入,然後按照模塊.函數的格式來使用。

import math
math.floor(32.9) #floor表示取整,所以結果顯示32.0,年齡一般都是整數,
int(math.floor(32.9)) #顯示結果32
不希望每次調用函數時都要寫上模塊名,可以用from模塊import函數來調用,這種方式可能導致類命名衝突,儘量不要使用。

from math import sqrt
sqrt(9) #結果顯示3.0

1.9.1 cmath和複數

cmath表示複數,可以計算虛數。

import cmath
cmath.sqrt(-1) #顯示結果1j,即虛數。

1.10 保存並執行程序

用file-new window打開一個數的編輯窗口,即可以實現編寫完後統一運行。保存爲*.py後按F5運行。

name=input("what is your name?") #新版本已沒有raw_input,直接用input
print("hello,"+name+"!") 

註釋: #後的文字表示註釋的文字

1.11 字符串

1.11.1 單雙引號字符串和轉義引號

單引號跟雙引號顯示結果沒有區別,在某些場合下可能會出現識別不出來,如'Let's go',電腦不知道該如何處理了,因爲出現了三個單引號,用雙引號可以避免這種誤解。

此外還可以使用轉義符反斜線(\)。

‘let\'s go!' #\表示後面的是一個字符。
轉義符如果用在句末,會忽略換行符

>>>print("hello,\
world!") 

Hello world!


1.11.2 拼接字符串

用一個接另一個的方式寫兩個字符串,python會自動拼接它們。

“Let's say" '"hello,world!"'#會輸出'Let\'s say "hello world!"'
此外還可以用+,像加法運算一樣使用

x="hello,"
y="world!"
x+y           #結果顯示'hello,world!'

1.11.3 字符串表示str和repr

str函數,會把值轉換成合理形式的字符串。(即不顯示引號)

repr會創建一個字符串,以python表達式的形式來表示值。

>>> print(repr("hello,world!"))      
'hello,world!'
>>> print(repr(10000L))  #新版本已不用在長整型後加L,加了反而會報錯
SyntaxError: invalid syntax
>>> print(str("hello,world"))
hello,world

1.11.5 長字符串、原始字符串和Unicode

如果要寫一個非常長的字符串,要跨多行,就要用三個引號代替普通引號,三個單引號或者三個雙引號都可以('''或"""),並且不需要反斜線進行轉義。

原始字符串的使用:

如換行符寫成\n,放於字符串中,會有換行的作用,但是會出現歧義,比如C:\nowhere,可以寫成c:\\nowhere來避免,但是如果是長路徑呢?就需要寫很多\了.

原始字符串以r開頭,

>>> print(r'let\'s go!')
let\'s go

最後一個字符(位於結束引號前的那個)不是能是反斜線。
Unicode字符串,使用u前綴,跟r用法一樣。新版本中,所有字符串都是unicode字符串。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章