CC-Python-數據類型(int,str,bool)

来源:https://www.cnblogs.com/python-CC/archive/2019/04/05/10582610.html
-Advertisement-
Play Games

Python基礎數據類型之int,str,bool及常用方法 ...


1,int型:

  

s = 1
print(s,type(s))

1 <class 'int'>

 

  int是整形,例如1,2,3等整數,主要進行運算。

2,str(字元串)型:

 

str1 = 'abcdef'
print(str1,type(str1))

abcdef <class 'str'>

 

str是非常常用的一種數據類型,有許多種操作方法:

(1)索引與切片

索引

str可以通過索引找到某個元素,例如:   

str1 = 'abcdef'
print(str1[1])

b

 

str1 = 'abcdef'
print(str1[-1])

f
需註意:

  正向索引是從0開始,即第一個元素a的索引為0。

  逆向索引是從-1開始,即str1[-1] = 'f'

切片

切片是對字元串操作非常常用的一種方法,可以截取字元串任意一部分。

切片方法及參數為:

str[起始索引:截止索引:步長]

註意:

  起始索引到截止索引是一個左閉右開的範圍,即包括起始索引的元素,但不包括截止索引的元素

  步長可以設定,預設為1;

  str[起始索引:]  ——>  由起始索引到字元串最後一個元素

  str[:截止索引]  ——>  由字元串第一個元素到截止索引前一個元素

  str[:]  ——>  整個字元串

str1 = 'abcdef'
str2 = str1[1:3]
print(str2)

bc

(2)find(),index()

這兩個方法是通過元素來找到對應的索引:

str1 = 'abcdef'
print(str1.find('c'))
print(str1.index('c'))

2
2

不同的是,如果要找的元素不在這個字元串里,find會返回 -1 ,而index則會報錯

str1 = 'abcdef'
print(str1.find('g'))
print(str1.index('g'))

-1
ValueError: substring not found

(3)upper(),lower()

upper,字元串內英文字母全部大寫。

lower,字元串內英文字母全部小寫。

str1 = 'abcdef'
print(str1.upper())
print(str1.lower())

ABCDEF
abcdef

字元串內還包含其他內容如漢字或者數字不產生影響:

str1 = '123abcdef小蘇打'
print(str1.upper())
print(str1.lower())

123ABCDEF小蘇打
123abcdef小蘇打

(4)startswith(),endswith()

startswith,判斷字元串是否以...開頭。

endswith,判斷字元串是否以...結尾。

這兩種方法可切片判斷,返回類型為布爾值

str1 = 'abcdef'
print(str1.startswith('a'))
print(str1.endswith('g'))

True
False
str1 = 'abcdef'
print(str1[1:].startswith('a'))
print(str1[2:5].endswith('e'))

False
True

 (5)captilize()

captilize的作用是首字母大寫,其他字母小寫

str1 = 'abcdef'
print(str1.capitalize())

Abcdef

如果字元串開頭第一個元素不是字母,則不變

str1 = '123abcdef小蘇打'
print(str1.capitalize())

123abcdef小蘇打

(6)swapcase()

swapcase的作用是將字元串內的字母元素大小寫反轉,即'A'—>'a','b'—>'B'

str1 = 'abCdEf'
print(str1.swapcase())

ABcDeF

(7)replace()

replace是代替的意思,這個方法的用法及參數為:

str.replace(old,new,n)

old : 舊的內容,被替換的內容

new : 新的內容,用來替換舊內容的新內容

n :替換次數,可以不寫(預設值為-1,全部替換)

str2 = 'abcabcabc'
print(str2.replace('a','A',2))

AbcAbcabc

(8)center()

center參數如下:

str.center(width,填充物)

具體含義是:返回一個以 原字元串 居中,以 填充物 填充至長度為 width 的一個字元串

如果 width 小於 原字元串 長度,則不會填充,仍是原字元串;填充物 預設為 空格,即 ' '

str2 = 'Hello Python'
print(str2.center(40,'*'))

**************Hello Python**************

(9)strip(),lstrip(),rstrip()

strip()的作用是去除字元串首尾的 空格,換行符, Tab等

lstrip(),即 left strip(),作用是去除字元串左邊(首)的空格,換行符,Tab等

rstrip(),即 right strip(),作用是去除字元串右邊(尾)的空格,換行符,Tab等

str2 = '   Hello Python   '
print(str2)
print(str2.strip())
print(str2.lstrip())
print(str2.rstrip())


   Hello Python   
Hello Python
Hello Python   
   Hello Python
註意:

strip()中可以傳入參數以自定義去除:

str.strip(參數),去除開頭和結尾的 ‘參數’,直到不是‘參數’為止

str2 = '***Hello Python***'
print(str2.strip('*'))

Hello Python

另外,如果參數為多個字元,會將其分割成一個一個字元進行去除

str2 = 'Hello Python'
print(str2.strip('Heon'))

llo Pyth

所以多個字元沒有順序之分,也就是說,去除'abc'與去除'cba','acb' 的結果是一樣的

(10)split()

split()的作用是分割字元串,預設以空格分割,分割完返回的數據類型為列表list

