字符串

字符串

1.什麼是字符串

  • 用引號引起來的一串字符
  • 用引號來創建字符串。
    • 單引號
    • 雙引號
    • 三單引號
    • 三雙引號

2.創建字符串

# 創建字符串
name = "Hangzhou"
area = "Gongshu"
history = "5000"

famous_person = """蘇軾,許仙,白素貞"""
captical0f = '''吳越,南宋'''
print(type(name), type(area), type(history), type(famous_person), type(captical0f))

<class 'str'> <class 'str'> <class 'str'> <class 'str'> <class 'str'>

3.注意事項

sent = "I'm Lilei"
sent2 = '"He is my brother",he said'#單雙引號會自動匹配最近的,需注意
sent3 = 'Hangzhou,
Zhejiang'#單雙引號不允許換行,如果要換行,三單引號或三雙引號
sent3 = 'Hangzhou,
                 ^
SyntaxError: EOL while scanning string literal
pm = '''輕輕的我走了,
正如我輕輕的來。
'''
print(sent)
print(sent2)
print(sent3)
print(pm)

I'm Lilei
"He is my brother",he said
輕輕的我走了,
正如我輕輕的來。

4.字符串的運算及常見操作

(1)拼接

a = "Hello"
b = ",Python."
print(a + b)

Hello,Python.
a = ["Hello"]
b = [",Python."]
print(a + b)

['Hello', ',Python.']

拼接需基於同一數據類型

a = "Hello"
b = [",Python."]
print(a + b)

Traceback (most recent call last):
  File "D:/python/test1/day01.py", line 159, in <module>
    print(a + b)
TypeError: must be str, not list

(2)重複

a = "City Collage"
print(a * 3)

City CollageCity CollageCity Collage

(3)索引

a = "Hello"
print(len(a))
print(a[2])

5
l
a = "Hello"
for i in a:
    print(i,end=' ')
print()
for i in range(len(a)):
    print(a[i],end=' ')
    
H e l l o 
H e l l o 

(4)切片

sr = "Life is short, you need python."
print(len(sr))
print(sr[:4])
print(sr[0:4])
print(sr[1::2])
print(sr[::-1])
print(sr[1:4:2])  # a[start,end,step]

31
Life
Life
iei hr,yune yhn
.nohtyp deen uoy ,trohs si efiL
ie

(5)大小寫轉換

sr = "life is short, you NEED python."
print(sr.lower())#轉小寫
print(sr.upper())#轉大寫
print(sr.swapcase())#大小寫互換
print(sr.title())#轉爲標題的形式
print(sr.capitalize())#首字母大寫
print(sr.casefold())#轉小寫,對德語等也有效

life is short, you need python.
LIFE IS SHORT, YOU NEED PYTHON.
LIFE IS SHORT, YOU need PYTHON.
Life Is Short, You Need Python.
Life is short, you need python.
life is short, you need python.

(6)字符串的格式輸出對齊

# sr.center([len],[填充符號(默認空格)])
# sr.ljust([len],[填充符號(默認空格)])
# sr.rjust([len],[填充符號(默認空格)])
# sr.zfill([len]),右對齊,默認填充0
sr = "Life is short, you need python."
print(sr.center(41, '*'))
print(sr.ljust(41, '*'))
print(sr.rjust(41, '*'))
print(sr.zfill(41))

*****Life is short, you need python.*****
Life is short, you need python.**********
**********Life is short, you need python.
0000000000Life is short, you need python.

(7)刪除指定字符

# sr.strip()刪除左右兩邊的指定字符
# sr.lstrip()刪除左邊的指定字符
# sr.rstrip()刪除右邊的指定字符
sr = "\n\t#####Life is short, you need python.#####\t\n"
print(sr.strip())#不傳遞參數刪除換行製表符等
print(sr.strip("#"))#無效,僅能從兩邊開始匹配

#####Life is short, you need python.#####

	#####Life is short, you need python.#####	


(8)計數

# sr.count(str,start,end)指定索引範圍內某個元素出現的次數
sr = "Life is short, you need python."
print(sr.count("o", 9, 17))

2

(9)字符串搜索定位和替換

# sr.find(str,start,end)返回指定範圍內的某個元素第一次出現的索引值,start,end爲可選,查不到返回-1
# sr.index(str,start,end)返回指定範圍內的某個元素第一次出現的索引值,start,end爲可選,查不到報錯
# sr.rindex(str,start,end)從右往左查找
# sr.replace([現有],[替換],num)將現有字符串替換成指定字符串,默認全部替換,第三個參數可規定替換個數
sr = "Life is short, you need python."
print(sr.find('e'))
print(sr.index('e'))
print(sr.rindex('e'))
print(sr.replace('I need','I use'))

3
3
21
Life is short, you need python.

(10)字符串條件判斷

# isalnum(),判斷字符串由字母或者數字組成
# isalpha(),僅有字母
# isdigit(),僅有數字
a = "abc666def"
b = "666"
c = "abc"
print(a.isalnum())
print(b.isdigit())
print(c.isalpha())

True
True
True

α\alpha β\beta

(11)製表符的轉化

# sr.expandtabs(tabsize=)將製表符轉換爲空格
sr = "Li\tfe is short, you need python."
print(sr)
print(sr.expandtabs())

Li	fe is short, you need python.
Li      fe is short, you need python.

(12)字符串的分割變換

# .join(),將指定字符插入到元素之間,返回字符串
# sr.split('',num),以指定字符分割字符串,並去除該字符,可選參數分割指定個數的字符,返回列表
# sr.partition(),以指定字符分割字符串,並保留該字符,返回元組,只切割第一個字符
sr = "Life is short, you need python."
print('+'.join(sr))
li = ["I ", "Love ", "Python."]
print(''.join(li))  # 列表快速轉換爲字符串
print(sr.split('o'))
print(sr.partition('o'))

L+i+f+e+ +i+s+ +s+h+o+r+t+,+ +y+o+u+ +n+e+e+d+ +p+y+t+h+o+n+.
I Love Python.
['Life is sh', 'rt, y', 'u need pyth', 'n.']
('Life is sh', 'o', 'rt, you need python.')

(13)ASCII值和字符的轉換

# chr() digit--->alpha
# ord() alpha--->digit
for i in range(ord('a'), ord('c') + 1):
    print(chr(i))

a b c 

拓展:

# string模塊
import string
import random

print(dir(string))
print(string.ascii_letters)  # 輸出小寫a~z和A~Z
print(string.ascii_lowercase)  # 輸出a~z
print(string.ascii_uppercase)  # 輸出A~Z
print(string.digits)  # 輸出數字
list1 = list(string.ascii_letters + string.digits)
for i in range(4):  # 產生隨機四位驗證碼,包含大小寫字母和數字
    print(random.choice(list1), end='')
    
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
X 5 h 3 
import string
for i in range(8):
    print(oct(i))
for i in range(16):
    print(hex(i))
 
0o0 0o1 0o2 0o3 0o4 0o5 0o6 0o7 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 
print('%o' % 17)# 格式化字符串,轉換爲8進制
print('%x' % 17)# 格式化字符串,轉換爲16進制

21
11
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章