day4-字符串


一、字符串的元素

1.元素

  • 定義:
    Python中,將字符串看出是一個序列(容器),容器中的內(nèi)容是字符,每一個字符就是元素

2.獲取字符

  • 定義:
    字符串是一個不可變的有序序列(不可變指的是字符串中的每個字符,以及每個字符的位置不可變),所以通過方法可以將想獲取的字符取出

  • 獲取單個字符

    • 語法:字符串[下標(biāo)] -->根據(jù)下標(biāo)獲取字符串中的字符

    • 說明:
      a.字符串:可以是字符串的變量,也可以是字符串的值
      b.[]:固定寫法
      c.下標(biāo):0~字符串長度-1; -1~-長度

    • 例子:

str2 = 'python'
print(str2[0])    #獲取第1個字符
print(str2[-6])   #獲取倒數(shù)第6個字符
#p
#p
  • 獲取字符串中的部分字符
方法 說明 注意
字符串[起始下標(biāo):結(jié)束下標(biāo)] 獲取字符串中從起始下標(biāo)開始,到結(jié)束下標(biāo)前的所有的字符 起始下標(biāo)對應(yīng)的字符要在結(jié)束下標(biāo)之前
字符串[起始下標(biāo):結(jié)束下標(biāo):步長] 獲取字符串中從起始下標(biāo)開始獲取,每步長獲取一個,到結(jié)束下標(biāo)前為止 步長為正(負(fù))從前(后)往后(前)取,起始下標(biāo)對應(yīng)的字符要在結(jié)束下標(biāo)之前,
省略起始下標(biāo):字符串[:結(jié)束下標(biāo)] 從頭開始取 開頭和步長的正負(fù)值有關(guān),切片的時(shí)候下標(biāo)可以越界
省略結(jié)束下標(biāo):字符串[起始下標(biāo):] 從起始下標(biāo)開始取,取完為止 開頭和步長的正負(fù)值有關(guān),切片的時(shí)候下標(biāo)可以越界
省略兩個下標(biāo):字符串[:] 全部取完 開頭和步長的正負(fù)值有關(guān),切片的時(shí)候下標(biāo)可以越界
  • 測試:
str4 = '同九年,汝何秀!'
print(str4[1:5])
#九年,汝
str4 = '同九年,汝何秀!'
print(str4[1:5])
#九年,汝

str5 = '海賊王、一拳超人、一人之下、進(jìn)擊的巨人'
print(str5[1:10:2])
print(str5[10:0:-1])
#賊、拳人一
#人一、人超拳一、王賊

str6 = '閣下何不同風(fēng)起,扶搖直上九萬里'
print(str6[:4:1])
print(str6[-4::1])
print(str6[::-1])
#閣下何不
#上九萬里
#里萬九上直搖扶,起風(fēng)同不何下閣

二.字符串運(yùn)算符

1.分類

  • python中的字符串支持+、*和比較運(yùn)算符
方法 格式 說明
+ 字符串1 + 字符串2 將字符串1和字符串2拼接在一起產(chǎn)生一個新的字符串
* 字符串1 * n(整數(shù)) 字符串1重復(fù)n次,產(chǎn)生一個新的字符串
比較運(yùn)算符 字符串1 (==,!=,>,<) 字符串2 判斷相等、比較大小(比較兩個字符串相應(yīng)位置的字符編碼的大小,直到字符不相等為止)
  • 例子:
str1 = '玉樹臨風(fēng)美少年'
str2 = '攬鏡自顧夜不眠'
print(str1 + str2)
print(str1 + " " + str2)
print(str1 + "," + str2)
#玉樹臨風(fēng)美少年攬鏡自顧夜不眠
#玉樹臨風(fēng)美少年 攬鏡自顧夜不眠
#玉樹臨風(fēng)美少年,攬鏡自顧夜不眠

str3 = '家有千金,行止由心!'
print(str3*3)
#家有千金,行止由心!家有千金,行止由心!家有千金,行止由心!

print('abc' == 'abc')
print('abc' != 'abc')
#True
#False

print('abc' > 'bc')
print('zabc' > 'bc')
#False
#True

