python簡介和入門

來源:互聯網
上載者:User

標籤:檔案   glob   文法   代碼   目錄   字元編碼   ...   方便   str   

一、什麼是python?

  python是一種物件導向、解釋型的電腦語言,它的特點是文法簡潔、優雅、簡單易學。

二、解釋型語言和編譯型語言

編譯型語言——就是先把寫好的程式翻譯成電腦語言然後執行,就是所謂的一次編譯到處運行,比如c、c++就是編譯型語言,這樣的語言特點是運行速度快,但是需要事先把程式編譯好才可以。

解釋型語言——就是程式在啟動並執行時候,通過一個解譯器,把代碼一句一句的翻譯成電腦語言然後運行,也就是你寫好代碼之後直接就能運行,比如說python、shell、ruby、java、perl等等都是解釋型語言,當然這樣的語言由於原理不一樣,執行速度並沒有編譯型語言快。

 三、選擇python2.x還是python3.x?

  現在python有2.x版本和python3.x版本,在選擇版本這個事情上,很多人都是比較糾結的。到底選擇2還是3,因為2和3代碼是不怎麼相容的,現在比較常用的是2.7版本,2.7版本其實是一個過渡版本,在2008年的時候推出了3.0版本,由於3.0版本改動比較大,和2.x的版本不相容,很多用python2的公司重寫代碼太費勁了,所以在同年又發行了2.6過渡版本的python,加入了一些3.0的特性,在2010年的時候發行了2.7版本,也是一個過渡版本,在2014年的時候python官方宣布2.7支援到2020年,以後不會再發行2.8版本,儘快把程式遷移到3.x版本。python2的預設字元集是ASCII編碼,寫中文會報錯,字元編碼一直是讓程式員頭疼的一件事情,python2在處理中文的時候的確比較頭疼,在python3.x版本中預設字元集是utf-8,省了很多事,so,還是推薦使用python3.x版本。

四、字元集是個什麼鬼?

  說字元集之前,先說下2進位的故事,電腦比較傻只認識2進位,什麼是2進位,就是0,1,電腦只認識這倆數字,其他的都不認識,這樣的0或1為一"位",規定8位為一個位元組,位元組呢是表示現實世界字元的最基本的一個單元,比如說一個英文字母,一個位元組是8位,也就是最多能存8個0或者1,8位二進位最大值是255。

  既然電腦只認識0和1,那怎麼表示這些英文字母、以及漢字、標點符號呢?電腦是老美這幫哥們發明的,然後他們就創造了ASCII碼這個東西,這個東西是幹嘛的呢,就是用數字來代表這些符號,遇到這些數字就是知道代表的是啥了,然後數字再轉化成二進位,這樣電腦就能存這些英文符號的,老美這幫哥們,用127個數字,代表了所有的英文大小寫字母和符號,這就是ASCII碼錶,http://www.96yx.com/tool/ASC2.htm。那麼問題來了,電腦認識老美這幫哥們的英文了,那咱們中國同胞怎麼辦?漢字博大精深,還有什麼少數民族的字,怎麼辦,我們也要用電腦啊!但是前面已經說了,一個位元組最大存的數字是255,老美這幫哥們已經用了127個了,剩下的不夠啊,漢字加上少數民族的文字最起碼有好幾萬,這可怎麼辦呢,中國人就是聰明,那咱就少用點,取了127後面的一些數字,具體用的多少,我也記不得了,只要遇到這個區間的數字,就知道是中文,去另一個編碼錶裡面找,這個裡面存的都是中文,還有其他國家的檔案,比如說日文,韓文等等,這個叫做gb2312編碼,它收錄了6000+個漢字,這樣的話,就可以解決電腦不認識中文的問題了。但是中國文化,博大精深,豈止有6000+個漢字,然後又有了gbk、Unicode、UTF-8等等編碼,Unicode編碼也叫萬國碼,哪個國家的文字都適用,但是它不管你是一個英文字母,還是一個漢字都是佔2個位元組大小,原來ASCII碼一個英文字母就佔一個位元組,這一下變大了,原來100G的東西,現在可能得200G才存的下,這可不行,然後就又出現了UTF-8字元集,它也屬於Unicode,和Unicode的不一樣的是,它對Unicode做了壓縮,比如說英文字母的還是佔一個位元組,這樣的話,就節省的很多的空間,這就是為啥現在大家都用utf8的原因。

