首頁 > 後端開發 > Python教學 > Python的由來與使用介紹

Python的由來與使用介紹

零下一度
發布: 2017-07-18 15:16:40
原創
2253 人瀏覽過

    Python語言因為簡潔而清晰的風格,有大量適用性甚廣的類別庫和python開源框架可以使用,而受到許多IT界人士的喜愛。 Python的由來及發展歷程又是怎樣的呢,下面我們來簡單的了解下。

    追溯Python語言的起源,是從20世紀90年代初由Guido van Rossum,在阿姆斯特丹,發展一個新的腳本解釋程序。不知道Guido當初有沒有想到,Python有一天會成為最受歡迎的程式設計語言之一?

有些人喜歡用膠水語言來形容Python,是因為它可以很輕鬆的把許多其它語言編寫的模組結合在一起,至於過程這裡不多講,如果你感興趣隨處都可以查到。要知道的是,國內外的許多高校也把python語言做為必修課來學習,並且國內的使用Python語言來工作的單位數量也在增加,會python的程式設計師可是炙手可熱啊。

    問那些學過Python語言的朋友們,它有哪些吸引人的地方呢?大多數人會這麼認為,它是一門容易上手,易讀同時也易維護的語言,所以才會有許許多多的用戶喜歡使用和學習,它真的是一門用途廣泛的語言。

    Python語言最基本語法有:縮排、控制語句、表達式、函數、物件方法、類型和數學運算。只有在學習了python基礎的語法之後,才可以開始正式應用的學習,如:圖形處理、數學處理、文字處理、資料庫、WEB程式設計、爬蟲等等的實際應用。

python 3.3是目前最新的版本,但是很多人還是喜歡從python 2開始學習。因為之前也有講過python 3的第三方支援還不完善,學習過程中會遇到莫名的問題。不如從已經很完善的python 2開始學習。之後過渡到python 3也是很簡單的。

2017年6月TIOBE程式語言排行榜:

#由上圖可見,python語言使用率呈現上升趨勢,而排名前三的語言使用率呈下降趨勢。

Python的優缺點

優點:

  1. Python的定位是「優雅」、 “明確”、“簡單”,所以Python程式看起來總是簡單易懂,初學者學Python,不僅入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。

  2. 開發效率非常高,Python有非常強大的第三方函式庫,基本上你想透過電腦實現任何功能,Python官方庫裡都有相應的模組來支持,直接下載呼叫後,在基礎函式庫的基礎上再進行開發,大幅降低開發週期,避免重複造輪子。

  3. 高階語言————當你用Python語言寫程式的時候,你不需要考慮諸如如何管理你的程式所使用的記憶體一類的底層細節

  4. 可移植性--由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。如果你小心地避免使用依賴系統的特性,那麼你的所有Python程式無需修改就幾乎可以在市場上所有的系統平台上運行

  5. 可擴展性——— —如果你需要你的一段關鍵程式碼運行得更快或希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。

  6. 可嵌入性————你可以把Python嵌入你的C/C++程序,從而向你的程式使用者提供腳本功能。

缺點:

  1. 速度慢,Python 的運行速度相比C語言確實慢很多,跟JAVA相比也要慢一些,因此這也是許多所謂的大牛不屑於使用Python的主要原因,但其實這裡所指的運行速度慢在大多數情況下用戶是無法直接感知到的,必須藉助測試工具才能體現出來,比如你用C運一個程式花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是非常誇張了,但是你是無法直接透過肉眼感知的,因為一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數情況下Python已經完全可以滿足你對程式速度的要求,除非你要寫對速度要求極高的搜尋引擎等,這種情況下,當然還是建議你用C去實現的。

  2. 程式碼不能加密,因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的專案要求來源程式碼必須是加密的,那你一開始就不應該用Python來去實作。

  3. 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全域解釋器鎖(Global Interpreter Lock),是電腦程式設計語言解釋器用於同步執行緒的工具,使得任何時刻只有一個執行緒在執行,Python的執行緒是作業系統的原生執行緒。在Linux上為pthread,在Windows上為Win thread,完全由作業系統調度執行緒的執行。一個python解釋器進程內有一條主線程,以及多條用戶程式的執行線程。即使在多核心CPU平台上,由於GIL的存在,所以禁止多執行緒的並行執行。關於這個問題的折衷解決方法,我們在以後線程和進程章節裡再進行詳細探討。


#二、Python安裝

windows

1、下载安装包

2、安装
安装在C:\Python36
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用;分割】
登入後複製

 linux:

1.解压
tar xf Python-3.6.2.tgz
2.编译安装
cd Python-3.6.2
./configure --prefix=/usr/local/Python3.6
make
make install
3.配置环境变量
vim /etc/profile
PATH=/usr/local/Python3.6/bin:$PATH
source /etc/profile
4.测试
python3.6
登入後複製

 

三、第一個程式(hello,world)

#開啟pycharm,新建python項目,新建python檔案。

#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

print("hello,world")
登入後複製

 

四、變數

變數來自數學,是電腦語言中能儲存計算結果或能表示值抽象概念。變數可以透過變數名存取。在指令式語言中,變數通常是可變的;但在純函數式語言(如Haskell)中,變數可能是不可變(immutable)的。在某些語言中,變數可能被明確為是能表示可變狀態、具有儲存空間的抽象(如在Java和Visual Basic中);但其他語言可能使用其它概念(如C的物件)來指稱這種抽象,而不嚴格地定義「變數」的準確外延。

