Python字符串數據類型之字符串

四、Python數據類型

4.1、Python內置數據類型

  • 整型:int
  • 浮點型:float
  • 布爾類型:bool
  • 字符串:str
  • 二進制類型:bytes、bytearray
  • 復數:complex
  • 列表:list
  • 元組:tuple
  • 字典:dict
    a = 100 # 整型print(type(a))a = 100.0  # 浮點型print(type(a))a = True   # 布爾類型print(type(a))a = '12345' # 字符串類型print(type(a))a = b'\x01\x02\x03\x04\x05\x06\x07\x08' # 二進制類型print(type(a))a = 5 + 2j  # 復數print(type(a))a = [1, 2, 3, '123']  # 列表print(type(a))a = (1, 2, 3, '123')  #元組print(type(a))a = {"A1":"B1","A2":"B2","A3":"B3"}  # 字典print(type(a))

輸出:

<class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'>
<class 'bytes'>
<class 'complex'>
<class 'list'>
<class 'tuple'>
<class 'dict'>

4.2、字符串類型

4.2.1、字符串定義

python 中的字符串字面量由單引號或雙引號括起來表示:

a = '12345'
print(a)
a = "12345"
print(a)

字符串也可以使用三個單引號或者三個雙引號括起來表示,這種方式支持換行符的輸入:

    a = '''
鋤禾日當午,
汗滴禾下土。
誰知盤中餐,
粒粒皆辛苦。'''

等價于:

a = "鋤禾日當午,\n汗滴禾下土。\n誰知盤中餐,\n粒粒皆辛苦。\n"

4.2.2、字符串拼接

4.2.2.1、使用“+”拼接
    str1 = "姓名:"str2 = "張三"print(str1+str2)

輸出:

姓名:張三
4.2.2.2、使用join函數拼接
  • 使用join函數拼接的效率比使用“+”高很多,因為使用“+”會涉及很多內存復制以及垃圾回收操作
  • join只接收一個參數,可以是元組、字典、列表、字符串等
  • 雙引號""中的內容會拼接到每兩個字符串之間
    string_a = " ".join(["I", "love", "python!"])print(string_a)string_b = "I"string_c = "love"string_d = "python!"string_e = "*".join([string_b, string_c,string_d])print(string_e)

輸出:

I love python!
I*love*python!
4.2.2.3、使用格式化輸入拼接
    str1 = "姓名:"str2 = "張三"str3 = "%s%s 年齡:%d" % (str1, str2, 18)print(str3)

輸出:

姓名:張三 年齡:18
4.2.2.4、使用“*”拼接

“*”用于拼接多個相同的字符串,表示這個字符串重復n次:

    a = "1234x"*3print(a)

輸出:

1234x1234x1234x

4.2.3、字符串格式化

4.2.3.1、格式化操作符:%
    str1 = "姓名:"str2 = "張三"str3 = "%s%s 年齡:%d" % (str1, str2, 18)print(str3)

輸出:

姓名:張三 年齡:18
4.2.3.1、使用format函數

format函數可以通過指定位置和參數來格式化字符串,字符串中使用大括號“{}”表示.

  • 使用位置格式化字符串,數字表示第幾個參數,0表示第一個參數,且0是必須得;
  • 使用參數來格式化字符串:大括號“{}”中填寫參數,format中填寫參數對應的值;
    str1 = "{0} love {1}!".format("I", "python")str2 = "{a} love {b}!".format(a="I", b="python")print(str1)print(str2)

輸出:

I love python!
I love python!
4.2.3.3、使用f-strings格式化

f-string,亦稱為格式化字符串常量(formatted string literals),是Python3.6新引入的一種字符串格式化方法,該方法源于PEP 498 – Literal String Interpolation,主要目的是使格式化字符串的操作更加簡便。f-string在形式上是以 f 或 F 修飾符引領的字符串(f’xxx’ 或 F’xxx’),以大括號 {} 標明被替換的字段;f-string在本質上并不是字符串常量,而是一個在運行時運算求值的表達式:
f-string在功能方面不遜于傳統的%-formatting語句和str.format()函數,同時性能又優于二者,且使用起來也更加簡潔明了,因此對于Python3.6及以后的版本,推薦使用f-string進行字符串格式化。

  1. f-string使用{}表示被替換字段,里面直接填入被替換內容,被替換內容可以是變量、表達式、函數
    a = 1b = 2str3 = f"{a} + {b} = {a + b}"print(str3)