五、python安裝

  要注意的就是,如果想使用python命令需要把python的安裝目錄加到環境變數中,windows下還要把python安裝目錄下的scripts目錄加入到環境變數中,因為一些python的可執行命令,比如說pip,是安裝在這個目錄下的,linux下因為預設帶python了,如果要升級版本的,要先把系統內建的python改名或者卸載掉,再安裝你要的python版本,centos下由於yum依賴內建的python2.6,所有不能卸載,修改下yum指令碼裡面的python環境變數位置即可。

六、運行python代碼

Windows下,安裝好python並且配置好環境變數之後,直接在命令列裡面輸入python就可以進入python互動式命令列了,linux下面也是一樣(如)

安裝完python之後Python也內建了一個idle(如),也就是可以在它裡面寫代碼,但是那個比較不好用,這裡就不贅述了。

 

但是這樣寫代碼實在是太不方便了,怎麼把代碼都寫好了,然後一起運行呢,就是把代碼都寫到檔案裡面,然後運行檔案,以.py結尾的就是python檔案,有很多python的編輯器,比如說pycharm、sublime  text、notepad++等等,都可以使用,使用編輯器有代碼提示,可以很方便調試和運行,這裡我推薦使用pycharm。建立一個python檔案,然後寫上代碼,運行即可,如:

 

在linux下運行也是如此,和Windows下有一點不一樣的是,liunx下可以直接運行python檔案,前面不需要加python命令,加上執行許可權即可,但是需要在python檔案最前面指定python解譯器,加上python解譯器的路徑即可,有兩種寫法,代碼看下面,兩種的區別是第一種是直接去你指定的目錄下找python解譯器,第二種是在自己配置的環境變數中去找python解譯器,現在建立一個test.py的python檔案

    #!/usr/bin/python #這種寫法是去/usr/bin目錄下去找python的解譯器,如果在這個目錄下沒有python解譯器或者python解譯器在別的目錄下,就會報錯了    print(‘Hello world!‘)        #!/usr/bin/env python#這種寫法是去環境變數中找你配置的python解譯器目錄,你配置在哪個目錄下,它就去哪個目錄下找python解譯器    print(‘Hello world!‘)
    下面是linux下的運行    [[email protected] ~]# chmod +x test.py    [[email protected] ~]# ./test.py    Hello world!

七、變數

  變數是幹嘛的呢?說的簡單點,就是存東西,供後面來用的。python中定義變數很簡單,一個等號搞定,也不需要指定資料類型,直接定義就好,值得一提的是python變數裡面存的是記憶體位址,也就是這個值存在記憶體裡面的哪個地方,如果再把這個變數賦值給另一個變數的話,新的變數通過之前那個變數知道那個變數值的記憶體位址存起來,而不是指向的之前那個變數。代碼如下:

        name = ‘sriba‘        new_name = name #new_name存的也是sriba的記憶體位址

變數的定義規則:

  變數名要見名知意,不能瞎寫,瞎寫到後面自己都看不懂那個變數是幹啥的,不要用拼音,那樣很low,更不要用中文當變數名,那是2b程式員乾的事,但是python的確可以用中文當變數名!

        變數名只能是 字母、數字或底線的任意組合
        變數名的第一個字元不能是數字
        以下關鍵字不能聲明為變數名

     [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘,      ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘,      ‘try‘, ‘while‘, ‘with‘, ‘yield‘]

