c語言軟件幻化,python字符串處理

字符串

字符串:不可變有序序列,在python可使用 "abc" , """abc""" ,'abc' 的形式表示,屬于一種字面常量,python3中字符均屬于Unicode編碼。

字符串可以被迭代,遍歷,切片,索引

字符串一旦定義不可增加、刪除、修改自身元素。對字符串的修改操作實質是創建一個新的字符串對象重新賦值

# 迭代遍歷

s = " this is a string\n"

for i in s:

print(i)

# 索引,切片

print(s[4], s[2:5],s[2,-3])

字符串遍歷生成列表,元組

lis = list(s) # 遍歷 s 中的每一個元素生成,組成一個列表返回

tp = tuple(s) # 遍歷 s 中的每一個元素生成,組成一個元組返回

列表,元組生成字符串

# 列表,元組,拼接為字符串,使用str.join()方法

lis = ['h','e','l','l','o']

# 遍歷lis,將lis中的每一個元素拼接為字符串并返回,

# 注:lis中每一個元素必須是字符串,否則不能拼接,可用str()轉換

num_list = [1,2,3,4,5]

# s2 = "".join(num_list) ==> 將會報錯,無法拼接數值

s1 = "".join(map(str, num_list)) # 將數值全部轉化為字符串拼接

s2 = "".join(lis)

# 也可以指定 " ,"作為連接符號進行拼接

s3 = ","join(lis)

print(s1, s2, s3)

字符串的常用方法

字符串的拼接:

返回的是一個全新的字符串對象,s1,s2本身均未發生改變

s3 = s1 + s2

字符串分割

s = "this is a string\n"

s_1 = s.split() # 以連續空白進行分割,返回lis ==> ['this', 'is', 'a', 'string']

s_2 = s.split(" ") # 以空字符進行分割, \n不是空字符 ==> ['this', 'is', 'a', 'string\n']

s_3 = s.rsplit(" ",maxsplit=2) # 右邊開始,最大切割次數為 2次 ==> ['this is', 'a', 'string\n']

# 行切割,splitlines()

s = "firstline \n secondline \r\n thirdline \r"

s_4 = s.splitlines() # ==> ['firstline ', ' secondline ', ' thirdline ']

s_5 = s.splitlines(True) # 保留切割符 ==> ['firstline \n', ' secondline \r\n', ' thirdline \r']

# 只切割一次,無論是否切割,返回 3個元素的元組,pre,seq,tail)==>('this', ' ', 'is a string\n')

s_6 = s.partition(" ")

# 從字符串右邊開始進行分割 ==> ('firstline \n secondline \r\n thirdline', ' ', '\r')

s_6 = s.rpartition(" ")

其他方法

s = "HEllo world"

print(s.upper()) # ==> HELLO WORLD 全大寫

print(s.capitalize()) # ==> Hello world 首部大寫

print(s.title()) # ==> Hello world 駝峰原則

print(s.lower()) # ==> hello world 全小寫

print(s.swapcase()) # ==> heLLO WORLD 交換大小寫

格式化輸出

s = "hello"

print(s.center(20, "#")) # #######hello######## 指定寬度和填充字符,居中

print(s.zfill(20)) # 000000000000000hello 右對齊,0填充

print(s.ljust(20, "#")) # hello############### 指定寬度和填充字符,左對齊

print(s.rjust(20, "#")) # ###############hello 指定寬度和填充字符,右對齊

字符替換

s = "heffo worfd"

print(s.replace("f", "l")) # hello world

print(s.replace("f", "l", 2)) # hello worfd

print(s.replace("ff", "l")) # helo worfd

print(s) # heffo worfd 均返回新的字符串,s 未做任何改變

# 批量替換

in_tab = "abxy"

out_tab = "1234"

str_trantab = str.maketrans(in_tab,out_tab) # 創建一個轉化表, abcd --> 1234

s = "abcdefghijklmnopqrstuvwxyz"

s.translate(str_trantab) # s將會根據轉換表替換對應的字符 ==> 12cdefghijklmnopqrstuvw34z

strip() 刪除兩端字符

s = " \t hello world \n "

print(s.strip()) # 'hello world'

print(s.strip("\t")) # ' hello world \n '

