python學習筆記(一)

python簡介

     python能幹的事:web開發,自動化運維,自動化測試,大數據分析,爬蟲等、許多大網站都在應用。

     排名:上升到了第5名

     python用c編寫,他的種類很多,但常用的就是cpython,linux默認安裝的就是這個。

python安裝

     windows:直接去python官網下載exe下一步,下一步,完成。

     centos7:自帶python2.7

python升級

     關鍵就是這個,以前咱們用的都是centos6.5,默認的是python2.6,要想使用最新版,就要升級到2.7,自己編譯吧。

     1.安裝gcc      #yum install gcc

     2.下載源碼包     python.org去下載源碼

     3.編譯安裝     ./configurre && make all && make install

     4.把2.7改成默認    默認的是/usr/bin/python ,給他重命名/usr/bin/python2.6,然後做個軟連接ln -s 

     5.yum是依賴python的,默認的變成2.7了,但他是用2.6寫的,所以用的時候會報異常,所以修改一下配置文件

          #vim /usr/bin/yum,將頭部修改爲python2.6


開始學了

一、寫個代碼

     1.重要的不是寫代碼出結果,出了hello,world就完事了,要知道他的執行過程,python有自己的解釋器(虛擬機)

          先把代碼文件打開,做詞法分析,然後語法分析,沒有問題了,編譯,加載進內存,執行出結果

     2.他有內置模塊,比如sys,在腳本里可以調用,還有開源模塊,也可以自定義模塊。


二、解釋器

     1.上面提到解釋器,那個是啥?就是這一行#!/usr/bin/env python,這不是linux的python環境嗎,告訴他這裏是python的世界。

     2.當然沒有這行也行,但是運行的時候要聲明一下,#python   xx.py

     3.必須要py結尾嗎?肯定不是,叫什麼都行,你明白,但是別人明白嗎?


三、編碼

     1.ascII碼,這太古老了,誰讓計算機是老外發明的,全是爲了英文服務的,所以他只能裝下8位的英文00000000~11111111,中文咋辦?

      2.Unicode編碼     這下能識別中文了,但是有最低消費,16位起,內存消費的起嗎,太佔地方了,所以,要改進一下

      3.UTF-8     linux上用的最多了吧,有幾位佔幾位,多好。

     4.以utf-8方式來讀代碼,就沒有亂碼啦:

          #!/usr/bin/env python

          #-*- coding:utf-8 -*-


四、註釋

     1.單行註釋  和shell一樣開頭用#,後面的就不管用啦

     2.多行註釋  '''多行內容'''   三引號裏面的就無效啦。

               PS:當這個三引號在print後時,她是可以多行打印的哦,那就不是註釋啦。 

     

五、腳本傳參

     1.就是把用戶輸入的東西,讓腳本捕獲,跟shell的$1,$2類似

     2.還有上面說的python的三個模塊,系統標準模塊,開源的和自定義的,也是幹這個用的。


六、pyc

     1.爲什麼要這個東西 ?它要編譯成電腦認識語言,執行起來更快呀。要不每次都要翻譯一下,多費時間

     2.什麼時候會產生pyc文件?當你去調用另一個腳本的時候,他自動變成pyc了,就是編譯後了

     3.pyc看的懂嗎?肉眼看不懂,機器能看懂。

     4.pyc還能變回原來的py嗎?需要軟件協助,再加密也能給它打回原形。

     5.pyc可以移植到別的平臺嗎?當然可以

     6.py和pyc功能一樣,先找pyc。


七、變量

     1.變量值存在哪?內存

     2.變量名有什麼規定?字母,數字,下劃線的組合,開頭不能是字母;

     3.什麼不能當變量名?pythong規定好的那些del,global啥的,用IDE軟件會提示的啦;

     4.把變量2賦值給了變量1的名稱,是同一個內存地址嗎?雖然字符串賦值是重新開闢內存空間,但是他相當於把指針賦給了他,所以是同一個地址;

     5、字符串+號越多,開闢的內存空間越多

  


八、讓用戶輸入

     1.python讓用戶輸入,是用raw_input(),會有交互模式;

     2.讓輸入密碼呢?還不能看見密碼?那就得調用一個模塊了,getpass.getpass(),和輸入一樣,括號裏面可以寫字符串:’輸入用戶名‘等等;

     3.其他的呢?還不知道


九、流程控制和縮進

     1.就是shell的if語句,和縮進一起使用,格式很重要哦

     2.可以嵌套嗎?shell都行,python能不行嗎

     3.if裏的變量,外面能使用嗎?不能,外面的能在裏面用,反正不行;

  

十、數據類型

     1.數字都有哪些分類?int()整形,自己判斷長短、float()浮點型,就是小數、complex()複數,幾乎用不到;

     2.布爾值true和false用在哪?判斷,循環用的最多;

     3.怎麼轉換成字符串?str()

     4.修改字符串還是那個地址空間嗎?由於字符串是萬惡的+號把字符數組拼接起來的,所以要在開闢一塊空間才能夠地方;

     5.print的時候能不用逗號拼接嗎?可以用字符串格式化,引號裏直接用%s(字符),%d(整數),%f(浮點)引用;

     6.strip()能移除空白,也能移除換行符;

     7.python的索引是從0開始,不是1哦;

     8.切片的時候,帶:時,是包括左邊,但不包括右邊,也可以從右邊開始,那就是負數了,如mystr[-1]就是最後一位,字符串,元組,列表都可用;

     9.列表不可更改

     10.continue是跳出本次循環,break是跳出所有循環;


十一、運算

     1.運算符

x+yx-y

加、減,“+”號可重載爲連接符

x*yx**yx/yx%y

相乘、求平方、相除、求餘,“*”號可重載爲重複,“%”號可重載爲格式化

<<=>>===<>!=

比較運算符

+=-=*=/=%=**=<<=>>=&=^=|=

自變運算符

x|y

按位或

x^y

按位異或

x&y

按位與

~x

按位取反

x<<x>>y

x向左或向右移y

is, is not

等同測試

in, not in

是否爲成員測試

orandnot

邏輯運算符

x[i]x[i:j]x.yx(...)

索引,分片,限定引用,函數調用

(...)[...]{...}'...'

元組,列表,字典,轉化爲字符串

     2.位運算

          按位與運算&,兩個數都寫成0101樣二進制比對,只有都是1才得1,   或運算,就是有1寫1,沒1寫0.    異或:相同取0,不通取1

     3.in,我在不在你的裏面,返回布爾值

     4.is,看是不是引用一個對象,也就是說是不是一個內存地址,看地址空間呀,用id()

     5.+=,前面的數加後面的數,再賦值給前面的值



十二、文本操作

     1.主要用r+,用於文件讀寫;

     2.file_obj.seek(0)跳到文件開頭

     3.file_obj.write()全部寫入

     4.file_obj.writeline()一行一行寫入

     5.file_obj.close()關閉文件


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