八、python中的單引號、雙引號和三引號

  python中定義變數的時候字串都用用引號括起來,單引號和雙引號沒有區別,用啥都行,如果說這個字串裡面有單引號的話,那你外面就用雙引號,裡面有雙引號的話,外面就用單引號,如果既有單又有雙,那麼用三引號,三引號也可以多行注釋代碼,單行注釋,使用#,代碼如下:

    msg = "I‘m Sriba." #有單引號,所以外面用雙引號    info = ‘Python comments ues "#".‘ ##有雙引號,所以外面用單引號    new_msg = ‘‘‘I‘m Sriba, i love "Python".‘‘‘#有雙引號和雙引號,所以外面用三引號    ‘‘‘    上面的代碼是說明單引號、雙引號和三引號的    這一段是注釋,說明三引號也有多行注釋的功能    ‘‘‘

九、輸入&輸出

  python怎麼來接收使用者輸入呢,使用input函數,python2中使用raw_input,接收的是一個字串,輸出呢,第一個程式已經寫的使用print輸出,代碼入下:

        name=input(‘Please enter your name:‘) #把接收到的值賦給name變數        print(name)#輸出接收到的輸入

  input在接收輸入的時候,是可以看到你輸入的值的,如果是輸入密碼這樣的呢,不想讓別人看到你的密碼,怎麼辦呢,就需要用到一個標準庫getpass,什麼是標準庫呢,就是不需要你再去安裝,裝完python就有的庫,就是標準庫,getpass就是一個標準庫,匯入進來之後,直接使用getpass.getpass方法就可以在輸入的時候,不回顯了,代碼如下:

                import getpass #匯入getpass模組                        password = getpass.getpass(‘Please enter your password:‘) #接收輸入的密碼                print(password)

十、條件判斷

  python中條件判斷使用if else來判斷,多分支的話使用if elif ... else,也就是如果怎麼怎麼樣就怎麼怎麼樣,否則就怎麼怎麼這樣,格式如下:

        if 明天下雨:            那麼明天帶傘        else:            明天不帶傘

  python中是以縮排來表示代碼塊的,這樣看起來代碼很有條理,比如說上面的例子,如果明天下雨,那麼明天才會帶傘,明天帶傘就相當於if的兒子,所以也可以認為有縮排的都是有父子關係的,寫個實際點的例子,如下:

                score = int(input(‘請輸入你的分數:‘)) #接收輸入,因為input接收的是一個字串,所以需要用int函數強制類型轉換成整數類型                if score==100: #如果成績等於100分的話                    print(‘小天才,你是滿分‘)                elif score >=90 and score < 100: #如果成績大於等於90分小於100分的話                    print(‘兄弟,你的分數不低啊,不錯‘)                elif score > 60 and score <90:#如果成績大於60分小於90分的話                    print(‘兄弟,這次考試馬馬虎虎啊‘)                else: #如果分數小於60分的話                    print(‘兄弟,你在搞什麼,該努力了‘)

十一、迴圈

  迴圈是幹嘛的呢,說白了就是為你重複的去做事情,比如說你想建1000個檔案夾,一個個建累死你, 這樣就可以寫段代碼,使用迴圈給你建立1000個就省事了,python中有兩種迴圈,while和for,兩種迴圈的區別是,while迴圈之前,先判斷一次,如果滿足條件的話,再迴圈,for迴圈的時候必須有一個可迭代的對象,才能迴圈,比如說得有一個數組,值得一提的是,別的語言中,for迴圈的時候需要先定義一個計數器變數,然後從0開始加,直到這個計數器達到你預設的一個值,然後停止迴圈,取資料的時候也是通過數組的下標從0開始取,這樣就很麻煩,python中for迴圈很簡單,迴圈的是一個可迭代對象中的元素,你這個對象中有多少個元素,就迴圈多少次,比如說一個數組list,list = [‘a‘,‘b‘,‘c‘],在別的語言中要想擷取到list中所有的值,必須得使用迴圈取下標這種方式去取資料,就得這樣寫list[x],list[x],list[x]這樣,在Python裡面就不需要直接迴圈就取的是這個list裡面的值,迴圈裡面還有兩個比較重要的關鍵字,continue和break,continue的意思是,跳出本次迴圈,繼續進行下一次迴圈,break的意思是停止迴圈,也就是說在continue和break下面的代碼都是不執行的,格式如下:

    #while 迴圈    count = 0    while count<10: #如果count小於10的話,就執行下面的代碼,如果不小於3就走else            print(count)            if count==5:                break#如果count等於5的話,就結束迴圈            count+=1 #這個意思是每次迴圈完,count的值就加一,如果不加的話,條件就一直為真了,就死迴圈了,一直不停的迴圈    else:#這個else是可以不寫的,意思就是說,如果條件不滿足了去幹嘛            print(‘條件沒滿足‘)
    #for 迴圈    names = [‘marry‘,‘lily‘,‘lilei‘]    for name in names:        if name == ‘lily‘:            contiune #如果名字等於lily的話,就不執行continue下面的代碼了,再迴圈下一次         print(name)    else:#for也有個else,不過這個一般沒人寫它,意思是如果正常迴圈完了去做什麼        print(‘over‘)
