欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中字符串的基本使用詳解

 更新時間:2021年12月15日 11:14:52   作者:滌生手記大數(shù)據(jù)  
Python要求字符串必須使用引號括起來,使用單引號也行,使用雙引號也行,只要兩邊的引號能配對即可,這篇文章主要給大家介紹了關于Python中字符串的基本使用,需要的朋友可以參考下

前言

除了數(shù)字,Python中最常見的數(shù)據(jù)類型就是字符串,無論那種編程語言,字符串無處不在。例如,從用戶哪里讀取字符串,并將字符串打印到屏幕顯示出來。 字符串是一種數(shù)據(jù)結構,這讓我們有機會學習索引和切片——用于從字符串中提取子串的方法。

1 字符串索引

在Python語法支持中,我們簡單的闡述過字符串的使用,現(xiàn)在我們看看python程序在處理字符串時,如何對其進行索引,打印出其中的每個字符串。我們輸入一個字符串:'你好,Lucky',Python使用方括號 [] 來對字符串進行索引,方括號內的數(shù)字 0~n 表示將要獲取的字符串,如圖1-1所示,sting[0~7]分別對應不同的值,最小的字符換索引為0,最大的字符串索引比字符串長度小1。

?如果 string 指向一個長度為 n 的字符串, 則 string[0] 為第一個字符,string[1] 為第二個字符, string[2] 為第三個字符,依此類推。string[n-1] 為最后一個字符。

當然,在上面的示例中,string[8]索引超出了字符串的末尾,導致的錯誤提示,這點需要注意。Python索引為何從0開始?我們這樣理解便可: 索引值用于測量與字符串第一個字符相隔的距離, 就像一把尺子(其刻度也是從零開始)。這 讓有些索引計算更簡單,也與函數(shù) %(求余) 一致。% 經(jīng)常用于索引計算,自然也可能返回 0。

實際應用中,往往不會只用到正向索引(本文理解從左向右),當你需要訪問字符串的最后一個字符時,也可以使用正向表達式,但字符串過長時明顯不便,所以Python提供了一種方面的索引方式:從右向左(負數(shù)索引)來表示。如下:字符串的最后一個字符為 string[-1],其索引過程即可按照圖1-1進行修改,此處不做闡述。

1.1 循環(huán)索引字符

假如需要依次訪問字符串的每個字符,需要計算出所給字符串的編碼總和,對比兩種代碼方法,如下圖實現(xiàn)及結果,第一種codesum1()函數(shù): 使用 for 循環(huán)時,在循環(huán)的每次迭代開頭,都會將循環(huán)變量 c 設置為 s 中的 下一個字符。使用索引訪問 s 中字符的工作由 for 循環(huán)自動處理。

第二種codesum2()函數(shù)使用了常規(guī)訪問s中字符的方法,對比codesum1()函數(shù)可以發(fā)現(xiàn),雖然二者計算結果一致,但第二種函數(shù)的代碼明顯較為復雜,理解程度上稍微差一些。當然,這是多數(shù)人的理解,有些人可能覺得第二種實現(xiàn)更好一些。

def codesum1(s):
    total = 0
    for c in s:
        total = total + ord(c)
    return total
 
def codesum2(s):
    total = 0
    for i in range(len(s)):
        total = total + ord(s[i])
    return total

2 字符使用

在所有編程語言中,字符串都是由字符所組成,而所有字符都有對應的字符編碼與之相對應。在Python中,我們可以使用ord()函數(shù)來學習。ord() 函數(shù)是 chr() 函數(shù)(對于8位的ASCII字符串)或 unichr() 函數(shù)(對于Unicode對象)的配對函數(shù),它以一個字符(長度為1的字符串)作為參數(shù),返回對應的 ASCII 數(shù)值,或者 Unicode 數(shù)值,如果所給的 Unicode 字符超出了你的 Python 定義范圍,則會引發(fā)一個 TypeError 的異常。

關于Unicode做一個簡單的背景介紹: Unicode 提供了一個大得多的字符編碼集。出于方便考慮,Unicode 的前 256 個 字母為 ASCII 碼,因此如果你只處理英文字符,幾乎不用考慮 Unicode 的細節(jié)。

>>> ord('a')
97
>>> ord('b')
98
>>> ord('c')
99

?給定字符編碼,可使用函數(shù) chr 來獲悉對應的字符:

>>> chr(99)
'c'
>>> chr(98)
'b'
>>> chr(97)
'a'

