1. 程式人生 > >字串的相關操作,例子以及應用

字串的相關操作,例子以及應用

1.把首字母大寫,返回給你一個新的字串

  capitalize()

s = "abcdefg"
s1 = s.capitalize() # 把首字母變成大寫, 返回給你一個新的字串
print(s) # 字串不可變. 原字串是不會發生改變的
print(s1)

2.所有的字母變成大寫字母(重點)

  upper()

s = "alex sb dsb bigsb"
s3 = s.upper() # 所有的字母變成大寫字母(重點)
print(s3)

3.所有字母變小寫

  lower()

  casefold() 支援特殊文字

s = "Alex Is Not A GooD mAN"
s4 = s.lower() # 有問題的. 對歐洲特殊文字是不識別的
print(s4)

s = "Alex Is Not A GooD mAN"
s5 = s.casefold() # 支援特殊文字
print(s5)

s2 = "БBß" # 俄美德
print(s2)
print(s2.lower())
print(s2.casefold())

4.大小轉換:

  swapcase()

  小變大,大變小

s = "wusir 昨天 Love 了 女神. guo fen 了"
print(s.swapcase()) # 大變小, 小變大

5.居中

  center()

 center()  中間. 居中
s = "alex"
s6 = s.center(10, "*") # 長度, 用_填充
print(s6)

6.去掉兩端的空白

  strip()

s = "\n\nalex    is      sb      "
print(s)
s7 = s.strip() # 去掉左右兩端的空白(空格, \t, \n), 中間的內容不會動
print(s7)

  應用:

  除了登陸驗證外還可以去除兩端的字元

uname = input("請輸入你使用者名稱:").strip()  # 幹掉使用者的空格
upws = input("請輸入你的密碼:").strip()  # 幹掉使用者的空格
if uname =="alex" and upws == "123":
    print("登入成功")
else:
    print("登入失敗")

s = "sbalexsbwusirsb"
print(s.strip("sb")) # 去掉左右兩端的sb

7.字元替換:

  replace()

s = "       good alex good wusir good 大蝦 good 胡辣湯     "
s8 = s.replace("good", "sb")     # 把s中的good替換成sb
print(s8)
s9 = s.replace(" ", "")
print(s9)
s10 = s.replace("good", "sb", 2) # 字串替換2次
print(s10)

8.字串切割

  split()

s = "alex 昨天給我們漲工資了? 不可能"
lst = s.split("alex") # 切出來的結果會放在列表中, 刀如果把頭了. 一定會產生空字串
print(lst)

9.格式化輸出

name = "alex"
age = 18
hobby = "wusir"

print("領導叫%s, 今年%d, 喜歡%s" % (name, age, hobby))
print("領導叫{}, 今年{}, 喜歡{}".format(name, age, hobby))
print("領導叫{1}, 今年{0}, 喜歡{2}".format(name, age, hobby)) # 程式設計師數數從0開始
print("領導叫{na}, 今年{age}, 喜歡{hobby}".format(na = name, age = age, hobby = hobby))

print(f"領導叫{name}, 今年{age}, 喜歡{hobby}")

10.判斷字串是否以xxx開頭或者是xxx結尾

  startswith():判斷字串是否以xxx開頭

  endwith():判斷字串是否以xxx結尾

  這裡只有開頭的例子,同理自己去練習以xxx結尾

s = "java_python_區塊鏈_大資料"
print(s.startswith("python")) # 判斷xxx是否已xxx開頭.
name = input("請輸入你的名字:")  # 張開 致青春
if name.startswith("張"):
    print("領錢")
else:
    print("不領錢")

11.計數

  count()

s = "alex is big sb"
print(s.count("i"))  # 計數

12.查詢

  (1)find() 查詢, 如果存在. 返回索引. 如果不存在返回-1

  (2)index() 查詢,如果找到了返回索引. 找不到. 報錯

s = "滋滋冒油的豬蹄子"
# print(s.find("牛")) # 用這個

# index() 如果找到了返回索引. 找不到. 報錯
# print(s.index("牛"))

13.判斷字串的組成

  (1)isalpha() 是否是由基本的文字組成. 是否是由字母組成(包括中文)

  (2)是否由數字組成

      isdigit() 是否由數字組成(阿拉伯數字)

      isnumeric() 

= "alexwusir"
print(s.isalpha()) # 是否是由基本的文字組成. 是否是由字母組成(包括中文)


s = "123456798一" # digit 數字   %d
print(s.isdigit()) # 阿拉伯數字


s = "123456789一二三壹仟貳佰壹拾伍叄"
print(s.isnumeric()) # number

14.字串的長度

  len()

s = "我叫周潤發,我喜歡DNF"
print(len(s)) # 字串長度, 內建函式

15.for迴圈來遍歷字串

for迴圈來遍歷字串
for: 迴圈
c: 變數
in : 固定的
s: 你要遍歷的內容
for c in s: # 把字串s中的每一個元素拿到賦值給前面的c
print(c)

for迴圈有一個先決條件. 必須是可迭代物件.
缺點: 無法看到字元的索引.
'''
for 變數 in 可迭代物件:
迴圈體(break, continue)
'''

  有while把每句話的每一個字元拿到。例子:

s = "風扇哥門神燈神哈哈我的天哪" # len(s)
# 用while迴圈. 獲取到每一個字元
i = 0  # 索引
while i < len(s):
    print(s[i])
    i += 1