1. 程式人生 > 其它 >python中將字元變為大寫_Python從入門到入土:003

python中將字元變為大寫_Python從入門到入土:003

技術標籤:python中將字元變為大寫

字串及方法

在python中,字串及其處理是非常重要的知識點。字串處理可以用於

  • 資料收集及整理
  • 資訊輸出
  • 資料清洗

等多個領域,因此,熟悉字串這種內建資料型別,以及瞭解常見的字串方法就顯得尤為重要了。

我們前面已經說了,在Python中有幾種內建的資料型別,如整數(int),浮點數(float),字串(char),列表(list),集合(set),字典(dict)等。

熟練掌握這些內建的資料型別,及其相關的方法,可以讓我們在工作中事半功倍,花更少的時間去完成更多的任務,何樂而不為呢?

字串

簡單的說,在python中,一個字串可以是單個字元,也可以是一連串的字元。

字串用單引號、雙引號、或三引號括起來。

在寫程式的時候要特別注意,使用英文的半形字元,不要使用中文的字元,否則肯定會報錯。實際上,一般寫程式的時候,都建議各位直接切換到英文輸入法,避免中文輸入法的符號造成的bug。

在實際引用中,我們一般會被把字串賦值為一個變數,如:

my_name = "Andy"say_hello = 'Nice to meet you!!'

我們平時需要對字串進行相應的處理,比如使用者輸入的資訊,把頭部和尾部的空格刪掉、大小寫切換、替換某個字串中字元等等等。

所有這些操作,我們可以自己寫程式碼來實現,但更便捷的方法是:呼叫 python 內建的方法(method)。

呼叫方法的好處是:

  1. 自己寫的程式碼,質量不高
  2. 自己寫程式碼,耗時長
  3. 自己寫的程式碼,有可能給其他人造成一定的困擾

而方法(method),是放之四海而皆準的,在觀摩他人程式碼時,看到方法可以很容易的知道你想做什麼。

字串的常量

字串的常量是值得是在Python語言中預定義的一系列值。比如 string.ascii_lowercase 這個常量指的就是所有的小寫字母。當我們需要判斷字串屬性的時候,這些常量就非常有用。

如何使用字串常量?

先使用 import string 語句匯入 string 這個庫檔案,再直接使用相關常量即可。

相關常量如下:

  1. string.ascii_lowercase:所有小寫字母,字串[a-z]
  2. string.ascii_uppercase:所有大寫字母,字串[A-Z]
  3. string.ascii_letters:所有大寫 + 小寫字母,字串[a-zA-Z]
  4. string.digits:數字,即字串 '0123456789'
  5. string.hexdigits:十六進位制包含的字元,字串 '0123456789abcdefABCDEF'
  6. string.octdigits:八進位制包含的字元,字串 '01234567'
  7. string.punctuation:標點符號,字串: !"#$%&'()*+,-./:;<=>[email protected][]^_`{|}~.
  8. string.whitespace:由被視為空白符號的 ASCII 字元組成的字串。 其中包括空格、製表、換行等符號

什麼時候會用到這些字串常量?

比如我們要求使用者輸入使用者名稱是,一般使用者名稱是字母 + 數字的組合,這個時候就可以通過判斷使用者名稱中每個字元是否都在 string.ascii_lettersstring.digits 的範圍中。

如果發現有不在上面兩個範圍的字元,要求使用者重新輸入使用者名稱。

字串常見方法

  • str.upper():將字串變為大寫
68f368d72a4f101371dcb170ea084810.png
  • str.lower():將字串變成小寫
d048bb2ea79a990c3bb5cf6edd9bd298.png
  • str.capitalize():首字母大寫,其餘小寫
24c350483a86759ba80664b93aa3282d.png
  • str.title():每個單詞第一個字母為大寫,其餘字母為小寫
bdb88844211553ecff6e4e39792ee212.png
  • str.count(sub[, start[, end]]):返回子字串在字串中出現的次數,start,end是起始位置和結束位置,為可選引數
f2bcb468a98db0f1c7fc7cc012488ceb.png
  • str.index(sub[, start[, end]]):查詢子字串在整個字串中的位置
0539418ed8209c8ea7afd25a78a08f5f.png

字串that首次出現在第28個字元

  • str.isalnum():判斷字串中是否全由數字組成
443759ba0eb739c1d52c7b0da63d962f.png
  • str.isalpha():判斷字串中是否全由字母組成
8dad9212055dd37dd5fbc66377954b90.png
  • str.isascii():判斷字串是否全由字母或數字組成
08be96e1e6340bab559d346839a3bab3.png
  • str.isupper():判斷字串是否全由大寫字母組成
30922604ea4614cbd41ccc85c9dc448e.png
  • str.islower():判斷字串是否全由小寫字母組成
  • str.join(iterable):返回通過指定字元連線序列中元素。前面的str是分割字元,後面的interable是待處理字元。