字符編碼是根據(jù)Unicode分配的,而Unicode是一個龐雜的編碼標準,涵蓋了全球各種語言中的符號和字符,使用十分廣泛 。并非所有字符都有可視的標準符號。例如,換行字符、回車字符和制表符都是不可見的,雖然它們帶來的效果可見。這些字符屬于空白字符——在印刷頁面上顯示為空白。 如下表:

轉義字符 描述
\(在行尾時) 續(xù)行符
\\< 反斜杠符號
' 單引號
\" 雙引號
\a 響鈴
\b 退格(Backspace)
\e 轉義
\000
\n 換行
\v 縱向制表符
\t 橫向制表符
\r 回車
\f 換頁
\oyy 八進制數(shù),y 代表 0~7 的字符,例如:\012 代表換行。
\xyy 十六進制數(shù),以 \x 開頭,yy代表的字符,例如:\x0a代表換行
\other 其它的字符以普通格式輸出

舉兩個個簡單的常用示例:

1. 在 Python 中,表示換行的標準方式是使用字符 \n:

2. 在字符串中包含反斜杠、單引號和雙引號,通常需要使用對應的轉義字符:

轉義字符是單個字符, 為讓 Python 知道下一個字符是特殊字符, 必須使用 \,但在計算字符串的長度時,并不將 \ 視為額外的字符。例如:

在使用轉義字符時,還有一點需要特別注意的是:在表示文本行末尾方面,不同操作系統(tǒng)遵循的標準是不同的。Windows 使 用 \r\n 表示行尾,OS X 和 Linux 使用 \n, 而 OS X 之前的 Mac 操作系統(tǒng)使用 \r。

2.1 字符串運算

數(shù)字有其標準的運算方式,字符串同樣也有著一定的運算。下面來看下字符串的運算符。

操作符 描述
+ 字符串連接
* 重復輸出字符串
[] 通過索引獲取字符串中字符
[ : ] >截取字符串中的一部分
in 成員運算符 - 如果字符串中包含給定的字符返回 True
not in 成員運算符 - 如果字符串中不包含給定的字符返回 True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。 原始字符串除在字符串的第一個引號前加上字母"r"(可以大小寫)以外,與普通字符串有著幾乎完全相同的語法。

示例 :

1.x和y分別賦值字符串;

>>> x = "I am coming"
>>> y = "Python Language"

3 字符串切片

在 Python 中,可使用切片從字符串中提取子串。要對字符串執(zhí)行切片操作,可指定兩個索引:要提取的第一個字符的索引;要提取的最后一個字符的索引加 1。例如:

用于切片的索引與用于訪問各個字符的索引相同:第一個索引總是為零,而最后一個索引總是比字符串長度小 1。一般而言,string[begin:end]返回從索 引 begin 到 end-1 的子串。注意:如果 string 是一個字符串,則要訪問索引 i 對應的字符,可使用 string[i] 或 string[i:i+1]。

3.1 切片方法

如果想要省略字符串的起始索引,Python將假定為0;如果需要省略字符串的終止索引,Python 會假設你要提取到字符串末尾。

實用示例:取值文件名中的擴展名。

def get_ext(fname):
    dot = fname.rfind('.')
    if dot == -1: # fname 中沒有
        return ''
    else:
        return fname[dot + 1:]

注意第一處標紅需要加引號好,第二處輸入的文件名沒有擴展名,故沒有返回值。該函數(shù)的實現(xiàn)過程:確定最右邊的 '.' 的索引(因此使用 rfind 從右往左查 找);如果 fname 不包含 '.',則返回一個空字符串,否則返回 '.' 后面的所有字符。

在索引字符串時所講述的正向、負向索引同樣可以應用于切片中。

使用負數(shù)索引時,這樣做通常會有所幫助:將字符串寫到紙上,再標出每個字符的正索引和負索引,就像圖 1-1 那樣。雖然這樣做確實需要多用一兩分鐘時間,但可以很好地避免常見的索引錯誤。

4 字符串格式化

Python 支持格式化字符串的輸出 。這會用到一個較為復雜的表達式,但最基本的用法是將一個值插入到一個有字符串格式符 %s 的字符串中。

>>> print("我最喜歡的食物是%s,它的熱量是%d千焦" %('hot dog',3500))
我最喜歡的食物是hot dog,它的熱量是3500千焦

我們將python字符串格式化符號整理如下:標紅為字符串格式化中的輔助指令