2.in和not in

  • 用法:
    字符串1 in 字符串2 -->判斷字符串1是否在字符串2中(判斷字符串2是否包含字符串1)。

  • 例子:

print('ab' in 'abcd')
print('ab' in 'assbcd')
#True
#False

3.len()函數(shù)

  • 定義:
    python的內(nèi)置函數(shù),功能是用來獲取序列的長度(容器中元素的個數(shù)),字符串的長度就是字符串中字符的個數(shù)

  • 例子:

print(len('hello'))
str4 = '床前明月光\n疑是地上霜!'
print(len(str4))
str4 = r'床前明月光\n疑是地上霜!'
print(len(str4))
str4 = '你好嗎?\u4eff\u5cff'
print(len(str4))
print(str4[len(str4)-1])   #str5[5]
#5
#12
#13
#6
#峿

三、格式字符串

  • 定義:字符串的內(nèi)部通過格式占位符來表示字符串中變化的部分,然后在后面用值來填充變化的部分

  • 作用:按格式對字符串進(jìn)行拼接

  • 語法:帶有占位符的字符串 %(給占位符賦值的值)

  • 注意:前面有多少個占位符,后面()中就必須有多少值,并且值的個數(shù)和值的類型要和前面的占位符一一對應(yīng)

  • 分類·:

符號 意義
%s 字符串
%d 整數(shù)
%f 小數(shù)
%f.nf 保留小數(shù)點(diǎn)后n位小數(shù)
%c 顯示數(shù)字對應(yīng)的字符
  • 例子:
name = '張三'
age = 18
money = 10.5
# message = '姓名:'+name+'年齡:'+str(age)+'薪資'+str(money)
message = '姓名: %s 年齡: %d 薪資: %f' %(name,age,money)
print(message)
#姓名: 張三 年齡: 18 薪資: 10.500000

四、字符串內(nèi)置函數(shù)

  • python內(nèi)部給我們提供很多字符串相關(guān)的方法,使用方式:字符串.方法名(參數(shù))
函數(shù) 變量內(nèi)容 用法 函數(shù)名稱
capitalize() 字符串 字符串.capitalize() 將字符串的第一個字符轉(zhuǎn)換為大寫
center(width,fillchar) width字符串的長度,fillchar新的字符串的總共的長度剩下部分填充的字符 字符串.center(width,fillchar) 字符串居中對齊
ljust(width,fillchar) width字符串的長度,fillchar新的字符串的總共的長度剩下部分填充的字符 字符串.ljust(width,fillchar) 字符串左對齊
rjust(width,fillchar) width字符串的長度,fillchar新的字符串的總共的長度剩下部分填充的字符 字符串.rjust(width,fillchar) 字符串右對齊
count() 字符串 字符串1.count(字符串2) 顯示數(shù)字對應(yīng)的字符
endswith() 字符串 字符串1.endswith(字符串2) 判斷字符串1是否以字符串2結(jié)尾
startswith() 字符串 字符串1.startswith(字符串2) 判斷字符串1是否以字符串2開頭
find 字符串 字符串1.find(字符串2) 在字符串1中查到字符串2,返回第一個的開始下標(biāo),沒有就返回-1
isnumeric() 字符串.isnumeric() 判斷字符串是不是由數(shù)字組成
istitle() 字符串.istitle() 判斷字符串是否為標(biāo)題
join() 字符串 字符串1.join(字符串2) 將字符串1插入到字符串2中每個字符之間
  • 例子:
str1 = 'love'
new_str1 = str1.capitalize()
print(new_str1)
#Love

str2 = 'dog'
new_str2 = str2.center(7,"0")
print(new_str2)
new_str2 = str2.ljust(7,"0")
print(new_str2)
new_str2 = str2.rjust(7,"0")
print(new_str2)
#00dog00
#dog0000
#0000dog

# 練習(xí):根據(jù)進(jìn)班的順序號產(chǎn)生對應(yīng)的學(xué)號,學(xué)號要求:
# 例如:num = 1 --->py18070001  num = 11 --->py18070011  num = 102 --->py18070102
num = '1'
new_num = 'py1807' + num.rjust(4,"0")
print(new_num)
#py18070001

