python-6

 string

 

 

 

by SID

string

a="..."

string是甚麼?

中文:字串

顧名思義就是把很多字 串在一起的東東

有沒有發現它很像list!

一個是串了很多字元 另一個是將多種不同的東東串在一起

所以string很多用法都跟list頗為相似

等等會一一介紹

string基本用法

變數 = input("提示訊息")  用單引號也可

將使用者輸入的字串指派給變數

或是直接指派某字串給變數

附註:還記得我們之前輸入數字要特別多加一個int()才能進行運算嗎?

那是因為python原本預設input進來的格式是字串喔

 

將格式轉為字串:str()

栗子

str1 = 'ckefgisc'
str2 = "python"
str3 = str(213)
print(str1, str2, str3)
print(type(str1))
print(type(str2))
print(type(str3))

'''
ckefgisc python 213
<class 'str'>
<class 'str'>
<class 'str'>
'''

string運算

stringA+stringB

stringA *3

stringA, stringB

連接多個字串

a = "abc"
b = "def"
c = "ghi"
print(a + b + c)
#abcdefghi

用 + 不會有空格

a = "abc"
b = "def"
c = "ghi"
print(a , b , c)
#abc def ghi

用 , 有空格

字串*整數

a = "abc"
print(a*3)
#abcabcabc

STRING擷取部分內容

string[index]

string[::]

字串取值:string[n]

a = "abcdefghigk"
print(a[0]) 
print(a[2])
print(a[-1]) #由後開始數
# a
# c
# k

string一樣有所謂的第0項( index =0)

就是第一個字

index<0 代表由後數回來的第幾個字

但如果想找的 index 超出範圍會回傳 IndexError

有沒有發現都跟list一樣呢:)

字串切片取值:string[r:l:i]

a = "Merry Christmas!!!"
print(a[1:16:2]) #[er hitta!]
print(a[::2]) #[MryCrsms!]
print(a[:3:]) #[Mer]

字串名後加上[ r : l : i ]

可以在串列內從r到l-1每i項取一次(公差=i)

r空白代表  從最前面開始

l空白代表  取到最後面

i空白代表  公差=1

這也是跟list一模一樣呢!XD

string計數

len()

strA.count(strB)

回傳字串中共有幾個字元:

len(str)

a = "greenhouse"
print(len(a))
# 10

strA.count(strB)

回傳 strB 在 strA 中出現的次數

a = "times1 dian greenhouse dian"
print(a.count("dian"))
#2
a = "abcabcabcabcabc"
print(a.count("abca"))
#2

在 strA 中,對於每個字元,一旦該字元已經被 count 到了,那就不會再被數到一次了

#偷

string 搜尋

strA  in strB

strA.find(strB)

strA in strB

判斷 strA 是否為 strB 的片段!

a = "merry christmas "
print("merry" in a)
# True
a = "christmas"
print("merry" in a)
# False

常常搭配if判斷式

strA.find(strB)

在 strA 中尋找特定字串的 index!

a = "times1 dian greenhouse dian"
print(a.find("dian"))
#有兩個dian,回傳第一個dian中d所在的index
# 7
a = "times1 greenhouse"
print(a.find("dian"))
# -1

如果 strA 中有 strB 則回傳第一個找到的 strB 首個字元在 strA 的 index!

如果 strA 中沒有 strB 則回傳 -1

#偷

掃描STRING

for a in string

掃描字串

a = "Jonathan"
for i in a:
  print(i)
# J
# o
# n
# a
# t
# h
# a
# n

for 變數 in 字串名:

....要重複執行的程式

ASCII轉換

chr()

ord()

ASCII code 與 str 互換

print(ord("a"))
print(chr(97))
# 97
# a

b = ord("a")
b += 25
print(chr(b))
# z

print(type(chr(97)))
print(type(ord("a")))
# <class 'str'>
# <class 'int'>

chr(): ASCII => str

ord(): str => ASCII

題目練習

沒寫完的題目回家要練習喔!

加油!!!

好ㄟ結束了!

下星期一中午python小社喔!

 

下周課程預告:tuple,set,dict(我猜

 

學妹來上python~回家要練習喔~

python6

By ismesid

python6

  • 121