十二、小練習——寫個小遊戲吧

  既然我們已經學了條件判斷和迴圈,那就用它來練習練習,寫個小遊戲,猜數位遊戲,要求是這樣,產生一個隨機數字,1-100之間,接收使用者輸入,如果猜對了,遊戲結束,猜大了,提示猜大了,小了提示猜小了。產生隨機數模組使用random.randint(1,101),是一個標準包,匯入使用即可,代碼如下:

import randomsub_str=random.randint(1,101) #產生1-100的一個隨機數while 1:#while的意思就是,讓它一直為真,也就是死迴圈,下面通過break來停止迴圈    num=int(input(‘plase enter a num , 1-100:‘))    if num>100 and num<1: #判斷輸入的數字是否在1-100之間        print(‘num error,plase enter 1-100.‘)        continue    else:        if num==sub_str: #如果猜對了,結束迴圈            print(‘You win. game over,the num is %d‘%sub_str)#不懂這個的請看下面的第十三,字串格式化輸出            break        elif num < sub_str:#如果猜小了,就跳出本次迴圈,提示猜小了            print(‘The num is small,plase enter other num.‘)            continue        else:#就三種情況,大、小、等於,前面兩種是等於和小於,那麼else就是大於了,如果猜大了,就跳出本次迴圈,提示猜大了            print(‘The num is too big,plase enter other num.‘)            continue

十三、格式化輸出

   格式化輸出——就是說把你的輸出都格式化成一個樣子的,比如說登入的歡迎資訊,都是welcome to login,Marry. 每個使用者登入都是這樣歡迎,但是每個使用者的使用者名稱都是一樣的,你不能一個使用者就寫一行代碼吧,這就需要用到格式化輸出了,有三種方式,第一種是用“+”串連,直接把輸出的字串和變數串連起來就可以了;第二種是用預留位置,預留位置有常用的有三種,%s、%d和%f,%s是後面的值是一個字串,%d是後面的值必須是一個整數,%f後面是小數;第三種是使用{}和fromat方法,這三種呢,官方推薦是使用format方法,不推薦使用第一種,第一種用加號的,會在記憶體裡面開闢多個記憶體空間,而後面兩種是只開闢一塊記憶體空間,使用方式如下:

    name = input(‘請輸入你的名字:‘)    print(‘你的名字是‘+name) #使用加號串連    print(‘你的名字是%s‘%name)#使用預留位置      print(‘你的名字是{your_name}‘.format(your_name=name)) #使用format格式化輸出,{}裡面的名字可以隨便寫但是    要和後面的format中的名字保持一致,然後再把你前面定義的變數寫到等號後面就可以了。    age = 18    print(‘我的名字是%s,年齡是%d歲.‘%(name,age))#這種是裡面有多個格式化內容的,前面那個是字串,後面這    個是整數,多個變數的後面跟值的時候必須要加上括弧

 

python簡介和入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.