輸出:

1 + 2 = 3
  1. 可以使用冒號 : 后跟格式規范來指定數值或字符串的顯示方式
    PI = 3.1415926print(f"PI的值約等于:{PI:.3f}") # 保留三位小數print(f"PI的值約等于:{PI:<.3f}") # 左對齊,保留三位小數print(f"PI的值約等于:{PI:>10.3f}") # 右對齊,總寬度10個字符,保留三位小數print(f"PI的值約等于:{PI:^10.3f}") # 居中對齊

輸出:

PI的值約等于:3.142
PI的值約等于:3.142
PI的值約等于:     3.142
PI的值約等于:  3.142 
  1. 關于對齊,如果寬度不夠默認是補空格,我們也可以指定補充的字符:
    PI = 3.1415926print(f"PI的值約等于:{PI:*>10.3f}") # 右對齊,總寬度10個字符,保留三位小數print(f"PI的值約等于:{PI:*<10.3f}")  # 做對齊,總寬度10個字符,保留三位小數print(f"PI的值約等于:{PI:*^10.3f}") # 居中對齊,總寬度10個字符

輸出:

PI的值約等于:*****3.142
PI的值約等于:3.142*****
PI的值約等于:**3.142*** 
4.2.4、字符串處理常用函數
1) 大小寫轉換str.lower、str.upper以及str.casefold。

lower和casefold都可以把英文字符轉換成小寫,但是lower只能轉換英文字符,casefold還可以轉換其它語言的字符。

    str1 = "Hello World!"print(str1.upper())print(str1.lower())print(str1.casefold())

輸出:

HELLO WORLD!
hello world!
hello world!
2) 字符串查找和替換

str1.find(substring, start, end)
功能:在字符串str1的起始位置start到結束位置end之間查找子字符串substring,start和end兩個參數可以省略,表示在整個字符串中查找
參數:substring表示要查找的子串 start表示字符串起始位置索引,從0開始 end表示字符串結束位置

    str1 = "I love python!"print(str1.find("love")) # 在整個字符串中查找print(str1.find("love", 1))  # 從第一個字符之后開始查找print(str1.find("love", 1, 6))  # 從第一個字符和第6個字符之間查找print(str1.find("love", 2, -1))  # 從第2個字符和倒數第一個字符之間查找

str1.replace(old, new, count)
功能:將str1中的old字符串替換為new字符串,如果設置了第三個參數count,則表示最多替換count次

    str1 = "I*love*python!"print(str1.replace("*", "-"))  # 將str1中的所有“*”替換成“-”print(str1.replace("*", "-", 1))  # 將str1中的“*”替換成“-”且只替換一次
3)判斷字符串是否以指定字符串開頭或者結尾

str1.endwith(substring, start, end)
功能:判斷字符串str1的起始位置start到結束位置end之間的字符串,是否以substring結尾,start和end兩個參數可以省略
返回值:成功返回True,失敗返回False
str1.startwith(substring, start, end) 參數和返回值、用法與endwith相同

    str1 = "music.wav"print(str1.endswith('.wav'))  # 在整個字符串中判斷print(str1.endswith('.wav', 3)) # 從第三個字符串開始查找print(str1.startswith('m'))  # 判斷字符串是否以‘m’開頭print(str1.startswith('m', 3))  #判斷字符串中第三個字符開始的字符串是否以‘m’開頭

輸出:

True
True
4)判斷字符串是否為純大小寫字符、數字
    print("1234".isdigit())  # 判斷字符串是否為數字print("abcd".islower())  # 判斷字符串是否為純小寫字符print("ABCD".isupper())  # 判斷字符串是否為純大寫字符print(".#$%Y".isascii())  # 判斷字符串是否為純assic字符print("   ".isspace())   # 判斷字符串是否為純空格字符

輸出:

