1. 程式人生 > >python學習筆記3(字串)

python學習筆記3(字串)

字串

定義:以單引號或雙引號括起來的任意文字

#建立字串
str1 = 'sunck is a good man!'

字串運算

#字串連線
str2 = 'sunck is a'
str3 = 'good man'
str4 = str2 +str3
print(str4)

#輸出重複的字串
str5 = 'good'
str6 = str5 *3
print('str6 =',str6)

#訪問字串中的某個字元
#通過索引下標查詢字元,索引從0開始
str7 = 'sunck is a good man!'
print(str7[1])

#擷取字串中的一部分
#從給定下標處擷取到給定下標之前
str8 = str7[:5]
#從給定下標處開始擷取到結尾
str9 = str7[5:]

#判斷某字串是否在另一字串中
print("good" in str7)
print("good1" not in str7)

格式化輸出

#格式化輸出
print("sunc is a good man")
num = 10
str10 = "sunck is a nice man!"
f = 10.1267
print("num =", num, "str10 =", str10)

#  %d   %s   %f  佔位符
#  %.3精確到小數點後3位,會四捨五入
print("num = %d, str19 = %s, f = %.3f" % (num, str10, f))
# \\結果只現實一個\,第一個作為轉義字元
print("sunck \\ is")

# \'   \",不然外面要用三引號
print('tom is a \'good\' man')
print("tom is a \"good\" man")


#如果字串內有很多換行,用\n寫在一行不好閱讀
#可用三引號保留字串的格式
print("good\nnice\nhandsome")
print('''
good
nice
handsome
''')

#製表符   \t
print("sunck\tgood")
#如果字元中有好多字串都需要轉義,就需要加入好多\,
# 為了簡化,Python允許用r表示內部的字串預設不轉義
#     \\\t\\
print("\\\t\\")    #結果  ‘\	\’
print(r"\\\t\\")   #結果  ‘\\\t\\’
print(r"C:\Users\xlg\Desktop\Python-1704\day03")   #結果  ‘C:\Users\xlg\Desktop\Python-1704\day03’
print("C:\\Users\\xlg\\Desktop\\Python-1704\\day03")  #結果‘C:\Users\xlg\Desktop\Python-1704\day03’

'''
不同的作業系統的路徑表示方法
windows
  C:\\Users\\xlg\\Desktop\\Python-1704\\day03
linux
  /root/user/sunck/Desktop/Python-1704/day03
'''

其他字串中常用方法

#eval(str)
#功能:將字串str當成有效的表示式來求值並返回計算結果
num1 = eval("123")
print(num1)     #123
print(type(num1))    #int
print(eval("+123"))   #123
print(eval("-123"))   #-123
print(eval("12+3"))   #15
print(eval("12-3"))   #9
a123 = 234
print(eval("a123"))   #234
#print(eval("12a3"))  #報錯

#len(str)
#返回字串的長度(字元個數),空格,漢字都佔一個字元
print(len("sunckisagoodman"))        #輸出15
print(len("sunck is a good man"))    #輸出19
print(len("sunck is a good man凱"))  #輸出20

#lower()轉換字串中大寫字母為小寫字母
str20 = "SUNCK is a Good Man!凱"
str21 = str20.lower()
print(str21)
print("str20 = %s" %(str20))

#upper()轉換字串中小寫字母為大寫字母
str21 = "SUNCK is a Good Man!"
print(str21.upper())

#swapcase()轉換字串中小寫字母為大寫字母,大寫字母為小寫字母
str22 = "SUNCK is a gOOd mAn!"
print(str22.swapcase())

#capitalize()  首字母大寫,其他小寫
str23 = "SUNCK is a gOOd mAn!"
print(str23.capitalize())

#title()每個單的首字母大寫
str24 = "SUNCK is a gOOd mAn!"
print(str24.title())

#  character   char
#center(width[, fillchar])
#返回一個指定寬度的居中字串,fillchar為填充的字串,預設空格填充
str25 = "kaige is a nice man"
print(str25.center(40,"*"))    #輸出  **********kaige is a nice man***********

#ljust(width[, fillchar])
#返回一個指定寬度的左對齊字串,fllchar為填充字元,預設空格填充
str26 = "kaige is a nice man"
print(str26.ljust(40, "%"))   #輸出:kaige is a nice man%%%%%%%%%%%%%%%%%%%%%

#rjust(width[, fillchar])
#返回一個指定寬度的右對齊字串,fllchar為填充字元,預設空格填充
str27 = "kaige is a nice man"
print(str26.rjust(40, "%"))   #輸出:%%%%%%%%%%%%%%%%%%%%%kaige is a nice man

#zfill(width)
#返回一個長度為width的字串,原字串右對齊,前面補0
str28 = "kaige is a nice man"
print(str28.zfill(40))

#count(str[,start][,end])
#返回字串中strc出現的次數,可以指定一個範圍,預設從頭到尾
str29 = "kaige is a very very nice man"
print(str29.count("very",15, len(str29) ))  #輸出1

#find(str[, start][,end])
#從左向右檢測str字串是否包含在字串中,可以指定範圍,預設從頭到尾。得到的是第一次出現的開始下標,沒有返回-1
str30 = "kaige is a very very nice man"
print(str30.find("very"))   #輸出11
#沒有時輸出-1,而不報錯
print(str30.find("good"))   #輸出-1
print(str30.find("very", 15, len(str30)))  #輸出16

#rfind(str[, start][,end])]
#從右向左檢測
str30 = "kaige is a very very nice man"
print(str30.rfind("very"))  #輸出16
#print(str30.rfind("good"))  #輸出-1
print(str30.rfind("very", 0, 15))   #輸出11

#index(str, start=0, end=len(str))
#根find()一樣,只不過如果str不存在的時候回報一個異常
str31 = "kaige is a very very nice man"
#print(str31.index("good"))  #報錯:ValueError: substring not found

#rindex(str, start=0, end=len(str))
#根rfind()一樣,只不過如果str不存在的時候回報一個異常
str32 = "kaige is a very very nice man"
print(str32.rindex("very"))

#lstrip()截掉字串左側指定的字元,預設為空格
str33 = "*******kaige is a nice man"
print(str33.lstrip("*"))   #輸出:kaige is a nice man

#rstrip()截掉字串右側指定的字元,預設為空格
str34 = "kaige is a nice man          "
print(str34.rstrip(), "*")    #輸出:kaige is a nice man *

#strip()截掉所有指定的字元
str35 = "*******kaige is a nice man*********"
print(str35.strip("*"))  #輸出:kaige is a nice man

#ord()函式用來返回對應字元的ascii碼
#chr()用來表示ascii碼對應的字元他的輸入時數字,可以用十進位制,也可以用十六進位制。
str36 = "a"
print(ord(str36))   #輸出:97
str37 = chr(65)    
print(str37)         #輸出:A
 print (chr(0x61))  #輸出:a
print(" " != " ")       #輸出:False