標籤:ash tin print bre names als dom img python3
一.什麼是python
python是一種物件導向、解釋型的電腦語言,它的特點是文法簡潔、優雅、簡單易學。在1989誕生,Guido(龜叔)開發。這裡的python並不是蟒蛇的意思,而是龜叔非常喜歡一部叫做《Monty Python飛行馬戲團》的電視劇,所以以python命名(老外就是這麼任性)。
二.解釋型語言與編譯型語言
編譯型語言就是先把寫好的程式翻譯成電腦語言然後執行,就是所謂的一次編譯到處運行,比如c、c++就是編譯型語言,這樣的語言特點是運行速度快,但是需要事先把程式編譯好才可以。
解釋型語言就是程式在啟動並執行時候,通過一個解譯器,把代碼一句一句的翻譯成電腦語言然後運行,也就是你寫好代碼之後直接就能運行,比如說python、shell、ruby、java、perl等等都是解釋型語言,當然這樣的語言由於原理不一樣,執行速度並沒有編譯型語言快。
三.選擇python2.x還是3.X?
python2.x宣布支援到2020年,所有建議選擇python3.x
四.python安裝
python怎麼安裝呢,這個是一個沒有營養的話題,我就不寫了,百度一下一堆堆的,要注意的就是,如果想使用python命令需要把python的安裝目錄加到環境變數中,windows下還要把python安裝目錄下的scripts目錄加入到環境變數中,因為一些python的可執行命令,比如說pip,是安裝在這個目錄下的,linux下因為預設帶python了,如果要升級版本的,要先把系統內建的python改名或者卸載掉,再安裝你要的python版本,centos下由於yum依賴內建的python2.6,所有不能卸載,修改下yum指令碼裡面的python環境變數位置即可。
五.字元集
說字元集之前,先說下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代碼
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!
七、第一個程式,隆重的儀式
我們在學習語言的時候,第一個寫的程式肯定都是hello world,我也不知道為何這樣,大家都這樣,我的老師告訴我說這是一個儀式,就得這麼幹,我認為就和幹啥事之前拜佛一樣吧?不過不管它,來寫第一個程式吧,其實很簡單,python的文法就是簡單、優雅,一個print就搞定。
print("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迴圈
while count <10:#如果count小於10的話,就執行下面的代碼
print(count)
if count == 5:#
break#如果count=5的話,就結束迴圈
count = count+1#每次迴圈完,count的值就加一,如果不加的話,條件就一直為真了,就死迴圈,一直不停的迴圈
else:#這個else是可以不寫的,意思就是說,如果條件不滿足了,去執行下面的代碼
print("條件沒滿足")
for迴圈
names = [‘marry‘,‘haha‘,‘hehe‘] for name in names: if name == ‘haha‘: contiune #如果名字等於lily的話,就不執行continue下面的代碼了,再迴圈下一次 print(name) else:#for也有個else,不過這個一般沒人寫它,意思是如果正常迴圈完了去做什麼 print(‘over‘)
十三、小練習,寫個小遊戲吧
既然我們已經學了條件判斷和迴圈,那就用它來練習練習,寫個小遊戲,猜數位遊戲,要求是這樣,產生一個隨機數字,1-100之間,接收使用者輸入,如果猜對了,遊戲結束,猜大了,提示猜大了,小了提示猜小了。產生隨機數模組使用random.randint(1,101),是一個標準包,匯入使用即可,代碼如下:
import random
num = random.randint(1,101)
while True:
guess_num = int(input("請輸入一個1-100之間的整數:"))
if guess_num >100 and guess_num <1:
print("請輸入一個1-100之間的整數:")
continue
else:
if guess_num == num:
print("恭喜你,猜對啦!!1")
break
elif guess_num < num:
print("猜小了,猜小了!!")
continue
else:
print("猜大了,猜大了!!")
十四、格式化輸出
什麼是格式化輸出呢,就是說把你的輸出都格式化成一個樣子的,比如說登入的歡迎資訊,都是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的簡介和入門