True
True
True
True
True

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/22942.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22942.shtml
英文地址,請注明出處:http://en.pswp.cn/web/22942.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#WPF控件Textbox綁定浮點型數據限制小數位方法

本文講解C#WPF控件Textbox綁定浮點型數據限制小數位方法。 XAML中,使用StringFormat來格式化TextBox的文本 <Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.m…

【使用 uiautomator2 腳本進行波點音樂app自動化操作的教程】

本教程將指導您使用 uiautomator2 庫編寫腳本&#xff0c;實現自動化操作。如果您需要在設備斷開連接或出現異常時重新連接設備并繼續執行任務&#xff0c;這里有一份詳細的代碼示例和使用說明。 環境準備 安裝 Python&#xff1a; 確保您的系統上安裝了 Python&#xff08;推…

[數據集][目標檢測]盲道檢測數據集VOC+YOLO格式2173張1類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;2173 標注數量(xml文件個數)&#xff1a;2173 標注數量(txt文件個數)&#xff1a;2173 標注…

基于R語言BIOMOD2 及機器學習方法的物種分布模擬與案例分析實踐技術

BIOMOD2是一個R軟件包&#xff0c;用于構建和評估物種分布模型&#xff08;SDMs&#xff09;。它集成了多種統計和機器學習方法&#xff0c;如GLM、GAM、SVM等&#xff0c;允許用戶預測和分析物種在不同環境條件下的地理分布。通過這種方式&#xff0c;BIOMOD幫助研究者評估氣候…

常用接口測試及接口抓包常用的測試工具

一、常用抓包工具 01、F12 Web端的話&#xff0c;google瀏覽器直接F12開發者模式 點擊network進行抓包分析。 02、Fiddler抓包工具 客戶端和服務端的http代理&#xff0c;客戶端所有的請求都要先經過Fiddler&#xff0c;到響應的服務端&#xff0c;然后端返回的所有數據也都…

pytorch數學操作

文章目錄 1.torch.bitwise_not()2.torch.bitwise_and()3.torch.ceil()3.torch.clamp()4.torch.torch.floor() 1.torch.bitwise_not() 在 PyTorch 中&#xff0c;torch.bitwise_not() 是一個函數&#xff0c;用于執行逐元素的位非&#xff08;bitwise NOT&#xff09;操作。 t…

如何組織基于Sqlalchemy的項目

在使用 SQLAlchemy 構建項目時&#xff0c;可以遵循一些常用的組織結構和最佳實踐&#xff0c;以確保項目清晰、易于維護。下面就是我在構建項目時遇到的一些問題&#xff0c;并做了詳細的記錄&#xff0c;為了方便大家學習少走一些彎路。 1、問題背景 在基于Sqlalchemy的項目…

IDEA的使用配置Maven(及selenium+webdriver的下載配置)

一. 下載maven 1. maven官網下載鏈接 2.??安裝第二行第一列的zip壓縮包 ???????? 二. 配置環境變量 1.新建環境變量 2.在系統變量Path環境變量中添加%Maven_HOME%\bin 三.驗證環境變量是否配置成功 winr >cmd>mvn -v 如果出現Maven的版本信息&#xff0…

Matlab解決矩陣微分方程建模(代碼開源)

#用matlab解決施密特正交規范化矩陣之后&#xff0c;我又想到矩陣的微分方程計算量真的太大了&#xff0c;來回轉化讓我頭大&#xff0c;于是我嘗試了一下用matlab建立模型來解決這類問題。 代碼部分如下&#xff1a;注解還挺清晰的&#xff1a; %%%解微分方程組%eg&#xff…

【設計模式】代理模式(結構型)???

文章目錄 1.概念1.1 什么是代理模式1.2 優點與缺點 2.實現方式2.1 靜態代理2.2 動態代理 3. Java 哪些地方用到了代理模式4. Spring 哪些地方用到了代理模式 1.概念 1.1 什么是代理模式 代理模式&#xff08;Proxy Pattern&#xff09;是一種結構型設計模式&#xff0c;它允許…

帶你認識ffmpeg

