Python基礎之公共方法

来源:https://www.cnblogs.com/yifchan/archive/2019/04/29/python-1-9.html
-Advertisement-
Play Games

Python基礎之容器類型的公共方法,包括 Python內置函數,切片,運算符,完整的for迴圈。其中,Python內置函數包括 內置函數羅列,內置函數使用;切片僅 包含切片的定義和使用;運算符包括 運算符羅列,運算符的使用;完整的for迴圈 包括 完整的for迴圈語法,for迴圈演示,break打... ...


公共方法:就是列表,元組,字典,字元串能共同使用的方法;

Python內置函數

內置函數羅列

函數 描述 備註
len(item) 計算容器中的元素個數
del(item) 刪除變數 del有兩種方法
max(item) 返回容器中元素最大值 如果是字典,只針對key比較
min(item) 返回容器中元素最小值 如果是字典,只針對key比較
cmp(item1,item2) 比較兩個值,-1小於/0等於/1大於 python3取消了cmp函數

註意:字元串具有以下規則:"0"<"A"<"a"

內置函數使用

len() 計算容器中元素的個數;

del 用關鍵字和函數兩種方式,兩種方式結果一樣;del 變數;del(變數);

list = [1, 2,4]
del list[1]
list
[1, 4]
del(list[0])
list
[4]
del(list)
# 刪除列表後,會報錯,未定義

max和min函數

test_str = "qeqfeijovodmbahidkolmc"
max(test_str)
'v'
min(test_str)
'a'
# 如果是字典,只針對key比較
test_list = [3, 9, 0, 1]
max(test_list)
9
min(test_list)
tset_dict = {"a": "3", "b": "1", "c": "2"}
max(tset_dict)
'c'
min(tset_dict)
'a'

python3中取消了cmp比較運算符,但我們可以直接通過比較運算符<>進行比較;
數字可以比較,字元串可以比較,元組,列表可以比較大小,但字典不能比較大小

切片

  • 切片使用索引值來限定範圍,從一個大的字元串中切出小的字元串;
  • 字元串,列表,元組可以進行切片,因為它們有序;但字典不能進行切片,因為字典無序;

切片示例如下:

t_list = [3,1,2,5,7]
t_list[0:3]
[3, 1, 2]
t_tuple = (1,2,3,4,5)
t_tuple[0:3]
(1, 2, 3)

運算符

運算符羅列

運算符 Python表達式 結果 描述 支持的數據類型
+ [1,2]+[3,4] [1,2,3,4] 合併 字元串,列表,元組
* ["hi"]*4 ["hi","hi","hi","hi"] 重覆 字元串,列表,元組
in 3 in (1,2,3) True 元素是否存在 字元串,列表,元組,字典
not in 4 not in(1,2,3) True 元素是否不存在 字元串,列表,元組,字典
> >= == < <= (1,2,3)<(2,2,3) TRue 元素比較 字元串,列表,元組
  • in在對字典操作時,判斷的是字典的鍵
  • in和not in被稱為成員運算符

運算符的使用

*可以用於列表元組,但不能用於字典,因為字典的key必須是惟一的

[1,2]*5
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
(1,2)*5
(1, 2, 1, 2, 1, 2, 1, 2, 1, 2)

+運算符表示合併,可以用於列表,元組,字元串合併;不同類型之間不能合併,比如元組與列表;

"hello" + "world"
'helloworld'
(1,2) + (3,4)
(1, 2, 3, 4)
[1,2] + [3,4]
[1, 2, 3, 4]

註意,當我們用+合併列表時,是生成一個新列表

append和extend方法的區別:extend會將一個指定的列表參數合併到列表中,即分散的加入;而append會將一個指定的列表當成一個整體的元素合併到列表中;
用append和extend是在原列表上擴展元素。

in和not in的使用

  • 包含和不包含;
  • 可以用於字元串,列表,元組,字典;但應註意在字典中,in只針對於字典的key做檢查。

in和not in的使用如下:

"a" in "asdfg"
True
"a" not in "asdfg"
False
2 in (1,2,3,4)
True
2 not in [1,2,3,4]
False
"name" in {"name": "zhangsan"}
True
"zhangsan" in {"name": "zhangsan"}
False

完整的for迴圈

完整的for迴圈語法

for xx in 集合:
    xxx
else:
    xxx

這就是完整的for迴圈的語法結構;

  • 只要for迴圈不被break打斷,else中的代碼就會在for迴圈結束後執行;
  • 如果for迴圈被打斷,就會直接執行for迴圈外部的後續代碼

完整的for迴圈演示

students = [{"name": "韓信"}, {"name": "李白"}, {"name": "劉備"}]

for stu in students:
    print(stu)
