日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python基础篇

發(fā)布時間:2024/9/5 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础篇 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://www.cnblogs.com/yuanchenqi/articles/5782764.html

一、變量

  1、定義:變量用于存儲要在計算機程序中引用和操作的信息。他們還提供了一種以描述性名稱標注數(shù)據(jù)的方法,所以我們的程序可以被讀者和我們自己更清楚地理解。將變量視為容納信息的容器是有幫助的。它們的唯一目的是將數(shù)據(jù)標記和存儲在內(nèi)存中。 然后可以在整個程序中使用此數(shù)據(jù)。

  2、聲明變量:name="alex"

       ?上述代碼聲明了一個變量,變量名為: name,變量name的值為:"Alex Li"

  3、變量定義規(guī)則:

    • 變量名只能是 字母、數(shù)字或下劃線的任意組合
    • 變量名的第一個字符不能是數(shù)字
    • 以下關(guān)鍵字不能聲明為變量名
      ['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']

  4、變量的賦值

二、縮進

  縮進就是控制塊,官方建議空四個空格,在很多語言里都是通過大括號來實現(xiàn)的,但是Python是通過空格

三、注釋

  單行注釋:#

  多行注釋:""" """或''' '''

四、運算符

  1、算數(shù)運算符 +  -  *  /

  2、賦值運算符 =  +=  -=  *=  /=

  3、比較運算符 ==  >=  <=  !=  >  <  (一定是布爾值,用于循環(huán))

  4、邏輯運算符 and(與)  or(或)  not(非)

  5、關(guān)系運算符 in  not in  (返回值是布爾值)

         例:print(2 in [1,2,3]

           True

  6、位運算符

五、數(shù)據(jù)類型

  1、定義:計算機顧名思義就是可以做數(shù)學計算的機器,因此,計算機程序理所當然地可以處理各種數(shù)值。但是,計算機能處理的遠不止數(shù)值,還可以處理文本、圖形、音頻、視頻、網(wǎng)頁等各種各樣的數(shù)據(jù),不同的數(shù)據(jù),需要定義不同的數(shù)據(jù)類型。在Python中,能夠直接處理的數(shù)據(jù)類型有以下幾種

  所有的數(shù)據(jù)類型一定可以劃分為兩種:

    可變數(shù)據(jù)類型:列表,字典

    不可變數(shù)據(jù)類型:整形,元組,字符串

    不可變數(shù)據(jù)類型如下圖:

    

    再比如:i=1(在內(nèi)存中創(chuàng)建一個數(shù)據(jù)類型)

        i=2(并不是覆蓋1,而是開辟一塊新的空間,寫上2)  

  2、數(shù)字(整形,浮點型,布爾類型)

  

  整形

  Python3中整形(int)就是長整型,在2.x版本中才有區(qū)分

  

  浮點型(float,double)

  科學計數(shù)法,是為了節(jié)省空間,比如無線循環(huán)和不循環(huán)小數(shù)如果一直存在去電腦會崩潰

  精度要求非常高的話使用double

  例:0.000123=1.23e^(-4)

  

  布爾值

  True=1,False=0,二者可進行運算,True+False=1

?

  3、字符串(string)

  創(chuàng)建2種(表達式和關(guān)鍵字):表達式:s="zhongguo"

                ?關(guān)鍵字:s=str("zhongguo")#涉及到類

  字符串操作:

    查找 ?[] ?[:] ? #序列都可以進行切片,如字符串列表元組

    去空:strip()#把字符串的開頭和結(jié)尾的空格和制表符還有換行符去掉,括號里可以加參數(shù)

    拼接:s="hello"+"world"+"I"+"am"+"python"(拼接次數(shù)多的話,效率要低,因為字符串是不可變的,顯示helloworld申請一塊內(nèi)存空間,然后又是helloworldI申請一段內(nèi)存空間,然后又是helloworldIam申請一斷內(nèi)存空間,一次類推)

       ? "".join(iterable)#數(shù)字不能拼接,不是一個類型的不能拼接,""中可以加*,空格之類的其他東西

    分割:split(),正好與join相反是把字符串分割成一個列表,參數(shù)只要字符串中有的都可以加,還有最大分個數(shù)split(,)逗號后邊可以規(guī)定分割次數(shù)

       splitlines是以換行符為分隔符的如果末尾有\(zhòng)n的話不會顯示,但split會顯示

    

    find(找不到返回-1)

    "hello world".find("l")#打印后返回2

    "hello world".find("l",3)#打印后返回3

    

    index(找不到報錯)

    "hello world".index("l",4)#返回后打印9

    

    replace

    "hello world".replace("world","python")#完全匹配,必須一對一匹配上?

    s="hello world"

    print(s.replace("world","python"))------------->hello python

    print(s)------------------------------------------>hello world

    因為字符串是不可變的,所以hello python是開辟了一塊新的空間,之前的s還是指向hello world,而后邊講到的append針對的類型是可變的,是直接對列表(只舉列表這一個例子)進行修改,沒有返回值,也就意味著并沒有開辟新的空間,直接打印原列表即可

    

    居中顯示:print("hello world".center(50,"*"))#居中顯示總共50個字符,不夠的用*補上

         print("hello world".ljust(50,"*"))#靠左顯示,右邊用*補全,總共50個字符

    字符串的格式化輸出:

     "hello %s"%"sb"---------->print后輸出hello sb

     %s,給字符串占位  %d,給整形占位  %f,給浮點型數(shù)據(jù)占位,%.4f小數(shù)點后保留四位(占四位)

     "hello {0},his age is {1}".format("alex",34)#按索引位對應

     "hello {name},his age is {age}."format(name="wusir",age=30)#通過鍵值對(推薦)

     "hello {name},his age is {age}."format_map({"name":"agon","age":33})#通過字典

    

    關(guān)于數(shù)字判斷:isdecimal(),isdigit(),isnumeric()--->返回True或者False

     isnumeric中1,一,I,壹都可以識別

    

    大小寫:

    print("hello world".capitalize())----->Hello world

    print("hello world".title())------------>Hello World

    print("HEllO world".casefold())------->hello world

    print("HEllO world".lower())------->hello world

    

    expandtabs

    "HELLO\tworld".expandtabs(20)更改\t的空格數(shù)

    

    zfill:

    print("hello world".zfill(50))#其他位置都補0,內(nèi)容右對齊

  

  4、列表 ?可迭代對象,能夠進行for循環(huán)的就是可迭代對象

  創(chuàng)建:l=[1,"hello",[4,5],{"name":"egon"}]

     l2=list([1,23,3])

     查:切片[:]

     增:append()#可以追加字符串和列表,追加到最后,只能添加一個,不能添加多個

       print(l2.append("yuan"))#返回None因為列表為可變的,沒有開辟新的空間,直接在原來的結(jié)果上進行了添加

       extend()#可以進行多個添加,如12.extend([7,8])如果是多序列的話參數(shù)必須是列表形式

       insert(2,66)#指定位置進行插入,插入的66索引值為2

     

     刪:l2.pop(1)#pop參數(shù)為索引值,返回刪掉的值

       l2.remove(23)#不知道索引值,通過內(nèi)容刪除

       del 12[2]#最霸道的刪除

       del l2#可直接刪掉列表   del l2[1,3]#可以分段刪

     改:l2[0]="yuan"

     清空:l2.clear()#清空就是把里面的值全清空,效率低

        l2=[]#(推薦)與上面的不一樣,這個是把l2重新指向了一個新的地址,所以和上面的內(nèi)存地址肯定不一樣

     計數(shù):l2.count(3)#返回值是1,判斷列表里有幾個3

     長度:len(l2)#返回值是3,判斷l(xiāng)2中有幾個元素

     排序:sort  l3=[3,1,56,34]

            l3.sort()#.方法,默認reverse=False要從大到小排:l3.sort(reverse=True)

            print(l3)

        sorted ? print(sorted(l3))#函數(shù)方法

     拷貝:深拷貝和前拷貝

  5、字典(哈希算法可哈希就是可以進行哈希算法 反之就是不可以 可以進行哈希算法的數(shù)據(jù)就是不可變類型的,如果是不可變的,在對對象本身操作的時候,必須在內(nèi)存的另外地方再申請一塊區(qū)域(因為老區(qū)域#不可變#),老的區(qū)域?就丟棄了(如果還有其他ref,則ref數(shù)字減1,類似unix下的hard-link)。如果是可變的,對對象操作的時候,不需要再在其他地方申請內(nèi)?存,只需要在此對象后面連續(xù)申請(+/-)即可,也就是它的address會保持不變,但區(qū)域會變長或者變短。

)無序的

    Python中唯一具有映射關(guān)系的數(shù)據(jù)類型,字典的查詢速率要遠高于列表,好比一頁一翻得找和找到對應的頁碼直接找頁碼,但是字典的存儲空間較大,比列表多了一張映射表,總之,是用空間取換取時間

    創(chuàng)建:d={"name":"alex","name":"egon"}#打印結(jié)果會以后面的結(jié)果為準,就是前邊的被覆蓋了,白寫。鍵唯一且為不可變數(shù)據(jù)類型,如元組、字符串、整形

    查:d["name"]

      d.get("name",None)#推薦,如果字典里沒有的話返回None,可以換成一些其他的東西比如False

      for i in dict循環(huán)遍歷的是字典的key

      for i in dict:

        print("%s---->%s"%(i,d[i]))#格式化輸出

    增:d["gao"]="luchuan"

    改:d["name"]="yuan"

    刪:d.pop("1")#返回刪掉的value值

  6、集合set ?兩個功能:去重,關(guān)系測試。 可變數(shù)據(jù)類型

    ?set集合內(nèi)元素一定是不可變數(shù)據(jù)類型

    ?關(guān)系測試:s1={"hello",1,2,3}

         ?s2={1,2,("a","b")}

    求并集:print(s1.union(s2))

        print(s1|s2)#順序沒關(guān)系    

    求交集:print(s1.intersection(s2))

        print(s1&s2)

    求差集:print(s1.difference(s2))#s1中有的,s2中沒有的

        print(s1-s2)

        print(s2.difference(s1))#s2中有的,s1中沒有的

        print(s2-s1)

    求對稱差集:print(s1.symmetric_difference(s2))#互相都沒有的

          print(s1^s2)   

  7、元組tuple  (不能進行修改操作)

    查: 切片 [:] 

  

?

  8、循環(huán)中的注意點

  if和else、elif語句使用時需要注意一下兩點:

    1.else、elif為子塊,不能獨立使用

    2.一個if語句中可以包含多個elif語句,但結(jié)尾只能有一個else語句

  else在while、for循環(huán)語句中的作用

    Python中,可以在while和for循環(huán)中使用else子句,它只是在循環(huán)結(jié)束之后才會被執(zhí)行,如果同時使用了break語句那么else子句會被跳過。所以注意else子句和break語句不能同時使用

  9、三級菜單

menu = {'北京': {'海淀': {'五道口': {'soho': {},'網(wǎng)易': {},'google': {}},'中關(guān)村': {'愛奇藝': {},'汽車之家': {},'youku': {},},'上地': {'百度': {},},},'昌平': {'沙河': {'老男孩': {},'北航': {},},'天通苑': {},'回龍觀': {},},'朝陽': {},'東城': {},},'上海': {'閔行': {"人民廣場": {'炸雞店': {}}},'閘北': {'火車戰(zhàn)': {'攜程': {}}},'浦東': {},},'山東': {}, }current_layer = menu layer = []while True:for i in current_layer: # 將當前層賦值給iprint(i)choice = input(">:").strip()if not choice: continueif choice in current_layer:layer.append(current_layer)current_layer = current_layer[choice]elif choice == "b":if len(layer) != 0:current_layer = layer.pop()else:print("到頂了")elif choice == "q":exit("offer")

  10、簡單購物車

product_list = [["Iphone7",5800],#建立一個商品列表["Coffee",30],["Gedatang",10],["PythonBook",99],["bike",200]] shopping_cart = {}#建一個空字典,裝東西,購物車空字典 salary = int(input("input your salary:"))#工資是數(shù)字,所以要int() while True :#當工資是數(shù)字的時候,運行循環(huán)index = 0for product in product_list:#從商品列表中取出商品,價格列表print(index,product)#打印商品代號,商品和價格列表index += 1choice = input(">>:").strip()#選擇商品對應的數(shù)字,stip后空格和Tab無效if choice.isdigit():#判斷是否為數(shù)字choice = int(choice)#將數(shù)字轉(zhuǎn)為整形if choice >= 0 and choice < len(product_list):#商品存在,如果數(shù)字大于等于0并且小于商品列表最大數(shù)product = product_list[choice]#取到商品if product[1] <= salary:#判斷能否買得起,product包括商品和商品價格#買得起if product[0] in shopping_cart:#product[0]是商品名字,[1]是商品價格shopping_cart[product[0]][1] +=1#購物車字典,以product[0]為key,value是else:shopping_cart[product[0]]=[product[1],1]#加入購物車,創(chuàng)建一條商品購買記錄salary -=product[1]#扣錢print("已經(jīng)把"+product[0]+"加入到你的購物車,您的余額還剩"+str(salary-product[1])+"元錢")else:print("買不起,產(chǎn)品價格是"+ str(product[1]) +"你還差"+str(product[1]-salary)+"元錢")else:print("商品不存在!")elif choice == "q":print("-----已購買商品列表-----")id_counter = 1total_cost = 0#初始化一個總消費的變量print("id 商品 數(shù)量 單價 總價")for key in shopping_cart:print("%s\t%s\t%s\t%s\t%s"%(id_counter,key,shopping_cart[key][1],shopping_cart[key][0],shopping_cart[key][1]*shopping_cart[key][0]))id_counter += 1total_cost += shopping_cart[key][1]*shopping_cart[key][0]print("您的總花費為:",total_cost)print("您的余額為:",salary)print("-----end-----")breakelse:print("無此選項")

  

轉(zhuǎn)載于:https://www.cnblogs.com/wuyongqiang/p/6662408.html

總結(jié)

以上是生活随笔為你收集整理的python基础篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。