c++ 返回多個字串_python字串
阿新 • • 發佈:2021-02-17
技術標籤:c++ 返回多個字串
str字串
- 本節內容概覽
- 1、何為str?
- 2、轉義字元
- 3、字串格式化
- 4、Python字串內建函式和操作
- 5、python字串練習
一、字串
- Python中最常用的資料型別
- 用來表示文字資訊
- 在Python中用單引號、雙引號、三引號括起來的
# 單引號示例
s = 'I am jason'
print(s)
I am jason
# 三引號示例
s = '''
I
am
jason
'''
print(s)
I
am
jason
二、轉義字元
- 用一個特殊的方法表示出一系列不方便寫出的內容,比如回車鍵、換行符、退格符(需要在字元中使用特殊字元時)
- 藉助反斜槓字元,一旦字串中出現反斜槓,則反斜槓後面一個或者幾個字元表示已經不是原來的意思了,進行了轉義
- 在字串中,一旦出現反斜槓就要加倍小心,可能有轉義字元出現
- 不同系統對換行操作有不同的表示,例如
- windows: n
- linux: rn
- 常用的轉義字元
- # 在python裡,單個反斜槓表示此行未結束,處於美觀,需要下一行繼續
- (在行尾時)續行符
- # 反斜槓符號
- n # 換行
- t # 橫向製表符
- f # 換頁
# 轉義字元案例1 # 想表達Let's Go # 使用轉義字元 s = 'Let's Go' print(s) # 使用單雙引號巢狀 s = "Let's Go" print(s) # 表示斜杆 # 想表示c:User s = "c:User" print(s) # 回車換行 # 想表達的效果是: # I # am # jason s = "Inamnjason" print(s) Let's Go Let's Go c:User I am jason # 單個斜槓案例1 # def myDemo(x, y, z): print("hhh") myDemo(1, 2, 3) hhh
三、字串格式化
- 把字串按照一定格式進行列印或者填充
- 格式化的分類:
- 傳統格式化
- 使用%進行格式化(%也叫佔位符)
- 佔位符可以單獨使用
- 佔位符一般只能被同類型替換,或者替換型別能被轉換成佔位符的型別
- 需要格式化的資訊大於一個,則用括號括起來
- 常見的佔位符有: %d 整數 %f 浮點數 %s 字串 %x 十六進位制整數
- format
- 使用函式形式進行格式化,代替前面的百分號
- 傳統格式化
# %格式化練習1 s = "I am %s" print(s) print(s% "jason") print("I am %s" % "liu") I am %s I am jason I am tony9 I am liu # %格式化練習1(多個格式化) s = "jason is %d old" print(s%19) s = "jason is %.2fm heigh, %.2fkg weight" print(s%(10.0, 10.0)) jason is 19 old jason is 10.00m heigh, 10.000000kg weight # format格式化練習 # 不用指定位置,按順序讀取 # 案例1 s = "{} {}!" print(s.format("hello", "world")) # 案例2 s = "{} {}!".format("hello", 1) print(s) # 設定指定位置 # 案例3 s = "{1} {0}!".format("hello", "world") print(s) # 使用命名引數 # 案例4 s = "我們的是{school_name}, 網址是{url}, {teacher}" s = s.format(school_name="test", url="test", teacher="test") print(s) # 使用命名引數 # 案例5 # 通過字典設定引數,但是需要解包 s = "我們的是{school_name}, 網址是{url}, {teacher}" s_dict = {"school_name":"test", "url":"test", "teacher":"test"} print(s.format(**s_dict)) # 對數字的格式化需要用到 s = "jason is {:.2f}m heigh, {:.2f}kg weight" print(s.format(1.84, 65)) hello world! hello 1! world hello! 我們的是test, 網址是test, test 我們的是test, 網址是test, test jason is 1.84m heigh, 65.00kg weight
四、str內建函式和操作
- 很多語言字串使用string表示,但python中使用str表示字串
- 字串查詢類,in, find, index, rfind
- 字串判斷類,islower, isupper, startswith
- 字串內容判斷,startswith/endswith
- 字串操作類:空格剝離(strip), 字串拆分(split), 合成字串(join), 大小寫轉換(upper), 子字串替換(replace), 組合多個列表(zip)
- 字串連線,+, *,
- 字串可當作列表
help(str.__add__)
Help on wrapper_descriptor:
__add__(self, value, /)
Return self+value.
4.1、字串查詢
- in:包含
- find: 查詢字串中是否包含一個子串,並返回子串所在的位置 (Return -1 on failure.)
- rfind: 從從右查詢
- index: 查詢字串中是否包含一個子串,並返回子串所在的位置(Raises ValueError when the substring is not found)
s = "I am jasonliu and jasonzhang"
s1 = "jason"
print(s.find(s1))
s2 = "tony"
print(s.find(s2))
s3 = "and"
print(s.find(s3, 17))
s4 = "jason"
print(s.rfind(s4))
5
-1
-1
18
s = "I am jasonliu and jasonzhang"
s1 = "jason"
print(s.index(s1))
s2 = "tony"
print(s.index(s2))
5
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-69-1b293ca51502> in <module>
4
5 s2 = "tony"
----> 6 print(s.index(s2))
ValueError: substring not found
4.2、字串判斷
- 此類函式的特點一般都是用is開頭
- islower: 判斷字串是否都是小寫字母,是則返回True,否則返回False
- isupper: 判斷字串是否都是大寫字母,是則返回True,否則返回False
- istitle: 判斷每個單詞開頭字母是否是大寫
- isspace: 判斷字串是否是空字串
- isalpha: 判斷是否是字母
- 此函式預設的前提是字串至少包含一個字元,如果沒有,統一返回False
- 漢字被認為是alpha,所以,次函式不能作為區分英文字母還是漢字的標識,區分中英文請使用unicode碼
- 主要是有區別,防止被坑
- isdigit, isnumeric, isdecimal 三個判斷數字的函式
- 此類函式不建議使用,在後期爬蟲中,判斷是否是數字建議採用正則表示式 digit: True: unicode數字,byte數字,全形數字,羅馬數字 False: 羅馬數字 Error: byte數字
- isalnum: 檢查字串是否由字母加數字組成
s = "jason"
print(s.islower())
s = "Jason"
print(s.islower())
s1 = "test is test"
print(s1.isalpha())
True
False
False
chin_num = "一二三四"
print(chin_num.isdigit())
print(chin_num.isnumeric())
print(chin_num.isdecimal())
False
True
False
4.3、內容判斷類
- startswith/endswith:是否以xxx開頭或結尾
- 檢測某個字串是否以某個子串開頭,常用三個引數
- suffix:被檢查的字串,必須有
- start:檢查範圍的開始範圍
- end:檢查範圍的結束範圍
test1= "Jason Liu"
test2 = "Tony Liu"
s = "Jason Liu and Tony Liu"
print(s.startswith(test1, 5))
print(s.endswith(test2))
False
True
4.4、操作類
- strip: 刪除字串兩邊的空格(預設,也可以指定需要刪除的東西),
- lstrip/rstrip
- split:字串拆分
- splitlines:已換行符拆分
- join:合成字串
- upper:將所有字母變成大寫
- lower:將所有字母變為小寫
- swapcase:大小寫互換
- replace:子字串替換
- zip:組合多個列表
- capitalize:首字母大寫
- title:每個單詞首字母大寫
- len:計算字串長度
- count:計算字串出現次數,返回整形
c = "JJJason and tony "
print(c.strip(), end='---')
print()
print(c.strip('J'))
JJJason and tony---
ason and tony
c = "jason and tony "
print(c.split(sep=" "))
['jason', 'and', 'tony', '']
s1 = "$"
s2 = "-"
s3 = " "
ss = ["Jason liu", "Tony liu"]
print(s1.join(ss))
print(" ".join(ss))
Jason liu$Tony liu
Jason liu Tony liu
c = "jason and tony "
print(c.upper())
JASON AND TONY
c = "jason and tony"
print(c.replace("tony", "a"))
jason and a
c = ["jason", "liu", "tony"]
d = ["dana", "yd"]
for x, y in zip(c, d):
print(x, y)
jason dana
liu yd
4.5 字串連線
- +
- *
c = "jason and tony"
d = " liu"
print(c+d)
print(d*3)
jason and tony liu
liu liu liu
4.6 字串當列表
s = "jason and tony"
print(s[0])
print(id(s))
print(id(s[:]))
print(id(s[0:2]))
j
4406693552
4406693552
4406709920
五、字串練習
# "Tuling"和"tuling" 是一樣的嗎?
"Tuling" == "tuling"
False
# 字串拼接
str = "I love" + "yuandan"
print(str)
I loveyuandan
# 編寫程式,要求使用者輸入姓名並且列印"你好,姓名”
name = input("請輸入姓名:")
print("你好"+name)
請輸入姓名:jason
你好jason
# 編寫程式,要求使用者輸入1-100之間的整數並且判斷,輸入符合要求的列印"你好看”,否則列印“你醜八怪”
temp = input("請輸入一個零到一百的整數:")
if temp.isdigit():
temp = int(temp)
if 1 <= temp <= 100:
print("你好看")
else:
print("你醜八怪")
else:
print("你醜八怪")
請輸入一個零到一百的整數:1
你好看