Python -01

day01筆記

python簡介

創(chuàng)建人:Guido Van Rossum(荷蘭人)
時間: 1989年創(chuàng)建Python
python的應(yīng)用領(lǐng)域
    系統(tǒng)運(yùn)維
    網(wǎng)絡(luò)編程,
    科學(xué)計(jì)算
    人工智能,機(jī)器人
    web開發(fā)
    云計(jì)算
    大數(shù)據(jù)及數(shù)據(jù)庫編程
    教育,
    游戲,圖像
    其他
python的優(yōu)缺點(diǎn):
    優(yōu)點(diǎn):
        面向?qū)ο螅↗ava,C++,Python)
        免費(fèi),可移植,可混合編程,簡單易學(xué)易用,開發(fā)效率高,
        應(yīng)用領(lǐng)域廣泛,開源
    缺點(diǎn): 
        與C/C++相比,執(zhí)行速度不夠快不能封閉源代碼
Python的安裝:
    兼容的操作系統(tǒng):
        Windows
        Linux/Unix
        MaxOSx
Python的運(yùn)行
    python的解釋執(zhí)行器的類型
    CPython(C語言開發(fā))
    Jython (Java語言開發(fā))
    IronPython(。net開發(fā))
第一個python程序:
 打開sublime tex.3 編寫hello。py
  內(nèi)容寫: 
    print(“hello world”)
執(zhí)行hello。py
 python hello。py
常用的程序文件的后綴
    。py python文件后綴
    。c c語言文件后綴
    。cpp c++語言文件后綴
    。java java語言文件后綴

python的交互模式下編寫并執(zhí)行代碼:進(jìn)入python交互環(huán)境

#python 《回車》
推出python交互提示模式
》〉》quit()《回車》
〉》〉exit() 〈回車〉
輸入:ctrl+d(輸入文件結(jié)束符)

python的注釋:

    python的注釋是一#開頭的,直至行尾
    作用: 
        讓注釋內(nèi)容不參加解釋執(zhí)行

python程序組成

    程序由模塊組成
    模塊由語句,函數(shù),類等組成
    語句包含表達(dá)式
    表達(dá)式建立并處理數(shù)據(jù)對象

python 的核心數(shù)據(jù)類型

    數(shù)字(整型,浮點(diǎn)型,復(fù)數(shù),布爾型)
    字符串 str
    列表 list
    。。。

數(shù)字:

    整型: int
        整型數(shù)是不帶有小數(shù)部分的數(shù)據(jù),包括自然數(shù),0,復(fù)數(shù)如: -5,0,100等可以包含很多位,不需要考慮越界
    整型字面值的表示方式
        十進(jìn)制表示:
            10,20,30
        八進(jìn)制方式表示(0o開頭,后跟0~7)
        0o11,(9)
        0o177(127)
        十六進(jìn)制表示(0x開頭,跟0~9,A~F)
        
        二進(jìn)制的表示(0b開頭,后跟0~1)
    浮點(diǎn)型數(shù) float
    浮點(diǎn)型數(shù)是帶有小數(shù)部分的數(shù)字(小數(shù)部分可以是0)
    小數(shù)形式;
        3.14, 3.2 
    科學(xué)計(jì)數(shù)法:
        小數(shù)e/E(正負(fù)號)指數(shù)
    如: 
        6.18E-1等通同與0.618
        2.9979e8 等同于29799
    
    復(fù)數(shù): complex
     分為兩部分:
        實(shí)部(real)
        虛部(image)
        注:虛部是以j或J結(jié)尾的
        復(fù)數(shù)的字面值表示
        1j
        (2J)
         1-1j
    
    布爾型數(shù) bool
        用來表示真和假兩種狀態(tài)的類型
        True表示真(條件滿足成立)True的值是1
        False的值是0
    
    空值
        None是一個表示不存在的特殊對象
        作用:
            用來占位
            變量解除綁定

表達(dá)式和運(yùn)算符

    表達(dá)式 expression
        由一個數(shù)字或運(yùn)算符組成
        作用:
            通常讓計(jì)算機(jī)做一些事情并返回結(jié)果
    
    算數(shù)運(yùn)算符:
        + 加法:
        - 減法:
        * 乘法
        / 除法
        // 地板除 floordiv
        % 取余
        ** 密運(yùn)算
    / 除法
        除法得到的數(shù)是浮點(diǎn)數(shù),不會丟棄小數(shù)部分
        1/3 得0.333333
        8/2 得4.0
        
    // 地板除
        除得結(jié)果去掉小數(shù)部分向下取整
        7/3得2.3333
        7//3 得 2
        8//3 得 2
        3.25 //1.5 得 2.0
    abs(a):
        求一個數(shù)的絕對值
    
    divmod(a,b):
        內(nèi)建函數(shù)divmod()返回的是兩個值,這兩個值在一個圓括號里,圓括號中第一個數(shù)字表示商,第二個數(shù)表示余數(shù)
    round(a,b)
        內(nèi)建函數(shù)round(),第一個參數(shù)表示任意一個數(shù),第二個參數(shù)表示要保留的小數(shù)位數(shù),返回值是一個四舍五入后的數(shù)值.
    dir(module):
        是一個非常有用的指令,可以通過它查看任何模塊中包含的工具
    help(math.pow)
        help函數(shù)可以幫助我們更好的理解函數(shù)的概念

