1. python字元串(特殊字元,取值,常用方法)
1.字元串
特殊字元串
\n:換行
\r:刪除\r前面的字元
\t:製表符
例如:
s_1 = "人生苦短,\n我選Python!"
s_2 = "人生苦短,\r我選Python!"
s_3 = "人生苦短,\t我選Python!"
print(s_1) # 人生苦短,
print(s_2) # 我選Python
print(s_3) # 人生苦短, 我選Python!
遇到特殊字元,想去掉效果,把特殊字元轉成普通字元
可以使用# r R
s_1 =r "人生苦短,\n我選Python!"
s_2 =R "人生苦短,\r我選Python!"
s_3 = "人生苦短,\t我選Python!"
2.字元串取值
特點:取頭不取尾,正序從0開始,倒序從-1開始
[start:end:step] #step:表示間隔
s='hello python lemon'
print(s[6:12:1]) #正序 python 6,7,8,9,10,11
print(s[-12:-6:1]) # 倒序 python -12,-11,-10,-9,-8,-7
print(s[:])#hello python lemon 從頭取到尾 [:]
print(s[6:]) #python lemon 從6取到尾 [start:]
print(s[:17])# [:end] 從開始取到16
獲取s所有的偶數位的字母
print(s[0:17:2])
獲取s所有的奇數位的字母
print(s[1:18:2])
倒序輸出所有的字母
print(s[17::-1]) # 不可以寫出是s[17:-1:-1] or s[17:0:-1]
3.常用方法
find() : 返回-1表示未找到子字元串,找到會返回對應字元的索引,子字元包含單個字元或多個字元
isdigit():判斷是否全部是數字,是返回True,否返回False
replace(要替換的內容:替換的內容:替換的次數):指定替換內容以及被替換的字元串,並可以指定替換次數,默認是全部替換
split(指定字元,指定切割的次數):根據指定字元對字元串進行切割,默認全部切割
strip():去掉頭和尾指定的字元
upper():字元串的字母轉成大寫
lower():字元串的字母轉成小寫
swapcase():字元串的字母大小互換
例如:
s='learn python in lemon'
print(s.find('n')) #返回找到字元串的索引
print(s.find(python))#返回找到的子字元串的第一個索引值--6
print(s.find('k')) # 返回-1
print(s.find('o',11))#從索引值為11的值開始找---19
print(s.isdigit())# 返回False
s1 = "******learn python*****"
print(s.strip("*"))# learn python
2. Python讀取一個字元串,並循環輸出幾遍
總共六個字元
python可以通過str*2重復輸出字元串printstr*2#輸出字元串兩次,循環代碼塊就是將取到的每個字元進行列印輸出,總共六個字元,就循環執行了6次。接下來我們使用For循環遍歷一個列表。
3. python怎麼輸出string
字元串靜態拼接
print 'a' 'b'
=> ab
用空格分隔,並在最後追加換行符
print 'a', 'b'
=> a b
用空格分隔,不在最後追加換行符
print 'a', 'b',
=> a b
列印元組 ('a', 'b') 的 str 形式,並在最後追加換行符
print('a', 'b'),
=> ('a', 'b')
和上個等價
print('a', 'b',)
=> ('a', 'b')
列印元組 ('a', 'b') 的 str 形式,不在最後追加換行符
print('a', 'b'),
=> ('a', 'b')
不在最後追加換行符
print('hello'),
=> hello
----------------------------------------
列印到標准錯誤流
import sys
print >> sys.stderr, 'spam'
sys.stderr.write('spam\n')
from __future__ import print_function
print('spam', file = sys.stderr)
----------------------------------------
列印到文件流
logfile = open('/tmp/mylog.txt', 'a')
print >> logfile, 'Fatal error: invalid input!'
logfile.close()
4. Python中漢字和變數拼接輸出的8種方法(字元串拼接)
方法1:使用加號「+」連接字元串
最常用的連接字元串的方式是用加號「+」連接兩個字元串,連接後這兩個字元串將連接成一個字元串。但需注意的是,不能用「+」連接字元串和數字,需要把數字使用str()函數轉換成字元串,或者直接在數字兩側加帶引號,再進行連接,示例如下:
該方法性能差,盡量少用,因為 Python 中字元串是不可變類型,使用「+」號連接相當於生成一個新的字元串,需要重新申請內存,當用「+」號連接非常多的字元串時,將會很耗費內存,可能造成內存溢出。
方法2:使用逗號連接字元串
方法3:通過「%」連接字元串
借鑒C語言中的 printf 函數功能,使用%號連接一個字元串和一組變數,字元串中的特殊標記會被自動使用右邊變數組中的變數替換。
註:其中%s是佔位符。
方法4:通過str.format()方法拼接
通過這種方式拼接字元串需要注意的是字元串中{}的數量要和format方法參數數量一致,否則會報錯。
方法5:通過f-strings拼接
在python3.6.2版本中,PEP 498 提出一種新型字元串格式化機制,被稱為「字元串插值」或者更常見的一種稱呼是f-strings,f-strings提供了一種明確且方便的方式將python表達式嵌入到字元串中來進行格式化:
方法6:通過str.join()方法拼接
這種方式一般常使用在將集合轉化為字元串,」.join()其中」可以是空字元,也可以是任意其他字元,當是任意其他字元時,集合中字元串會被該字元隔開,例如:
輸出
我最喜歡的數字是-8
方法7:通過()多行拼接
python遇到未閉合的小括弧,自動將多行拼接為一行。
方法8:通過string模塊中的Template對象拼接
Template的實現方式是首先通過Template初始化一個字元串。這些字元串中包含了一個個key。通過調用substitute或safe_subsititute,將key值與方法中傳遞過來的參數對應上,從而實現在指定的位置導入字元串。
總結
格式化類:%、format()、 template
拼接類:+、()、join()、逗號
插值類: f-strings
當要處理字元串列表等序列結構時,彩用join()方式;拼接長度不超過20時,選用+號操作符方式;長度超過20的情況,高版本選用f-string,低版本看情況使用format()或join()方式。
5. python能輸出數字不能輸出字母
1、輸出所有的大寫字母
print([chr(i) for i in range(65,91)])
2、輸出所有小寫字母
print([chr(i) for i in range(97,123)])
3、輸出所有的數字字元
print([chr(i) for i in range(48,58)])0x01 string是一個字元串常量的集合的包。
6. 459. 重復子字元串(Python)
難度:★☆☆☆☆
類型:數組
給定一個非空的字元串,判斷它是否可以由它的一個子串重復多次構成。給定的字元串只含有小寫英文字母,並且長度不超過10000。
示例 1:
輸入: "abab"
輸出: True
解釋: 可由子字元串 "ab" 重復兩次構成。
示例 2:
輸入: "aba"
輸出: False
示例 3:
輸入: "abcabcabcabc"
輸出: True
解釋: 可由子字元串 "abc" 重復四次構成。 (或者子字元串 "abcabc" 重復兩次構成。)
這里我們觀察到一個現象,對於一個字元串s,我們將兩個該字元串連接成一個更長的字元串(s_double),該字元串中至少包含兩個s子串,如果s可以由多個重復單元構成,那麼合並後的字元串中一定包含超過兩個s子串(可重疊),例如,兩個"abab"組成的"abababab"中包含3個"abab",而兩個"aba"組成的"abaaba"則只包含兩個"aba",根據這個原理,我們只需要統計s+s中s(可重疊)出現的次數,並與2比較即可。
這里為了簡化計算,我們把s+s的首尾兩端字元去掉,這樣就只需要查看s是否在剩餘的字元串中即可。編碼時通過索引范圍[1:len(s)*2-1]起到去掉首尾兩端字元的效果。
如有疑問或建議,歡迎評論區留言~