符 號 描述
%c 格式化字符及其ASCII碼
%s 格式化字符串
%d 格式化整數(shù)
%u 格式化無符號整型
%o 格式化無符號八進制數(shù)
%x 格式化無符號十六進制數(shù)
%X 格式化無符號十六進制數(shù)(大寫)
%f 格式化浮點數(shù)字,可指定小數(shù)點后的精度
%e 用科學計數(shù)法格式化浮點數(shù)
%E 作用同%e,用科學計數(shù)法格式化浮點數(shù)
%g %f和%e的簡寫
%G %F 和 %E 的簡寫
%p 用十六進制數(shù)格式化變量的地址
* 定義寬度或者小數(shù)點精度
- 用做左對齊
+ 在正數(shù)前面顯示加號( + )
<sp> 在正數(shù)前面顯示空格
# 在八進制數(shù)前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X')
0 顯示的數(shù)字前面填充'0'而不是默認的空格
% '%%'輸出一個單一的'%'
(var) 映射變量(字典參數(shù))
m.n. m 是顯示的最小總寬度,n 是小數(shù)點后的位數(shù)(如果可用的話)

示例:

對于Python字符串格式化的輸出,可以通過上述幾個例子體驗一下字符串區(qū)別與基本使用。Python本身已經(jīng)自帶了許多很有用的函數(shù)模塊,簡化了字符串的使用,增強了其功能。后面,我們會對Python的字符串函數(shù)以及正則使用做較為詳細的闡述。

總結

到此這篇關于Python中字符串的基本使用的文章就介紹到這了,更多相關Python字符串使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python 元組的使用方法

    python 元組的使用方法

    這篇文章主要介紹了python 元組的使用方法,文中講解非常細致,代碼幫助大家更好的參考和學習,感興趣的朋友可以了解下
    2020-06-06
  • 手把手帶你用Python實現(xiàn)一個計時器

    手把手帶你用Python實現(xiàn)一個計時器

    雖然Python是一種有效的編程語言,但純Python程序比C、Rust和Java等編譯語言中的對應程序運行得更慢,為了更好地監(jiān)控和優(yōu)化Python程序,今天將為大家介紹如何使用?Python?計時器來監(jiān)控程序運行的速度,以便正對性改善代碼性能
    2022-06-06
  • Python預測2020高考分數(shù)和錄取情況

    Python預測2020高考分數(shù)和錄取情況

    這篇文章主要介紹了Python預測2020高考分數(shù)和錄取情況可能是這樣,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Python+OpenCV實現(xiàn)信用卡數(shù)字識別的方法詳解

    Python+OpenCV實現(xiàn)信用卡數(shù)字識別的方法詳解

    這篇文章主要介紹了如何利用python?opencv實現(xiàn)信用卡數(shù)字識別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-09-09
  • 深入理解Python虛擬機中復數(shù)(complex)的實現(xiàn)原理及源碼剖析

    深入理解Python虛擬機中復數(shù)(complex)的實現(xiàn)原理及源碼剖析

    在本篇文章當中主要給大家介紹在 cpython 虛擬機當中是如何實現(xiàn) 復數(shù) complex 這個數(shù)據(jù)類型的,這個數(shù)據(jù)類型在 cpython 當中一應該是一個算比較簡單的數(shù)據(jù)類型了,非常容易理解
    2023-03-03
  • python實現(xiàn)n個數(shù)中選出m個數(shù)的方法

    python實現(xiàn)n個數(shù)中選出m個數(shù)的方法

    今天小編就為大家分享一篇python實現(xiàn)n個數(shù)中選出m個數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python如何讀寫csv數(shù)據(jù)

    python如何讀寫csv數(shù)據(jù)

    這篇文章主要為大家詳細介紹了python如何讀寫csv數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python中最常用的操作列表的幾種方法歸納

    Python中最常用的操作列表的幾種方法歸納

    這篇文章主要介紹了Python中最常用的操作列表的幾種方法歸納,列表的方法是Python學習中最基本的知識,需要的朋友可以參考下
    2015-04-04
  • Python編寫電話薄實現(xiàn)增刪改查功能

    Python編寫電話薄實現(xiàn)增刪改查功能

    這篇文章主要為大家詳細介紹了Python編寫電話薄實現(xiàn)增刪改查功能的相關資料,感興趣的朋友可以參考一下
    2016-05-05
  • python 字符串split的用法分享

    python 字符串split的用法分享

    python 字符串的split方法是用的頻率還是比較多的。比如我們需要存儲一個很長的數(shù)據(jù),并且按照有結構的方法存儲,方便以后取數(shù)據(jù)進行處理。當然可以用json的形式。但是也可以把數(shù)據(jù)存儲到一個字段里面,然后有某種標示符來分割
    2013-03-03

最新評論