print(s.strip("\n")) # ' \t hello world \n '

print(s.strip("")) # '\t hello world \n'

print(s.strip(" h\t")) # 'ello world'

s.lstrip() # 只對字符串左邊進行操作

s.rstrip() # 只對字符串右邊進行操作

字符串查找

# find("",start ,stop) ,# 指定查找的字符,并可以選自查找范圍,start -> stop 索引范圍

# 找到匹配字符串返回索引,未找到返回 -1

s = "this is a long long long string"

print(s.find("a")) # 返回索引號 8

print(s.find("long")) # 返回第一索引號 10

print(s.find("long", 11, -1)) # 從索引11開始查找,第一個long索引為 15

print(s.count("long", 15, -1)) #從索引15開始查找,只能找到后面兩個long

# 字符串的查找都需要對字符串進行遍歷,當字符串較長,將會耗費較大的時間

# endswith, startswith 判斷字符串是否使用該字符結尾或者開頭

# 例如:檢查一個文件是否是Python文件格式

file_name = "hello.py"

file_name.endswith(".py") # 是否是.py結尾

"hello".startswith("he") # 是否 he開頭

字符檢測方法, 返回 True或者 False

# 字符檢測方法, 返回 True或者 False

# endswith, startswith 判斷字符串是否使用該字符結尾或者開頭

# 例如:檢查一個文件是否是Python文件格式

file_name = "hello.py"

file_name.endswith(".py") # 是否是.py結尾

"hello".startswith("he") # 是否 he開頭

"hell_fa".isidentifier() # 檢查是否符合標識符規則,是不是字母和下劃線開頭,其他都是字母數字、下劃線

"abc".isalpha() # 是否全部為字母

"123".isdigit() # 10進制數字

"123".isdecimal() # (0-9)的數字

"123abc".isalnum() # 是否是字母或者數字

"abc".islower() # 全小寫

"ABC".isupper() # 全大寫

"\n\t\f\r".isspace() # 只包含空白, \t\n\r\f等均為空白字符

# 以結果全部為 True

字符串格式化輸出

1. c語言風格格式化輸出

s = "hello world"

print("%s,%r" %(s,s)) # %s 調用字符串對象的 __str__方法輸出,%r會調用__repr__ 方法,輸出不同

# 輸出 hello world, 'hello world'

試例:

s = "hello world"

class String(str):

def __str__(self):

return "__str__:{}".format(super().__repr__())

def __repr__(self):

return "__repr__:{}".format(super().__repr__())

string = String(s)

print("%s, %r" %(string,string))

# %s 輸出結果: __str__:'hello world', %r 輸出結果: __repr__:'hello world'

# %s 調用了對象的 __str__方法,%r 調用了__repr__ 方法

常用輸出形式

"%d" %10 #'10'

"%#d" %10 #' 10'

"%-05d" %10 #'10 '

"%d" %10 #'10'

# 可通過以上方式設置對齊方式和寬度等

"%f" %10 #'10.000000'

"%5.3f" %10 #'10.000'

"%10.2f" %10 #' 10.00'

"%-10.2f" %10 #'10.00 '

進制轉化

# 無前綴

"%x"%10 # ==> 'a'

"%o"%10 # ==> '12'

# 帶前綴

"%#x"%10 # ==> '0xa'

"%#o"%10 # ==> '0o12'

# 對其方式,寬度,顯示精度均可設置

# 科學計數法表示

"%-10.2e" %10 #'1.00e+01 '

# 百分數表示

"%-.2f%%" %10 #'10.00%' 在值后面拼接 %, %% ==> 輸出一個%

format 格式化函數

# format 格式化函數

a,b,c = 1,2,"tom"

"{}, {name}, {}".format(a,b,name=c) # 位置參數和關鍵字參數傳入 ==> '1, tom, 2'

# 設置填充字符 "#", 對齊方式,寬度

"{}".format(10) #'10'

"{:#<10}".format(10) #'10########'

"{:0>10}".format(10) #'0000000010'

"{:$^10}".format(10) #'$$$$10$$$$'

#進制轉化

"{:x}".format(10) #'a' 16進制

"{:o}".format(10) #'12' 8進制

"{:b}".format(10) #'1010' 2進制

