Python3 的元組

来源:https://www.cnblogs.com/PythonFCG/archive/2018/01/24/8343371.html
-Advertisement-
Play Games

元組(tuple):戴上了枷鎖的列表 元組與列表非常相似但是元組內元素的類型相同,且元組內的元素不能修改 1、創建元組的方法 與列表不同創建元組大部分情況下是用小括弧,例如 也可以不用小括弧,例如 因此創建元組的關鍵在於“逗號”,在創建單個元素的元組時應註意: >>> 8*8,(64,)>>> 8* ...


元組(tuple):戴上了枷鎖的列表

元組與列表非常相似但是元組內元素的類型相同,且元組內的元素不能修改

1、創建元組的方法

與列表不同創建元組大部分情況下是用小括弧,例如

tuple1=(1,2,3)
>>> tuple1
(1, 2, 3)

也可以不用小括弧,例如

tuple1=1,2,3
>>> tuple1
(1, 2, 3)

因此創建元組的關鍵在於“逗號”,在創建單個元素的元組時應註意:

tuple1=(1)
tuple2=(1,)
>>> type(tuple1)
<class 'int'>
>>> type(tuple2)
<class 'tuple'>

>>> 8*8,
(64,)
>>> 8*(8,)
(8, 8, 8, 8, 8, 8, 8, 8)
>>> 8*(8)
64

由以上例子可見創建一個元素的元組時要在元素後加一個逗號

2、更新和刪除一個元組的方法

由於元組是不可變的所以更新和刪除元組中的元素都是用元組分片的方法

tuple1=('迪麗熱巴','鹿晗','關曉彤','大黑牛','鄧超')
#我要刪除關曉彤
tuple1=tuple1[:2]+tuple1[3:]
>>> tuple1
('迪麗熱巴', '鹿晗', '大黑牛', '鄧超')

#-----------------------------------------------------
tuple1=('迪麗熱巴','鹿晗','關曉彤','大黑牛','鄧超')

#我要刪除關曉彤
tuple1=tuple1[:2]+tuple1[3:]


#我要加上範冰冰
tuple1=tuple1[:2]+('範冰冰',)+tuple1[2:]
>>> tuple1
('迪麗熱巴', '鹿晗', '範冰冰', '大黑牛', '鄧超')

3、相關的操作符

於列表一樣,元組有拼接操作符、重覆操作符、關係操作符、成員操作符、邏輯操作符

4、字元串

1)字元串和元組非常相似可以進行切片 操作,也可以使用索引來訪問單個字元

str1="I love You"

#分片操作
str1=str1[:5]
>>> str1
'I lov'
#索引
str2=str1[0]
>>> str2
'I'

2)字元串的更新與刪除跟元組一樣是用切片的方法

str1="I love You"

str1=str1[:5] +"love"+str1[6:]#新字元串

3)與字元串相關的操作符與元組一樣

拼接操作符、重覆操作符、關係操作符、成員操作符、邏輯操作符

4)字元串的內置方法

capitalize()

把字元串的第一個字元改為大寫

casefold()

把整個字元串的所有字元改為小寫

center(width)

將字元串居中,並使用空格填充至長度 width 的新字元串

count(sub[, start[, end]])

返回 sub 在字元串裡邊出現的次數,start 和 end 參數表示範圍,可選。

encode(encoding='utf-8', errors='strict')

以 encoding 指定的編碼格式對字元串進行編碼。

endswith(sub[, start[, end]])

檢查字元串是否以 sub 子字元串結束,如果是返回 True,否則返回 False。start 和 end 參數表示範圍,可選。

expandtabs([tabsize=8])

把字元串中的 tab 符號(\t)轉換為空格,如不指定參數,預設的空格數是 tabsize=8。

find(sub[, start[, end]])

檢測 sub 是否包含在字元串中,如果有則返回索引值,否則返回 -1,start 和 end 參數表示範圍,可選。

index(sub[, start[, end]])

跟 find 方法一樣,不過如果 sub 不在 string 中會產生一個異常。

isalnum()

如果字元串至少有一個字元並且所有字元都是字母或數字則返回 True,否則返回 False。

isalpha()

如果字元串至少有一個字元並且所有字元都是字母則返回 True,否則返回 False。

isdecimal()

如果字元串只包含十進位數字則返回 True,否則返回 False。

isdigit()

如果字元串只包含數字則返回 True,否則返回 False。

islower()

如果字元串中至少包含一個區分大小寫的字元,並且這些字元都是小寫,則返回 True,否則返回 False。

