python基礎2

来源:https://www.cnblogs.com/lyr999736/archive/2018/04/10/8765259.html
-Advertisement-
Play Games

一、模塊初識 分類: 1) 標準庫:直接導入的不需要下載安裝,一般都存在lib下 2) 第三方庫:需要下載安裝才能使用,一般都存在site-packages下 sys: print(sys.path) >列印環境變數。 註意:python2下,這個是錯誤的,因為sys這個文件下並沒有path這個函數 ...


一、模塊初識

  分類:

    1) 標準庫:直接導入的不需要下載安裝,一般都存在lib下

    2) 第三方庫:需要下載安裝才能使用,一般都存在site-packages下

  

  sys:

    print(sys.path)---->列印環境變數。 註意:python2下,這個是錯誤的,因為sys這個文件下並沒有path這個函數。

    print(sys.argv)

    print(sys.argv[0])

  

  os :

    cmd_res = os.system("dir")  直接輸出到屏幕,cmd_res=0代表命令執行成功,不保存結果。

    

      cmd_res = os.popen("dir")

    print(cmd_res)  列印記憶體地址

    

      cmd_res = os.popen("dir").read()  通過read方法從記憶體某一個地方取出來

    print(cmd_res)

    os.mkdir("new_dir") 創建目錄

 

 


二、三目運算符
   a = b if c>d else e            
          
如果 c > d 那麼 a = b,否則 a = e。
三、字元串操作
  
 1 # Author : Lyr
 2 
 3 
 4 name = "Lyr is so clever"
 5 
 6 print(name.capitalize())      #首字母大寫
 7 
 8 print(name.count("r"))        #統計某個字母個數
 9 