print('abcdabcdaaa'.count('ab'))
print('hello world'.count('l'))
#2
#3

str1 = 'when i was'
print(str1.endswith('was'))
print(str1.endswith('when'))
#True
#False

str2 = 'when i was young,i have a dream'
print(str1.find('was'))
print(str1.find('waszz'))
#7
#-1

print('123'.isnumeric())
print('一二五'.isnumeric())
print('二百五'.isnumeric())
print('壹'.isnumeric())
#True
#True
#True
#True

print('The'.istitle())
#True

print('the'.join('she'))
#sthehthee


作業(yè)

  1. 個性化消息: 將用戶的姓名存到一個變量中,并向該用戶顯示一條消息。顯示的消息應(yīng)非常簡單,如“Hello Eric, would you like to learn some Python today?”。
    解答:
name = 'faker'
print('"Hello ' + name + ', would you like to learn some Python today?"')
題一
  1. 調(diào)整名字的大小寫: 將一個人名存儲到一個變量中,再以小寫、大寫和首字母大寫的方式顯示這個人名。
    解答:
name = "clearlove7" 
print(name.title())
print(name.upper()) 
print(name.lower())
題二
  1. 名言: 找一句你欽佩的名人說的名言,將這個名人的姓名和他的名言打印出來。輸出應(yīng)類似于下面這樣(包括引號):Albert Einstein once said, “A person who never made a mistake never tried anything new.”
    解答:
str1 = 'Albert Einstein once said, “A person who never made a mistake never tried anything new.”'
print(str1)
題三
  1. 名言2: 重復(fù)練習(xí)2-5,但將名人的姓名存儲在變量famous_person 中,再創(chuàng)建要顯示的消息,并將其存儲在變量message 中,然后打印這條消息。
    解答:
famous_person = 'Albert Einstein'
message = famous_person + ' once said, “A person who never made a mistake never tried anything new.”'
print(message)
題四
  1. 剔除人名中的空白: 存儲一個人名,并在其開頭和末尾都包含一些空白字符。務(wù)必至少使用字符組合"\t" 和"\n" 各一次。 打印這個人名,以顯示其開頭和末尾的空白。然后,分別使用剔除函數(shù)lstrip() 、rstrip() 和strip() 對人名進(jìn)行處理,并將結(jié)果打印出來。
    解答:
name = ' fa\tke\nr  '
print(name)
name1 = name.rstrip()   #剔除字符串末尾的空白,
print(name1)
name2 = name.lstrip()   #剔除字符串開頭的空白
print(name2)
name3 = name.strip()    #剔除字符串兩端的空白
print(name3)
題五
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 知識回顧 1.字符串(str)通過雙引號或者單引號引起來的內(nèi)容就是字符串 2.Unicode編碼 3.轉(zhuǎn)義字符 轉(zhuǎn)...
    莫名ypc閱讀 478評論 0 0
  • 一、字符串中的元素 1.阻止轉(zhuǎn)義 在字符串的最前面可以添加r/R來阻止字符串中的轉(zhuǎn)義字符轉(zhuǎn)義。 代碼 測試結(jié)果 2...
    xdxh閱讀 224評論 0 0
  • 1.字符串中的元素 1.阻止轉(zhuǎn)義 在字符串的最前面可以添加r/R來阻止字符串中的轉(zhuǎn)義字符轉(zhuǎn)義 2. python中...
    W_00ee閱讀 164評論 0 0
  • 一、字符串中的元素 1.阻止轉(zhuǎn)義 在字符串的最前面可以添加r/R來阻止字符串中的轉(zhuǎn)義字符轉(zhuǎn)義 2.python中可...
    龍神海王閱讀 255評論 0 0
  • 1.字符串中的元素 1.1阻止轉(zhuǎn)義 ??在字符串的最前面加r/R來阻止字符串中的轉(zhuǎn)義字符轉(zhuǎn)義 1.2獲取字符串中的...
    逆流而上_2eb6閱讀 413評論 0 0

友情鏈接更多精彩內(nèi)容