#帶進制前綴符輸出

"{:#b}".format(10) #'0b1010' 0b表示2進制

"{:#x}".format(10) #'0xa' 0x表示16進制

"{:#o}".format(10) #'0o12' 0o表示8進制

# 百分號表示,科學計數

"{:.2%}".format(0.5) #'50.00%' 計算的結果轉化為 % 形式表示

"{:.2e}".format(0.5) #'5.00e-01'

"{:.2E}".format(50) #''5.00E+01'

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

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

相關文章

第十章 開箱即用

第十章 開箱即用 “開箱即用”&#xff08;batteries included&#xff09;最初是由Frank Stajano提出的&#xff0c;指的是Python豐富的標準庫。 模塊 使用import將函數從外部模塊導入到程序中。 import math math.sin(0)#結果為&#xff1a;0.0模塊就是程序 在文件夾中創…

博客換膚

一直以來覺得博客園里的主題不是特別好&#xff0c;很多模版多多少少都有些美中不足&#xff0c;于是今天抽了點時間把主題改改&#xff0c;哈。幸虧博客園支持自定義樣式。 時間有限就先改到這里&#xff0c;今后有時間在進一步完美&#xff0c;呵呵。轉載于:https://www.cnbl…

duration java_Java Duration類| 帶示例的get()方法

duration java持續時間類get()方法 (Duration Class get() method) get() method is available in java.time package. get()方法在java.time包中可用。 get() method is used to return the value for the given unit. get()方法用于返回給定單位的值。 get() method is a non…

Openmv通過串口接收數據、發送數據與stm32通信

博主聯系方式: QQ:1540984562 QQ交流群:892023501 群里會有往屆的smarters和電賽選手,群里也會不時分享一些有用的資料,有問題可以在群里多問問。 目錄 參考接線星瞳教程openmv傳送數據STM32解碼程序參考 接線 星瞳教程

c語言尹寶林答案,c程序設計導引 尹寶林

《C程序設計導引》特別適合作為計算機和非計算機專業學生學習高級語言程序設計的教材&#xff0c;也可供計算機等級考試者和其他各類學習者使用參考。17.40定價&#xff1a;44.75(3.89折)/2013-05-01《大學計算機優秀教材系列&#xff1a;C程序設計導引》是一本講解C程序設計的…

從程序員到項目經理(15):項目管理三大目標

項目管理的三大目標即時間、成本和質量&#xff0c;實際是告訴項目經理應重點關注什么因素&#xff0c;項目控制應該做什么工作。三大目標雖然簡單&#xff0c;但如果能將其真正貫徹到自己的行動中&#xff0c;那么對項目計劃制定、過程控制等工作&#xff0c;均能起到引導作用…

第十一章 文件

第十一章 文件 打開文件 當前目錄中有一個名為beyond.txt的文本文件&#xff0c;打開該文件 調用open時&#xff0c;原本可以不指定模式&#xff0c;因為其默認值就是’r’。 import io f open(beyond.txt)文件模式 值描述‘r’讀取模式&#xff08;默認值&#xff09;‘w…

iterator與iterable

用Iterator模式實現遍歷集合Iterator模式是用于遍歷集合類的標準訪問方法。它可以把訪問邏輯從不同類型的集合類中抽象出來&#xff0c;從而避免向客戶端暴露集合的內部結構。例如&#xff0c;如果沒有使用Iterator&#xff0c;遍歷一個數組的方法是使用索引&#xff1a; for(i…

Android中的Touch事件處理流程

1、當觸摸屏幕時&#xff0c;最先執行的是Activity中的 publicbooleandispatchTouchEvent (MotionEvent ev) {if(ev.getAction() MotionEvent. ACTION_DOWN) {onUserInteraction();}if(getWindow().superDispatchTouchEvent(ev)) {returntrue;}returnonTouchEvent(ev);}如果某…

【TensorFlow學習筆記:神經網絡八股】(實現MNIST數據集手寫數字識別分類以及FASHION數據集衣褲識別分類)

課程來源&#xff1a;人工智能實踐:Tensorflow筆記2 文章目錄前言一、搭建網絡八股sequential1.函數介紹2.6步法實現鳶尾花分類二、搭建網絡八股class1.創建自己的神經網絡模板&#xff1a;2.調用自己創建的model對象三、MNIST數據集1.用sequential搭建網絡實現手寫數字識別2.用…