10 print(name.center(50,"-"))    #一共列印五十個字元,不夠的用-補全居中
11 
12 print(name.endswith("er"))    #判斷某個字元串是否以某個字元串結尾
13 
14 print(name.find("sod"))        #查找某個字元串是否在該串中,如果存在返回某個字元串開頭的索引,如果不存在返回-1
15 
16 print(name[name.find("so"):11]) #字元串的切片
17 
18 name = "Lyr is clever {too_too}".format(too_too="too_too")
19 
20 print(name.isalnum())    #判斷是否是阿拉伯數字
21 
22 print("123".isdecimal())  #判斷是否是十進位數
23 
24 print("123".isdigit())  #判斷是否是整數
25 
26 print("d123".isidentifier())   #判斷是不是一個合法的變數名
27 
28 print("d123".islower())   #判斷首字母是不是小寫
29 
30 print("123".isnumeric())   #判斷是不是只有數字組成等同於isdigit
31 
32 print("123".isspace())   #判斷是不是空格
33 
34 print("1a23".istitle())   #判斷字元串中是否含有大寫字母
35 
36 print("A123".isprintable())   #判斷是不是可列印的   #tty file,drive file
37 
38 print("a123".isupper())      #判斷首字母是否大寫
39 
40 print(",".join(['1','2','3','4']))   #列表轉成字元串
41 
42 print(name.ljust(50,'*'))             #字元串不夠一定的長度用某個字母在右側補全
43 
44 print(name.rjust(50,'*'))             #字元串不夠一定的長度用某個字母在左側補全
45 
46 print(name.lower())          #字元串全部變為小寫
47 
48 print(name.upper())          #字元串全部變為大寫
49 
50 print("   Lyr  ".lstrip())   #去除左邊的空格
51 
52 print("   Lyr  ".rstrip())   #去除右邊的空格
53 
54 print("   Lyr  ".strip())   #去除兩邊的空格
55 
56 p = str.maketrans("abcdef","123456")   #前後長度一樣,依次對應
57 
58 print("abdefg".translate(p))   #result:12456g
59 
60 print(name.replace("r","R",1))
61 
62 print(name.rfind("y",0,11)) #從0到11找y的索引
63 
64 print(name.split("is"))   #把字元串按某個字元串分割返回列表
65 
66 print("1+2\n+3+4".splitlines())   #把字元串按換行符分割返回列表
67 
68 print("Lyr".swapcase())   #大寫變小寫
69 
70 print(name.title())   #首字母都變成大寫
71 
72 print(name.zfill())   #自動補零
字元串常用函數

 四、列表

  1)為什麼要引入列表呢?

  當我們有很多很多的員工姓名要存起來的時候,就目前學到的知識,我們要定義很多個變數去分別存每個員工的姓名,但是我們這樣會累死的,而且會被開除了哈哈哈,這時候我們的列表就派上用場了,可以把它們全部存到一個列表裡面,相當於我們c++或者java學的數組。存儲較為方便,看起來也比較美觀。

  2)列表的操作

    增加,刪除,修改,查詢,複製,切片,合併,迴圈輸出等。

  

  1 # Author : Lyr
  2 
  3 names = ["ZhangYang","GuYun","XiangPeng","XuLiangChen"]
  4 
  5 print(names)
  6 
  7 print(names[0],names[2])
  8 
  9 print(names[1:3]) #切片
 10 
 11 print(names[-1]) #切片
 12 
 13 print(names[-2:-1])
 14 
 15 print(names[-2:]) #倒數兩個
 16 
 17 print(names[0:2]) #與下一個結果相同
 18 
 19 print(names[:2])
 20 
 21 #增加兩種(insert,append)
 22 names.append("LeiHaiDong") #追加到末尾
 23 
 24 print(names)
 25 
 26 names.insert(1,"ChenZhongHua") #插入到某個位置
 27 
 28 names.insert(3,"XinZhiYu")
 29 
 30 print(names)
 31 
 32 #修改
 33 names[2] = "XieDi"
 34 
 35 print(names)
 36 
 37 #刪除操作兩種(remove,del,pop)
 38 names.remove("ChenZhongHua")
 39 
 40 print(names)
 41 
 42 del names[1]
 43 
 44 print(names)
 45 
 46 names.pop(1)
 47 
 48 print(names)
 49 
 50 #查詢某個元素的位置
 51 print(names.index("LeiHaiDong"))
 52 
 53 names.insert(1,"ZhangYang")
 54 
 55 #計數某個元素的次數
 56 print(names.count("ZhangYang"))
 57 
 58 #反轉
 59 names.reverse()
 60 
 61 print(names)
 62 
 63 #對列表進行排序(按ascii排序規則)
 64 names.sort()
 65 
 66 print(names)
 67 
 68 #合併列表
 69 names2 = [1,2,3,4]
 70 
 71 names.extend(names2)
 72 
 73 print(names)
 74 
 75 #刪除列表
 76 
 77 del names2
 78 
 79 #複製列表,只複製第一層(淺copy)
 80 
 81 
 82 names3 = names.copy() #names元素改變,names3對應位置的元素不會變
 83 
 84 print(names3)
 85 
 86 name4 = ["Lyr","LXL"]
 87 
 88 names.insert(1,name4)
 89 
 90 print(names3)
 91 
 92 names[1][1] = "ZJH"
 93 
 94 print(names3)
 95 
 96 name4[1] = "LXL"
 97 
 98 print(names)
 99 
100 import copy
101 
102 #深copy 需要導入copy模塊
103 names3 = copy.deepcopy(names)
104 
105 #列表迴圈
106 
107 for i in names:
108     print(i)
109 
110 #跳著輸出
111 
112 for i in names[0:-1:2]: #0,-1可省
113     print(i)
列表操作函數

  總結:

    增加:

      insert()

      append()

    刪除:del()

       pop()

       remove()

    修改:list[] = ""   查詢:list[index]  複製:copy()  合併:extend  反轉:reverse()  排序:sort()

 

 五、元祖

  和列表相似,但是只有計數和獲取下標,對應的是count和index。

六、字典
  
1) 粗略的定義相當於c++或者java的映射,key-value鍵值對,每個key對應一個value。  
  
2) 字典的操作:              
      增加,刪除,修改,查詢,迴圈等操作。  
 1 # Author : Lyr
 2 
 3 #字典是無序的沒有index
 4 #創建
 5 info = {
 6     'stu1101': "TengLan Wu",
 7     'stu1102': "LongZe Luola",
 8     'stu1103': "XiaoZe Maliya",
 9 }
