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)。
呼叫方法的好處是:
- 自己寫的程式碼,質量不高
- 自己寫程式碼,耗時長
- 自己寫的程式碼,有可能給其他人造成一定的困擾
而方法(method),是放之四海而皆準的,在觀摩他人程式碼時,看到方法可以很容易的知道你想做什麼。
字串的常量
字串的常量是值得是在Python語言中預定義的一系列值。比如 string.ascii_lowercase 這個常量指的就是所有的小寫字母。當我們需要判斷字串屬性的時候,這些常量就非常有用。
如何使用字串常量?
先使用 import string 語句匯入 string 這個庫檔案,再直接使用相關常量即可。
相關常量如下:
- string.ascii_lowercase:所有小寫字母,字串[a-z]
- string.ascii_uppercase:所有大寫字母,字串[A-Z]
- string.ascii_letters:所有大寫 + 小寫字母,字串[a-zA-Z]
- string.digits:數字,即字串 '0123456789'
- string.hexdigits:十六進位制包含的字元,字串 '0123456789abcdefABCDEF'
- string.octdigits:八進位制包含的字元,字串 '01234567'
- string.punctuation:標點符號,字串: !"#$%&'()*+,-./:;<=>[email protected][]^_`{|}~.
- string.whitespace:由被視為空白符號的 ASCII 字元組成的字串。 其中包括空格、製表、換行等符號
什麼時候會用到這些字串常量?
比如我們要求使用者輸入使用者名稱是,一般使用者名稱是字母 + 數字的組合,這個時候就可以通過判斷使用者名稱中每個字元是否都在 string.ascii_letters 或 string.digits 的範圍中。
如果發現有不在上面兩個範圍的字元,要求使用者重新輸入使用者名稱。
字串常見方法
- str.upper():將字串變為大寫
- str.lower():將字串變成小寫
- str.capitalize():首字母大寫,其餘小寫
- str.title():每個單詞第一個字母為大寫,其餘字母為小寫
- str.count(sub[, start[, end]]):返回子字串在字串中出現的次數,start,end是起始位置和結束位置,為可選引數
- str.index(sub[, start[, end]]):查詢子字串在整個字串中的位置
字串that首次出現在第28個字元
- str.isalnum():判斷字串中是否全由數字組成
- str.isalpha():判斷字串中是否全由字母組成
- str.isascii():判斷字串是否全由字母或數字組成
- str.isupper():判斷字串是否全由大寫字母組成
- str.islower():判斷字串是否全由小寫字母組成
- str.join(iterable):返回通過指定字元連線序列中元素。前面的str是分割字元,後面的interable是待處理字元。
- str.strip([chars]):剝離字串兩端包含在'char'中的字元,如果不指定'chars',則刪除空白字元
- str.swapcase():字串中大寫變小寫,小寫變大寫
- str.split(sep=None, maxsplit=-1):將字串按sep指定的字元分割為一個list,如果不指定sep,則模式使用空白字元進行分割;maxsplit指定分割的次數
- str.find(sub[, start[, end]]):查詢子字串在字串中首次出現的位置,start,end為可選引數,用於指定起始和結束位置
和 index() 方法差不多
- str.replace(old, new[, count]):字串替換,將子字串old替換為new,count為可選引數,指定替換的次數
字串的分割
有時候,我們只需要字串中特定的部分,怎麼辦呢?
字串中的每個字元,都有要給索引號(index),這個索引號用來表示字元在字串中的位置。
索引從 0 開始。
a = 'ABCDEFGH'
在上面的字串中,字元A的索引號為0,字元B的索引號為1,字元C的索引號為2,以此類推
我們可以使用 a[start : end] 的格式來獲取字串中特定的部分,其中start是起始索引號,end是結束索引號。
可以看到,返回了 BCD三個字元,起始索引號是1,所以從字元B開始,結束索引號為4,以為這索引號為4的前面一個字元會被選擇上。
其實還有一個小技巧,4-1=3,所以只會擷取3個字元出來。
start 或 end可以留空
- start 和 end 都留空,預設從0開始,到最後一個字元結束
- start留空,從0開始,到指定的end
- end留空:從start開始,到字串的最末尾
那可能有朋友又有一個問題了:
如果我這個字串長度不知道,那該怎麼辦呢?比如我有一串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 這個條件判斷語句。
如果這個判斷語句會返回一個結果,結果只有2種可能,True 或者 False,根據判斷結果,我們再執行不同的命令。
資料型別的轉換
為什麼需要進行資料型別的轉換?
在Python中,只有數值型的變數可以用來進行加減法計算
如果a是一個字串呢?
系統會報錯。
這種情況,我們就需要先把 a 的值,從字串轉為數值型,可以使用 int() 和 float() 進行轉換。
如果 a 裡面不是純數字呢?型別轉換還有用嗎?
哈哈,報錯了
這個時候就需要使用前面的方法來對字串進行處理了。
首先找到數字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() 函式就可以了
我們使用 type() 來檢視轉換後的型別,顯示為str,也就是字串型別啦!