split()參數有兩個,split(分割符,次數n),即以  分割符  對原字元串分割  n  次

str2 = 'Hel lo Pyt hon'
print(str2.split(' ',2))

['Hel', 'lo', 'Pyt hon']

此外,還有一個從右側開始的分割函數 rsplit(),用法相同,但是從右往左計數分割

str2 = 'Hel lo Pyt hon'
print(str2.rsplit(' ',2))

['Hel lo', 'Pyt', 'hon']

如果字元串第一個元素(最後一個元素)就是分割符,則會首先(最後)分割出一個空字元串 ‘’ 作為列表的第一(最後)一個元素

str2 = '*Hel*lo*Py*thon*'
print(str2.split('*'))

['', 'Hel', 'lo', 'Py', 'thon', '']

(11)format()

這裡只說字元串格式化的三種用法:

①按順序填充

s = 'my name is {}, age {}'.format('Mike',18)
print(s)

my name is Mike, age 18

②按索引填充

s = 'my name is {1}, age {0}'.format(20,'Cc')
print(s)

my name is Cc, age 20

③按關鍵字填充

s = 'my name is {name}, age {age}'.format(age =20,name = 'Cc')
print(s)

my name is Cc, age 20

有時間再補充

(12)isdigit(),isalpha(),isalnum()

isdigit() 判斷字元串是否全部都是數字如'123' 

isalpha() 判斷字元串是否全部由字母組成如'abc'

isalnum() 判斷字元串是否全部由 字母或數字 組成如'123abc'

s1 = '123'
s2 = 'abc'
s3 = '123abc'
print(s1.isdigit(),s1.isalpha(),s1.isalnum())
print(s2.isdigit(),s2.isalpha(),s2.isalnum())
print(s3.isdigit(),s3.isalpha(),s3.isalnum())

True False True
False True True
False False True

 3,bool型

bool即布爾型,只有True和False兩個值,用於邏輯判斷對與錯,常與if,while連用:

while 1 < 2 :
    if 2 < 3 :
        print('a')
    if 4 < 3 :
        print('b')
    break

a

 int型轉bool型:

  如果要判斷的int型不等於0,則為True;等於0,則為False

if 0.01 :
    print('1正確')
if 0 :
    print('2正確')
if -0.1 :
    print('3正確')

1正確
3正確

str型轉bool型:

  如果字元串不為空,則為True;為空則為False

if '' :
    print('為空可以輸出')
if 'a' :
    print('不為空可以輸出')

不為空可以輸出

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 定義: 指原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。不需要知道任何創建的細節,不調用構造函數適用場景: 詳解: 接下來我們分下麵幾部分講解: 1.原型模式的核心 其實很簡單,就是實現Cloneable介面,然後重寫clone()方法。上面我們已經說過 ,當你在上面的適用場景中的時 ...
  • 模式的誕生與定義 -Context(模式可適用的前提條件)-Theme或Problem(在特定條件下要解決的目標問題)-Solution(對目標問題求解過程中各種物理關係的記述) 設計模式的分類 Gof設計模式 創建型模式(關註對象的創建過程,對類的實例化過程進行抽象,描述如何將對象的創建和使用分離 ...
  • 概念重覆請求是指一個請求因為某些原因被多次提交,場景簡述如下:1)用戶快速多次點擊按鈕2)Nginx失敗重試機制3)服務框架失敗重試機制4)MQ消息重覆消費5)第三方支付支付成功後,因為異常原因導致的多次非同步回調; 冪等性是指同樣的請求參數,多次請求返回的結果相同。一般是因為重覆請求導致的重覆操作等 ...
  • 經過前兩個模式的學習,是不是對設計模式有了進一步的認識了呢,現在,我們繼續沖鴨。 本章可以稱為“給愛用繼承的人一個全新的設計眼界”。這裡我們即將再度探討典型的繼承濫用問題,我們將學到如何使用對象組合的方式,做到在運行時裝飾類。為什麼呢?一旦熟悉了裝飾的技巧,你將能夠在不修改任何底層代碼的情況下,給對 ...
  • 多線程 什麼是線程? - 能獨立運行的基本單位——線程(Threads)。 - 線程是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。 - 一條線程指的是進程中一個單一順序的控制流,一個進程中可以併發多個線程,每條線程並行執行不同的任務。 - 就好比生產的工廠,一個車 ...
  • 前言 開心一刻 女兒: “媽媽,你這麼漂亮,當年怎麼嫁給了爸爸呢?” 媽媽: “當年你爸不是窮嘛!‘ 女兒: “窮你還嫁給他!” 媽媽: “那時候剛剛畢業參加工作,領導對我說,他是我的扶貧對象,我年輕理解錯了,就嫁給他了!” 女兒...... @Import註解應用 應用開發中,當我們的功能模塊比較 ...
  • 列表推導式和生成表達式有相似,但是卻有本質不不同簡單的把它們之間的關係理一理吧:# 列表推導式: res=[i for i in range(6)] print(res) 結果:[0, 1, 2, 3, 4, 5] # 生成表達式: res=(i for i in range(6)) print(r ...
  • Python 簡介 Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麵向對象的腳本語言。 Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。 Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麵向對象的腳 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...