10 
11 print(info)
12 
13 #查詢字典裡面必須存在                 (2種查詢方法)
14 print(info["stu1101"])
15 
16 print(info.get("stu1103"))
17 
18 #通過某個key修改,當key存在時,就修改,如果沒有該key就創建一條
19 info["stu1104"] = "武藤蘭"
20 
21 print(info)
22 
23 #刪除(3種)
24 del info["stu1104"]
25 
26 info.pop("stu1103")
27 
28 #隨機刪除
29 info.popitem()
30 
31 #查看某個key是否在該字典里
32 print("stu1102" in info)
33 
34 
35 b = {"stu1101":"lyr",
36      1:3,
37      2:4}
38 info.update(b)
39 
40 print(info)
41 
42 print(info.items())  #將字典換成列表的形式
43 
44 c = dict.fromkeys([6,7,8],[1,{"name":"lyr"},444])#初始化一個字典,如果有多層的話 ,你修改一個元素,顯示全部修改了
45 c[7][1]["name"] = "Jack"
46 print(c)
47 
48 #字典的迴圈
49 for i in info:
50     print(i,info[i])
字典操作函數
  總結:
    增加:當修改某個key-value時,如果該key不存在,他就會增加到字典中。dic[key] = value。
    刪除:del,pop()
    修改:dic[key] = new_value,該key必須存在。
    查詢:dic.get(key)--->value
    迴圈:for i in dic:
        print(i,dic[i])
 3)字典的常用函數:
    除了上面的一些,例如:dic.keys() 列印所有的key值。
               dic.values() 列印所有的value值。
               dic.setdefault(key,new_value) 查看這個字典裡面有沒有這個key,有就返回,沒有就創建新的。
 

如果你喜歡小編寫的東西,那就請點點贊吧!!!
    

 


  

    


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Nexus2可以通過管理界面來上傳jar包到私庫中,而最新的Nexus3卻找不到了上傳界面,只能通過以下方式來發佈到私庫。 ...
  • 在java中要想實現多線程,有兩種手段,一種是繼續Thread類,另外一種是實現Runable介面。 對於直接繼承Thread的類來說,代碼大致框架是: ? 1 2 3 4 5 6 7 8 9 10 11 class 類名 extends Thread{ 方法1; 方法2; … public voi ...
  • 上篇文章我們瞭解了怎麼配置struts.xml文件,以及前端控制器配置怎麼配置,,Action進階,Result結果配置,Struts2中的Servlet的API的訪問,以及怎麼獲得請求參數.今天我們在深入講解一下OGNL表達式,OGNL中的符號,和常用的攔截器,標簽庫 一,OGNL表達式 1.概述 ...
  • 首先,聲明下,以下知識點並非全部來自BAT的面試題。 如果覺得在本文中筆者總結的內容能對你有所幫助,可以點贊關註一下。 本文會以引出問題為主,後面有時間的話,筆者陸續會抽些重要的知識點進行詳細的剖析與解答。 基礎篇 基本功 1、面向對象的特征 2、final, finally, finalize 的 ...
  • 前言 本文將介紹在Spring MVC開發的web系統中,獲取request對象的幾種方法,並討論其線程安全性。 原創不易,如果覺得文章對你有幫助,歡迎點贊、評論。文章有疏漏之處,歡迎批評指正。 歡迎轉載,轉載請註明原文鏈接:http://www.cnblogs.com/kismetv/p/8757 ...
  • 努力添加中...... ...
  • Python種類: Cpython, 來自於C語言的原生python, 咱們學習的就是這個. Jpython, 來自於java 的python, Ironpython 來自於C#的, Pypy 來自於python的python, python語言的動態編譯器. 註意是編譯器哦, 咱學習的Cpytho ...
  • 練習 3.1: 如果f函數返回的是無限制的float64值,那麼SVG文件可能輸出無效的多邊形元素(雖然許多SVG渲染器會妥善處理這類問題)。修改程式跳過無效的多邊形。 練習 3.2: 試驗math包中其他函數的渲染圖形。你是否能輸出一個egg box、moguls或a saddle圖案? 練習 3 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...