c語言 在執行區域沒有空格,C語言上機操作指導之TurboC.doc

C語言上機操作指導之 -------- Turbo C程序設計是實踐性很強的過程&#xff0c;任何程序都必須在計算機上運行&#xff0c;以檢驗程序的正確與否。因此在學習程序設計中&#xff0c;一定要重視上機實踐環節&#xff0c;通過上機可以加深理解 C語言的有關概念&#xff0c;以鞏固…

java 根據類名示例化類_Java即時類| from()方法與示例

java 根據類名示例化類即時類from()方法 (Instant Class from() method) from() method is available in java.time package. from()方法在java.time包中可用。 from() method is used to return a copy of the Instant from the given TemporalAccessor object. from()方法用于…

第十二章 圖形用戶界面

第十二章 圖形用戶界面 GUI就是包含按鈕、文本框等控件的窗口 Tkinter是事實上的Python標準GUI工具包 創建GUI示例應用程序 初探 導入tkinter import tkinter as tk也可導入這個模塊的所有內容 from tkinter import *要創建GUI&#xff0c;可創建一個將充當主窗口的頂級組…

Sqlserver 2005 配置 數據庫鏡像:數據庫鏡像期間可能出現的故障:鏡像超時機制

數據庫鏡像期間可能出現的故障 SQL Server 2005其他版本更新日期&#xff1a; 2006 年 7 月 17 日 物理故障、操作系統故障或 SQL Server 故障都可能導致數據庫鏡像會話失敗。數據庫鏡像不會定期檢查 Sqlservr.exe 所依賴的組件來驗證組件是在正常運行還是已出現故障。但對于某…

江西理工大學期末試卷c語言,2016年江西理工大學信息工程學院計算機應用技術(加試)之C語言程序設計復試筆試最后押題五套卷...

一、選擇題1&#xff0e; 設有函數定義&#xff1a;( )。A. B. C. D. 答:A則以下對函數sub 的調用語句中&#xff0c;正確的是【解析】函數的參數有兩個&#xff0c;第一個是整型&#xff0c;第二個是字符類型&#xff0c;在調用函數時&#xff0c;實參必須一個是整型&#xff…

第十三章 數據庫支持

第十三章 數據庫支持 本章討論Python數據庫API&#xff08;一種連接到SQL數據庫的標準化方式&#xff09;&#xff0c;并演示如何使用這個API來執行一些基本的SQL。最后&#xff0c;本章將討論其他一些數據庫技術。 關Python支持的數據庫清單 Python數據庫API 標準數據庫API…

【神經網絡八股擴展】:自制數據集

課程來源&#xff1a;人工智能實踐:Tensorflow筆記2 文章目錄前言1、文件一覽2、將load_data()函數替換掉2、調用generateds函數4、效果總結前言 本講目標:自制數據集&#xff0c;解決本領域應用 將我們手中的圖片和標簽信息制作為可以直接導入的npy文件。 1、文件一覽 首先看…

java 批量處理 示例_Java中異常處理的示例

java 批量處理 示例Here, we will analyse some exception handling codes, to better understand the concepts. 在這里&#xff0c;我們將分析一些異常處理代碼 &#xff0c;以更好地理解這些概念。 Try to find the errors in the following code, if any 嘗試在以下代碼中…

hdu 1465 不容易系列之一

http://acm.hdu.edu.cn/showproblem.php?pid1465 今天立神和我們講了錯排&#xff0c;才知道錯排原來很簡單&#xff0c;從第n個推起&#xff1a; 當n個編號元素放在n個編號位置,元素編號與位置編號各不對應的方法數用M(n)表示,那么M(n-1)就表示n-1個編號元素放在n-1個編號位置…

第十四章 網絡編程

第十四章 網絡編程 本章首先概述Python標準庫中的一些網絡模塊。然后討論SocketServer和相關的類&#xff0c;并介紹同時處理多個連接的各種方法。最后&#xff0c;簡單地說一說Twisted&#xff0c;這是一個使用Python編寫網絡程序的框架&#xff0c;功能豐富而成熟。 幾個網…