python 金句: ( 變量無類型,對象有類型)

變量只是一個標(biāo)簽,所有沒有類型之說,它不僅可以貼在整數(shù)類型的對象上,還能貼在其他類型的對象上,(即可以四處張貼的標(biāo)簽)
對象是有類型的,eg: str,int,float,list

括號分組子表達(dá)式

    用()可以將表達(dá)式分組(),()內(nèi)部的表達(dá)式先進(jìn)行計(jì)算
練習(xí):
    1. 用交互模式計(jì)算:
        1)一個商店,西瓜是7元一個,你帶20元可以買幾個西瓜,找零多少
            # 一共20元錢,7元一個西瓜,一共可以買多少個西瓜
            print("一共可以買: "+ str((20 // 7))+"個西瓜,剩余"+str((20 % 7) )+"元")
        2)一個學(xué)生的畢業(yè)薪資是10000元每年漲20%,十年后他的薪資是多少啊
            print("十年后的薪資是: " +str((10000*(1+0.2)**10)))

混合類型自動升級:
    1 + 2.15 返回類型為浮點(diǎn)型 3.15

基本輸出函數(shù): print

    格式:
        print(要打印的東西)
        # 練習(xí): 1. 已知矩形的長邊長為6cm,短邊長為4cm,用表達(dá)式求周長和面積
        print("周長: "+str((6+4)*2)+" 面積: "+str(4 *6 ))
        # 方式2(
        print("周長: ",(6+4)*2,"面積",4 * 6)

變量:

    什么是變量
        變量是關(guān)聯(lián)一個對象的標(biāo)識符
        變量可以綁定一個對象,并可以通過變量名來使用這個對象的標(biāo)識符的命名方法
    
    標(biāo)識符的命名方法
        標(biāo)識符必須為**字母**或**_開頭**,后跟字母或下劃線或數(shù)字說明
        不能使用python的關(guān)鍵字做變量名
        python變量名區(qū)分大小寫
        合法的變量名
        a1 a  bb _adsf  adf
        不合法的變量示例:
        1q 123 #asb +a -nb 
    python 的關(guān)鍵字總共有33個
        True,False,None.,is,del,if elif...

連接語句

    語法:
        變量名+變量名:
        a = 100
        b = 200
        a + b #300
        c="asjd"
        a+c # Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError: unsupported operand type(s) for +: 'int' and 'str'
    用法:
        用"+"拼接起來的兩個對象必須是同一種類型的,如果兩個都是數(shù)字,毫無疑問是可以的就是求和,如果都是字符串會得到一個新的字符串,
補(bǔ)充:
    str(a)函數(shù):
        實(shí)現(xiàn)將整數(shù)對象轉(zhuǎn)換為字符串對象
    repr(a)函數(shù):
        也可以是實(shí)現(xiàn)同樣的效果
    int(a)函數(shù):
        實(shí)現(xiàn)可以將str,float類型的對象轉(zhuǎn)換為整數(shù)對象(默認(rèn)去除小數(shù)點(diǎn)后面所有的數(shù)字,不進(jìn)行四舍五入)

賦值語句

    語法: 
        變量名= 表達(dá)式
        或 變量名1 = 變量名2 = 變量名3 
        或 變量名1,變量名2,變量名3 = 序列
    作用: 
        創(chuàng)建一個變量或修改一個變量的綁定的對象.
    說明:
        當(dāng)變量不存在時,創(chuàng)建該變量,同時將變量綁定在這個對象上
        當(dāng)變量存在時,改變此變量綁定的對象
        一個變量只能綁定一個對象
        兩個變量可以同時綁定在同一個對象上
        示例:
            a = 10 
            b = 20 
            a = b# a綁定在 b綁定的對象上,a與10 解綁,綁定在20上
            r = 10 
            a = 6 
            b = 4 
            area = a * b # 等于area = 6 * 4
            x = y =z = 1000
            x,y = 100,200 # 等價于 x綁定100, y 綁定200

python 中自動化內(nèi)存管理(重點(diǎn))

    a = 1000
    b = 1000
    a = a + b # 
    c = a # a 和c 同時綁定在2000上
    del b # 當(dāng)刪除b時,b上的引用計(jì)數(shù)會減為0,會被回收

python 關(guān)聯(lián)/綁定/引用 的含義

    在python中,變量沒有類型
    關(guān)聯(lián)/綁定/引用都是指一個變量 和 一個對象的關(guān)聯(lián)關(guān)系

練習(xí):

    1. 指定一個半徑 r = 3 cm的圓
        1)計(jì)算圓的周長是多少厘米 length = (3.14 * 2 *3 )
        2)計(jì)算圓的面積是多少平方厘米 area = 3.14*3**2
    問?
        
        a = 3 
        b = 4
        a = a + b
        a = a - b
        b = a - b
        在不創(chuàng)建任何新對象的情況下,如何讓a和b交換綁定的對象
        a = 1
        b = 2
        print("變換之前:",a,b)
    注:在python中變量相當(dāng)于貼在對象上的標(biāo)簽,這個操作只不過是將標(biāo)簽換了個位置,就分別指向了不同的數(shù)據(jù)對象
        #方法0 (序列復(fù)制)
        a,b = b,a
        #方法1
        a = a + b
        b = a - b
        a = a - b
        print("變換之后",a,b)
        #(方法2)
        a = a^b
        b = a^b
        a = a^b
        print("變換之后:",a,b)

