python 基礎(chǔ)知識

python 基礎(chǔ)知識

說明:

  1. 當(dāng)前版本:3.7.0
  2. 所有示例都是寫在文件中.py
  3. 參考教程:Python教程
  4. 執(zhí)行文件python index.py
  5. 所有的代碼都在同一個文件index.py中,各部分引用變量一致。

起步

  1. 輸出一個hello world;

    print("hello world")
    

    注意:在.py文件中代碼是不能隨意縮進的,不然執(zhí)行報錯

  2. 用戶輸入;

    name = input("please input your name \n");
    print("welcome",name)
    

    執(zhí)行文件后,等待用戶輸入,按enter結(jié)束輸入,打印welcome XXX.

    注意:

    • 用戶輸入的值類型是字符串
  3. if...else語句

    # if block
    if name=="admin":
        print("歡迎管理員登陸!")
    else:
        print("登陸成功!")
    

    ** 說明**:

    • if...else語句以:結(jié)束,語句塊縮進表示;
    • # 表示注釋,描寫代碼塊的功能。

    注意:由于使用的控制終端不同,導(dǎo)致打印中文報錯??稍O(shè)置其他終端或者設(shè)置文件編碼
    定義文件編碼

  4. 數(shù)據(jù)類型
    整數(shù)、浮點數(shù)、字符串、布爾值、空值

    # '\' 轉(zhuǎn)義
    print("hello \n world")
    # '\t' 制表符 '\n' 換行 ‘r'XXX'’ 定義內(nèi)容部不專一
    print(r"hello \n world");
    # ‘'''xxx'''’ 格式化文本換行
    print('''hello
    world''')
    # 布爾運算符 and or not         
    print(8>5 and 8<10)
    

    說明:

    • 浮點數(shù)科學(xué)計數(shù)法表示:2e10
    • 布爾值大寫的True / False
    • 變量命名是大小寫敏感的,如:name/Name 不同。
    • 空值表示為none;
    • 變量定義遵循基本的規(guī)則:英文、數(shù)字、下劃線,不能以數(shù)字開頭。
    • 常量定義不能改變的變量,用大寫表示。
  5. 字符串

    # ord 對單個字符編碼 chr 對單個字符的解碼
    Name = ord('國')
    print(Name)
    # "國" 22269
    Name_ = chr(Name)
    print(Name_)
    # b'xx' 表示字節(jié)碼
    # "中國" b'\xe4\xb8\xad\xe5\x9b\xbd'
    print("中國".encode("utf-8")) 
    # len 計算字符長度
    print(len("hello world"))
    # 文本格式化 
    print("%d周年" % 70)
    # format() 格式化方法
    print("{0}周年".format(70))
    

    說明:

    • encode()編碼;decode()進行解碼;
    • 指定編碼類型,如果超出編碼范圍,就會報錯;中文超出ASCII;
    • %s 字符串;%d整數(shù);%f浮點數(shù);%x十六進制數(shù);%%轉(zhuǎn)義輸出%
    • format()格式化方法;
  6. 數(shù)據(jù)結(jié)構(gòu)list

    # list 
    names = ["花花","小亮","明總"]
    print(names[0])
    # udpate 
    names[0] = 70;
    
    # tuple 元組
    names_ = (1949,2019,70)
    print(names_[2])
    

    說明

    • append() 往后添加一個元素;insert(index,name)插入元素到指定位置;pop()刪除末尾元素;
    • 元組具有不可變性,即其中的元素一經(jīng)初始化是不能改變的;
    • 元組中元素指向的是一個對象,那對象屬性的改變是沒有關(guān)系的。
    • 元組定義一個元素是(12)會存在算數(shù)歧義,為了區(qū)分如此聲明(12,)
  7. 循環(huán)

    # for ... in 循環(huán)
    for item in names:
        print(item)
    # while 循環(huán)
    num = 3
    while num>1:
        print(num*2)
        num = num-1
    

    說明:
    range(11)生成0-10的整數(shù)序列;
    break跳出循環(huán);
    continue跳過本次循環(huán);

  8. 使用dict字典。
    類似對象、以鍵值對存儲數(shù)據(jù);

    # dict
    user = {"袁明":23,"魯花":32,"祖國":70}
    print(user["祖國"])
    # keys() / values() / items()
    for key in user.keys():
        print(key,user[key])
    # set 只存儲值,不重復(fù)
    age = set([23,32,70,32])
    print(age)
    

說明:

  • ... in ...判斷key值是否存在于字典中;
  • get()獲取值,不存在返回none,接受第二個參數(shù)作為不存在時的返回值;
  • pop()刪除一個鍵值對;
  • add()set中添加一個值;remove()則移除一個值;
  • values()返回字典值集合;keys()返回鍵值集合;items()key,value進行迭代處理;
  1. 函數(shù)

    # 系統(tǒng)內(nèi)置函數(shù) , 如 abs() 求絕對值
    abs(-100)
    # 自定義函數(shù)
    def add(num1,num2):
        return num1+num2
    print(add(100,1))
    # 返回多個值,類似解構(gòu)賦值
    def add(num1,num2):
        return num1,num2
    res1,res2 = add(100,1)
    print(res1,res2)
    # 函數(shù)可變參數(shù)
    def add(*nums):
        total = 0
        for n in nums:
            total+=n
        return total
    print(add(3,4,5,6))
    # 函數(shù)關(guān)鍵參數(shù),即必須傳入的參數(shù)和可選參數(shù),
    def addUser(name,**other):
        print({"name":name,"other":other)
    addUser("祖國",age=70,desc="生日快樂!")
    # 參數(shù)傳入時,可傳入 dict , 
    info = {"age":70,"desc":"生日快樂!"}
    addUser("祖國",**info)
    
    # 命名關(guān)鍵字,即指定可選參數(shù)的名稱 ,以下 只能傳遞 'age'屬性
    def addUser(name,*,age):
    print({"name":name,"other":age})
    addUser("祖國",age=70)
    

    說明:

    • max()最大值;內(nèi)置函數(shù)規(guī)定了參數(shù)類型,參數(shù)個數(shù),不合規(guī)則就報錯;

    • 沒有給定返回值的函數(shù),默認返回none;

    • 返回多個值時,可以進行解構(gòu)復(fù)制,賦值給變量進行使用;

    • 函數(shù)參數(shù)定義,接受默認參數(shù)定義def add(num1,num2=70)

    • 模擬可變參數(shù):

      ?傳入list對象,模擬傳遞不確定個數(shù)的參數(shù);

      ?*定義參數(shù)為可變參數(shù);

      ?**定義參數(shù)為可選參數(shù);

    • 參數(shù)傳入時,**會轉(zhuǎn)換對象,按鍵值對傳入到 **other

  2. 尾遞歸優(yōu)化
    之前js 也寫過:es6 函數(shù)擴展
    代碼比較短,貼一下:

    //尾調(diào)用優(yōu)化
    function factorial(n,total){
        if(n===1) return total;
        return factorial(n-1,n*total);
    } 
    

    意義在于每次調(diào)用都能獲得累積值,并作為參數(shù)傳入下一次調(diào)用函數(shù)中。

    # total作為上一次函數(shù)調(diào)用后計算的值,傳入下一個參數(shù)
    def factorial(n,total):
        if n==1:
            return total
        return factorial(n-1,n*total)
    print(factorial(10,1))
    

注意:

  • if語句、while語句、函數(shù)定義等含有語句塊的都有:,且語句塊需要縮進;

附所有代碼執(zhí)行結(jié)果:

在這里插入圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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