宣告變數

#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

name = "yanglei"
print(name)
登入後複製

 上述程式碼宣告了一個變量,變數名稱為: name,變數name的值為:"yanglei"

變數定義的規則:

    • #變數名稱只能是字母、數字或底線的任意組合

    • 變數名的第一個字元不能是數字

    • 以下關鍵字不能宣告為變數名稱['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']

五、使用者輸入

##
#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

input_name = input("Please enter your name: ")
print("hi,%s" % input_name)
登入後複製
 

六、資料型別

1、數字

#int(整數)

  在32位元機器上,整數的位數為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647   在64位系統上,整數的位數為64位,取值範圍為-2**63 ~2**63-1,即-9223372036854775808~9223372036854775807
long(長整型)  
  遠跟語言不同,Pyt位元的長整數長整數數值的大小,但實際上由於機器記憶體有限,我們使用的長整數數值不可能無限大。   
  注意,自從Python2.2起,如果整數發生溢出,Python會自動將整數資料轉換為長整數,所以如今在長整數資料後面不加字母L也不會導致嚴重後果了。
  
注意:在Python3裡不再有long型別了,全都是int
float(浮點型)
#     浮點數用來處理實數,即有小數的數字。類似C語言中的double類型,佔8個位元組(64位元),其中52位元表示底,11位元表示指數,剩下的一位表示符號。
2、布林值
  真或假
  1 或0
3、字串
"hello world"
登入後複製
字串拼接:

#
  python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化输出
#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

name = "yanglei"
print("hi,%s" % name)

#输出hi,yanglei
登入後複製

注:字符串是 %s;整数 %d;浮点数%f

字符串常用功能:
  • 移除空白

  • 分割

  • 长度

  • 索引

  • 切片

4、列表
创建列表:
#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

name = ["yanglei","jack","marry","andy"]
登入後複製

基本操作:

  • 索引

  • 切片

  • 追加

  • 删除

  • 长度

  • 切片

  • 循环

  • 包含

5、字典(无序)

创建字典:
#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

user_info = {"name":"yanglei","age":23,"job":"IT"}
登入後複製

常用操作:

  • 索引

  • 新增

  • 删除

  • 键、值、键值对

  • 循环

  • 长度

七、数据运算  

算数运算:

比较运算:

赋值运算:

逻辑运算:

成员运算:

身份运算:

位运算:

运算符优先级:

  

八、if判断

场景一、用户登陆验证

#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

input_user = input("Please enter your user name: ")
input_password = input("Please enter your password: ")
if input_user == "yanglei" and input_password == "123456":
    print("\033[32;1m%s login successfully\33[0m" % input_user)
else:
    print("\033[31;1mThe user name or password error,please try again\033[0m")
登入後複製

场景二、猜年龄游戏

在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了

#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

guess_age = 50
input_age = int(input("Please enter your guess age: "))
if input_age > guess_age:
    print("\033[31;1mCan you guess what big\33[0m")
elif input_age < guess_age:
    print("\033[31;1mCan you guess what small\33[0m")
else:
    print("\033[32;1mYou guessed it\33[0m")
登入後複製

外层变量,可以被内层代码使用

内层变量,不应被外层代码使用

九、break和continue的区别

continue:

#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

count = 1
while count <= 10:
    if count == 5:
        count += 1
        continue
    print(count)
    count += 1
登入後複製

break:

#!/usr/binl/env python
#encoding: utf-8
#author: YangLei

count = 1
while count <= 10:
    if count == 5:
        count += 1
        break
    print(count)
    count += 1
登入後複製

由此可以看出continue是跳出当前循环,而break是跳出本层循环。

十、while循环

循环语句,计算机的一种基本循环模式。当满足条件时进入循环,不满足跳出。while语句的一般表达式为:
while(表达式)
{
循环体
}

场景一、用户登陆验证升级

#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei

count = 0
while count < 3:
    input_user = input("Please enter your user name: ")
    input_password = input("Please enter your password: ")
    if input_user == "yanglei" and input_password == "123456":
        print("\033[32;1m%s login successfully\33[0m" % input_user)
        break
    elif count == 2:
        print("\033[31;1mThe user name or password mistake,three chances to use up,the program exits\33[0m")
        break
    else:
        count += 1
        print("\033[31;1mThe user name or password error,please try again\033[0m")
登入後複製

场景二、猜年龄游戏升级

#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei

guess_age = 50
count = 0
while count <= 3:
    if count == 3:
        input_choose = input("Do you want to continue to play?(Y or y|N or n)")
        if input_choose == "Y" or input_choose == "y":
            count = 0
            continue
        elif input_choose == "N" or input_choose == "n":
            break
        else:
            print("\033[31;1mAre you input errors!\33[0m")
            continue
    input_age = int(input("Please enter your guess age: "))
    if input_age > guess_age:
        print("\033[31;1mCan you guess what big\33[0m")
        count += 1
    elif input_age < guess_age:
        print("\033[31;1mCan you guess what small\33[0m")
        count += 1
    else:
        print("\033[32;1mYou guessed it\33[0m")
        break
登入後複製

 

以上是Python的由來與使用介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板