FFmpeg是一個開源的跨平臺音視頻處理工具集&#xff0c;它提供了豐富的音視頻處理功能和庫&#xff0c;被廣泛應用于音視頻編解碼、格式轉換、流媒體處理等領域。 應用場景&#xff1a; 視頻編解碼&#xff1a;FFmpeg可以對各種視頻格式進行編解碼&#xff0c;包括但不限于AV…

類的特殊成員函數

使用類的嵌套&#xff0c;并自定義析構函數 #include <iostream>using namespace std; class Per{ private:string name;int age;double hight;double weight; public:Per(string name,int age,double hight,double weight):name(name),age(age),hight(hight),weight(we…

圖片如何修改尺寸?四種好用的修改圖片尺寸方法!

圖片如何修改尺寸&#xff1f;圖片是一種常見的文件類型&#xff0c;它存在于什么生活的方方面面&#xff0c;雖然圖片很好用&#xff0c;但是大家日常也要注意圖片的尺寸&#xff0c;如果圖片尺寸不對是會帶來很多問題的&#xff0c;下面小編就舉例說明幾個問題&#xff0c;首…

web 前端技術的一些知識點分享~

css的規則是由選擇器和 組成的 目錄 css的規則是由選擇器和 組成的 CSS&#xff08;層疊樣式表&#xff09;的規則是由選擇器和聲明塊組成的。 選擇器用于選定頁面上的元素&#xff0c;這可以是一個元素標簽&#xff08;如 h1&#xff09;、類&#xff08;如 .classname…

Unity 自定義房間布局系統 設計與實現一個靈活的房間放置系統 ——物體占用的區域及放置點自動化

放置物體功能 效果&#xff1a; 功能&#xff1a; 自定義物體占用區域的大小一鍵調整占用區域調整旋轉度數&#xff0c;分四個擋位&#xff1a; NoRotation&#xff1a;該物體不能調整旋轉。MaximumAngle&#xff1a;每次轉動90。NormalAngle&#xff1a;每次轉動45&#xff…

根據租戶id切換數據源

花了半天時間&#xff0c;使用spring-boot實現動態數據源&#xff0c;切換自如 在一個項目中使用多個數據源的情況很多&#xff0c;所以動態切換數據源是項目中標配的功能&#xff0c;當然網上有相關的依賴可以使用&#xff0c;比如動態數據源&#xff0c;其依賴為&#xff0c;…

銀河麒麟解壓命令

銀河麒麟&#xff08;Kylin&#xff09;操作系統是基于Linux的操作系統分支之一&#xff0c;其使用的解壓命令與Linux系統中的命令基本相同。 在銀河麒麟系統中&#xff0c;常用的解壓命令有以下幾種&#xff1a; 對于.tar文件&#xff1a; tar -xvf file.tar對于.tar.gz或.…

探索營銷系統業務架構的設計與應用

隨著市場競爭的日益激烈和消費者需求的不斷變化&#xff0c;營銷系統作為企業營銷管理的重要組成部分&#xff0c;扮演著至關重要的角色。本文將深入探討營銷系統業務架構的設計與應用&#xff0c;從客戶關系管理、營銷活動管理、數據分析和智能化服務等方面進行全面解析&#…

Innodb Buffer Pool緩存機制(四)預讀與Mysql改進的LRU策略

一、什么是預讀 InnoDB提供了預讀(read ahead)。所謂預讀&#xff0c;就是InnoDB認為執行當前的請求可能之后會讀取某些頁面&#xff0c;就預先把它們加載到Buffer Pool中。根據觸發方式的不同&#xff0c;預讀又可以細分為下邊兩種&#xff1a; 1.1 線性預讀 InnoDB提供了一…

掘金AI商戰寶典-高階班:如何用AI制作視頻(11節視頻課)

課程下載&#xff1a;掘金AI商戰寶典-高階班&#xff1a;如何用AI制作視頻(11節視頻課)-課程網盤鏈接提取碼下載.txt資源-CSDN文庫 更多資源下載&#xff1a;關注我。 課程目錄&#xff1a; 1-第一講用AI自動做視頻(上)_1.mp4 2-第二講用AI自動做視頻(中)_1.mp4 3-第四講A…