isnumeric()

如果字元串中只包含數字字元,則返回 True,否則返回 False。

isspace()

如果字元串中只包含空格,則返回 True,否則返回 False。

istitle()

如果字元串是標題化(所有的單詞都是以大寫開始,其餘字母均小寫),則返回 True,否則返回 False。

isupper()

如果字元串中至少包含一個區分大小寫的字元,並且這些字元都是大寫,則返回 True,否則返回 False。

join(sub)

以字元串作為分隔符,插入到 sub 中所有的字元之間。

ljust(width)

返回一個左對齊的字元串,並使用空格填充至長度為 width 的新字元串。

lower()

轉換字元串中所有大寫字元為小寫。

lstrip()

去掉字元串左邊的所有空格

partition(sub)

找到子字元串 sub,把字元串分成一個 3 元組 (pre_sub, sub, fol_sub),如果字元串中不包含 sub 則返回 ('原字元串', '', '')

replace(old, new[, count])

把字元串中的 old 子字元串替換成 new 子字元串,如果 count 指定,則替換不超過 count 次。

rfind(sub[, start[, end]])

類似於 find() 方法,不過是從右邊開始查找。

rindex(sub[, start[, end]])

類似於 index() 方法,不過是從右邊開始。

rjust(width)

返回一個右對齊的字元串,並使用空格填充至長度為 width 的新字元串。

rpartition(sub)

類似於 partition() 方法,不過是從右邊開始查找。

rstrip()

刪除字元串末尾的空格。

split(sep=None, maxsplit=-1)

不帶參數預設是以空格為分隔符切片字元串,如果 maxsplit 參數有設置,則僅分隔 maxsplit 個子字元串,返回切片後的子字元串拼接的列表。

splitlines(([keepends]))

按照 '\n' 分隔,返回一個包含各行作為元素的列表,如果 keepends 參數指定,則返回前 keepends 行。

startswith(prefix[, start[, end]])

檢查字元串是否以 prefix 開頭,是則返回 True,否則返回 False。start 和 end 參數可以指定範圍檢查,可選。

strip([chars])

刪除字元串前邊和後邊所有的空格,chars 參數可以定製刪除的字元,可選。

swapcase()

翻轉字元串中的大小寫。

title()

返回標題化(所有的單詞都是以大寫開始,其餘字母均小寫)的字元串。

translate(table)

根據 table 的規則(可以由 str.maketrans('a', 'b') 定製)轉換字元串中的字元。

upper()

轉換字元串中的所有小寫字元為大寫。

zfill(width)

返回長度為 width 的字元串,原字元串右對齊,前邊用 0 填充。

 

 

  5)密碼強度檢測

# 密碼安全性檢查代碼
#
# 低級密碼要求:
#   1. 密碼由單純的數字或字母組成
#   2. 密碼長度小於等於8位
#
# 中級密碼要求:
#   1. 密碼必須由數字、字母或特殊字元(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意兩種組合
#   2. 密碼長度不能低於8位
#
# 高級密碼要求:
#   1. 密碼必須由數字、字母及特殊字元(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三種組合
#   2. 密碼只能由字母開頭
#   3. 密碼長度不能低於16位

symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'

passwd = input('請輸入需要檢查的密碼組合:')

# 判斷長度
length = len(passwd)

while (passwd.isspace() or length == 0) :
    passwd = input("您輸入的密碼為空(或空格),請重新輸入:")
    length = len(passwd)

if length <= 8:
    flag_len = 1
elif 8 < length < 16:
    flag_len = 2
else:
    flag_len = 3

flag_con = 0

# 判斷是否包含特殊字元
for each in passwd:
    if each in symbols:
        flag_con += 1
        break
    
# 判斷是否包含字母
for each in passwd:
    if each in chars:
        flag_con += 1
        break

# 判斷是否包含數字
for each in passwd:
    if each in nums:
        flag_con += 1
        break    

# 列印結果
while 1 :
    print("您的密碼安全級別評定為:", end='')
    if flag_len == 1 or flag_con == 1 :
        print("")
    elif flag_len == 3 and flag_con == 3 and (passwd[0] in chars):
        print("")
        print("請繼續保持")
        break
    else:
        print("")

    print("請按以下方式提升您的密碼安全級別:\n\
    \t1. 密碼必須由數字、字母及特殊字元三種組合\n\
    \t2. 密碼只能由字母開頭\n\
    \t3. 密碼長度不能低於16位")
    break

 


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

-Advertisement-
Play Games
更多相關文章
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...