else:
    print("我是for迴圈遍歷結束後的else語句")
print("for迴圈結束了")

# {'name': '韓信'}
# {'name': '李白'}
# {'name': '劉備'}
# 我是for迴圈遍歷結束後的else語句
# for迴圈結束了

break打斷for迴圈演示

students = [{"name": "韓信"}, {"name": "李白"}, {"name": "劉備"}]

for stu in students:
    print(stu)
    if stu["name"] == "李白":
        print("李白,你媽媽喊你回家吃飯了")
        break
else:
    print("我是for迴圈遍歷結束後的else語句")
print("for迴圈結束了")

# {'name': '韓信'}
# {'name': '李白'}
# 李白,你媽媽喊你回家吃飯了
# for迴圈結束了

for else的應用場景

  • 在迭代遍歷嵌套的數據類型時,例如一個列表包含了多個字典

需求:需要判斷某一個字典中 是否存在指定的值
如果存在,提示並且退出迴圈
如果不存在,在迴圈整體結束後,希望得到一個統一的提示

找到了的情況

students = [{"name": "韓信"}, {"name": "李白"}, {"name": "劉備"}]

find_stu = "李白"

for stu in students:
    print("正在查找...", stu["name"])
    if stu["name"] == find_stu:
        print("%s,你媽媽喊你回家吃飯了" % find_stu)
        break
else:
    print("不好意思,你家%s沒在這個班" % find_stu)
print("for迴圈結束了")

# 正在查找... 韓信
# 正在查找... 李白
# 李白,你媽媽喊你回家吃飯了
# for迴圈結束了

沒找到的情況

students = [{"name": "韓信"}, {"name": "李白"}, {"name": "劉備"}]

find_stu = "張飛"

for stu in students:
    print("正在查找...", stu["name"])
    if stu["name"] == find_stu:
        print("%s,你媽媽喊你回家吃飯了" % find_stu)
        break
else:
    print("不好意思,你家%s沒在這個班" % find_stu)
print("for迴圈結束了")

# 正在查找... 韓信
# 正在查找... 李白
# 正在查找... 劉備
# 不好意思,你家張飛沒在這個班
# for迴圈結束了

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

-Advertisement-
Play Games
更多相關文章
  • 一、Vue組件(.vue文件) 組件 (Component) 是 Vue.js 最強大的功能之一。組件可以擴展 HTML 元素,封裝可重用的代碼。在較高層面上,組件是自定義元素,Vue.js 的編譯器為它添加特殊功能。在有些情況下,組件也可以表現為用 is 特性進行了擴展的原生 HTML 元素。 所 ...
  • dubbo SPI SPI,全程Service Provider interface, java中的一種藉口擴展機制,將藉口的實現類註明在配置文件中,程式在運行時通過掃描這些配置文件從而獲取全部的實現類。 java 原生的spi將藉口的實現類信息放在META INF/services/文件中。spi ...
  • 1.USB匯流排類型: OHCI(Open Host Controller Interface)是支持USB1.1的標準,但它不僅僅是針對USB,UHCI(Universal Host Controller Interface),是Intel主導的對USB1.0、1.1的介面標準,與OHCI不相容EH ...
  • https://codereview.qt-project.org/#/c/236948/2/src/corelib/tools/qalgorithms.h ...
  • 前言 最近在做智慧工廠相關的工作,多多少少瞭解了一點物聯網相關的技術。於是心血來潮,尋思自己可以做點什麼,恰巧之前聽說過一些樹莓派的傳聞,於是就有了這麼一款鬧鐘。 需要說明的是,在看這篇文章之前,你至少應該是一個會裝操作系統的程式猿,懂點 Linux,會些 Python,最主要的是你得有一個女朋友。 ...
  • 所屬網站分類: python基礎 > 模塊,庫 作者:追夢騷年 鏈接:http://www.pythonheidong.com/blog/article/68/ 來源:python黑洞網,專註python資源,python教程,python技術! 獲取當前時間的模塊/方法是什麼? 獲取日期加時間使用 ...
  • 一、Python 簡介 Python定義:是一個免費、開源、跨平臺、動態、面向對象的編程語言。 Python程式的執行(運行)方式有兩種:互動式、文件式 互動式在命令行輸入指令,回城即可得到結果。1.打開終端2.進行互動式:python33.編寫代碼:print(“hello world”)4.離開 ...
  • [TOC] 有名函數(掌握) 我們之前定的函數都是有名函數,它是基於函數名使用。 from func from func from func 匿名函數(掌握) 匿名函數,他沒有綁定名字,使用一次即被收回,加括弧既可以運行。 (x, y) 3 與內置函數聯用(掌握) 匿名函數通常與max()、min( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...