python的简介和入门
一.什么是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下的運行[root@ebs-32534?~]#?chmod?+x?test.py[root@ebs-32534?~]#?./test.pyHello?world!七、第一個程序,隆重的儀式
???????我們在學習語言的時候,第一個寫的程序肯定都是hello world,我也不知道為何這樣,大家都這樣,我的老師告訴我說這是一個儀式,就得這么干,我認為就和干啥事之前拜佛一樣吧?不過不管它,來寫第一個程序吧,其實很簡單,python的語法就是簡單、優雅,一個print就搞定。
print("hello,world")
八.變量
變量是干嘛的呢?說的簡單點,就是存東西,供后面來用的。python中定義變量很簡單,一個等號搞定,也不需要指定數據類型,直接定義就好,值得一提的是python變量里面存的是內存地址,也就是這個值存在內存里面的哪個地方,如果再把這個變量賦值給另一個變量的話,新的變量通過之前那個變量知道那個變量值的內存地址存起來,而不是指向的之前那個變量。代碼如下:
name = 'sriba'
new_name = name#new_name存的也是sriba的內存地址
變量的定義規則:
????????變量名要見名知意,不能瞎寫,瞎寫到后面自己都看不懂那個變量是干啥的,不要用拼音,那樣很low,更不要用中文當變量名,那是2b程序員干的事,但是python的確可以用中文當變量名!
????????變量名只能是 字母、數字或下劃線的任意組合
????????變量名的第一個字符不能是數字
????????以下關鍵字不能聲明為變量名
九、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 randomnum = 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?=?18print('我的名字是%s,年齡是%d歲.'%(name,age))#這種是里面有多個格式化內容的,前面那個是字符串,后面這個是整數,多個變量的后面跟值的時候必須要加上括號 ?轉載于:https://www.cnblogs.com/liuwei55/p/6060465.html
總結
以上是生活随笔為你收集整理的python的简介和入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css背景图片、圆角、盒子阴影、浮动
- 下一篇: Python 学习第十六天 html 前