04296f43b96416a15a2d1e38692aad4e.png
  • str.strip([chars]):剝離字串兩端包含在'char'中的字元,如果不指定'chars',則刪除空白字元
7b642461a5da8f585431103f561e3a92.png
  • str.swapcase():字串中大寫變小寫,小寫變大寫
f34307ed0ab617d0184e7a16d0e4374d.png
  • str.split(sep=None, maxsplit=-1):將字串按sep指定的字元分割為一個list,如果不指定sep,則模式使用空白字元進行分割;maxsplit指定分割的次數
c2a0831abf6e6d818e30087bd4bc2f92.png
  • str.find(sub[, start[, end]]):查詢子字串在字串中首次出現的位置,start,end為可選引數,用於指定起始和結束位置
8b3b944f4a23539da5b0bf65749abd39.png

和 index() 方法差不多

  • str.replace(old, new[, count]):字串替換,將子字串old替換為new,count為可選引數,指定替換的次數
074f4def5ed7c97baab9142a982bb4d0.png

字串的分割

有時候,我們只需要字串中特定的部分,怎麼辦呢?

字串中的每個字元,都有要給索引號(index),這個索引號用來表示字元在字串中的位置。

索引從 0 開始。

a = 'ABCDEFGH'

在上面的字串中,字元A的索引號為0,字元B的索引號為1,字元C的索引號為2,以此類推

我們可以使用 a[start : end] 的格式來獲取字串中特定的部分,其中start是起始索引號,end是結束索引號。

19550c79ed8316de3e2c368543df12ef.png

可以看到,返回了 BCD三個字元,起始索引號是1,所以從字元B開始,結束索引號為4,以為這索引號為4的前面一個字元會被選擇上。

其實還有一個小技巧,4-1=3,所以只會擷取3個字元出來。

start 或 end可以留空

  • start 和 end 都留空,預設從0開始,到最後一個字元結束
  • start留空,從0開始,到指定的end
4724eb1d51e00c28b309b8e03352b7eb.png
  • end留空:從start開始,到字串的最末尾
394b00550cdb697533575133a1a23810.png

那可能有朋友又有一個問題了:

如果我這個字串長度不知道,那該怎麼辦呢?比如我有一串URL,我只知道最後是以 “.com” 結尾的,但中間長度不確定,這種情況怎麼處理呢?

end可以輸入負數,-1表示最後一個字元,-2表示倒數第二個字元,依此類推

a = 'www.this.is.a.good.example.google.com'# 要把開頭的 www. 和結尾的 .com 全部刪掉a = [4: -4]'this.is.a.good.example.google'

Python中的簡單資料型別

再回顧一下,到現在位置,我們介紹了以下幾種資料型別

  • 數值型:包括整數(int)和浮點數(float)
  • 字串

接下來再介紹一種資料型別:布林值(bool)

布林型資料只有2個值,True False。它主要是用來進行條件判斷的

比如說如果小明的年齡大於等於8歲,給他100塊錢,如果他的年齡小於8,就給他50塊錢

我們首先需要判斷小明的年齡是不是大於等於8歲。這裡可以用 xiaomin_age >= 8 這個條件判斷語句。

fe42624d94f55cdef4a09917b133f217.png

如果這個判斷語句會返回一個結果,結果只有2種可能,True 或者 False,根據判斷結果,我們再執行不同的命令。

資料型別的轉換

為什麼需要進行資料型別的轉換?

在Python中,只有數值型的變數可以用來進行加減法計算

50945773aa06c221fb4ac1a2499523dc.png

如果a是一個字串呢?

系統會報錯。

8bd593d5eb04072b5040821be7f81a48.png

這種情況,我們就需要先把 a 的值,從字串轉為數值型,可以使用 int() 和 float() 進行轉換。

dd81b4bf530f0d5cffbe1a573b56b9af.png 066f74db0f620e0aac99f817b9c58fee.png

如果 a 裡面不是純數字呢?型別轉換還有用嗎?

5b2feb745a06705cf5bd0bc8256fe100.png

哈哈,報錯了

這個時候就需要使用前面的方法來對字串進行處理了。

首先找到數字1在字串中的位置,然後擷取10這兩個數字,再把它轉換為int就可以了

a = 'xiaomin is 10 years old'start = a.find('10')# 字元1的位置end = start + 2       # +1不行,要+2age = a[start: end]    # 字串 '10'age_number = int(age)    # 數值 10# 我們要可以把上面幾條命令整合為1條,當然,這樣看起開有點繞age_number = int(a[a.find('10') : a.find('10') + 2])

那數值能不能轉換為字串呢?

當然可以,使用 str() 函式就可以了

eac310fbe09b85f878ff7915f1c9bdd0.png

我們使用 type() 來檢視轉換後的型別,顯示為str,也就是字串型別啦!