交互模式下查看當(dāng)前作用域內(nèi)的所有變量

    >>> help("__main__")
    >>> help("__main__")
    ```
        Help on module __main__:
        
        NAME
            __main__
        
        DATA
            __annotations__ = {}
            a = 20
            b = 10
            x = 100
            y = 200
            z = 100
        
        FILE
            (built-in)
    ``` 
    注: help函數(shù)用來查看幫助或運(yùn)行時信息

del語句 (delete簡寫)

用于刪除變量,同時解除此變量與對象的綁定關(guān)系 如果可能則刪除對象

語法: 
    del 變量名
    del a # 刪除a變量,

自動化內(nèi)存管理和引用計(jì)數(shù)

每個對象會記錄有幾個變量引用自身,當(dāng)引用的數(shù)量為0時,此對象被銷毀,此種自動化內(nèi)存管理的方式即為引用計(jì)數(shù)
a = 10 
b = 20
a = b # 釋放10 的同時 將a綁定在20上
del a # 刪除a變量,同時將20 引用計(jì)數(shù)-1
del b # 刪除b變量,同時將20 刪除

is/is not 運(yùn)算符

作用:
    判斷兩個對象是否是同一個對象,當(dāng)是同一個對象時返回True,否則返回false
    
    is not 的作用和is相反
語法: 
    x is y()
    s is not y

小整數(shù)對象池:

    CPython 中整數(shù)-5 至 256永遠(yuǎn)在小整數(shù)對象池中,不會釋放并可重復(fù)使用
    eg 
    ```
    x = 10 
    y = 10
    x is y # True
    a = 1000
    b = 1000
    a is b # False
    ```

id(x) 函數(shù)

作用:
    返回一個變量在內(nèi)存中的地址

練習(xí):

 1. 在終端中打印出如下圖形(注: python3中print不換行可以加個參數(shù)end="")
    *
   ***
  *****
 *******    
 ```
 for i  in range (5):
    a = i*2 +1
    b = 10 -i
    # 輸入空格數(shù)
    while (b >= 1):
        print(" ", end="")
        b = b - 1
        #輸入* 數(shù)
    while( a >= 1):
        print("*",end="")
        a = a -1
    print()
 ```

2. 中國的秤時16兩一斤,請問中國古代的216兩時古代的幾斤幾兩?寫程序打印出來
```
# 中國的秤時16兩一斤, 請問中國古代的216兩時古代的幾斤幾兩?寫程序打印出來
# 定義a 表示總兩數(shù)
a = 216
# 定義兩轉(zhuǎn)換斤的進(jìn)制
b = 16
# 輸出結(jié)果
print("古代216兩相當(dāng)于:",216//16,"斤", 216%16, "兩")
```

3. 從凌晨 0:0:0記時,到現(xiàn)在已經(jīng)走過了63329秒,
    請問現(xiàn)在是幾時幾分幾秒?寫程序打印出來
    提示:可以用地板除和求余來實(shí)現(xiàn)
    ```
    # 從凌晨 0:0:0記時,到現(xiàn)在已經(jīng)走過了63329秒,
    #       請問現(xiàn)在是幾時幾分幾秒?寫程序打印出來
    #      提示:可以用地板除和求余來實(shí)現(xiàn)
    a  = 63329
    h = a//(60*60)
    m = (a-h)%60
    s = a %60
    print(h,":",m,":",s)
    ```
4. 溫度轉(zhuǎn)換:
    攝氏度 = 5.0/9.0 * (華氏溫度-32)
    開氏溫度 = 攝氏溫度 + 273.15
    問:
        100華氏度溫度轉(zhuǎn)換為攝氏溫度是多少度?
        轉(zhuǎn)為開始度是多少度?
    ```
    hua = 100
    s = (5.0 /(9.0*(hua-32)))
    k = s+273.15
    print(s,k)
    ``
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容