注:本文所有代碼均經(jīng)過(guò)Python 3.7實(shí)際運(yùn)行檢驗(yàn),保證其嚴(yán)謹(jǐn)性。
Python基礎(chǔ)練習(xí)題21:倒序輸出子字符串
s = 'abc12345',只能通過(guò)切片方法,如何得到新的字符串'54321'?
解答:這題考量的是字符串的切片方法的應(yīng)用,關(guān)鍵在于分析對(duì)應(yīng)的字符串索引(index)。而跟索引相關(guān)的一個(gè)函數(shù)enumerate就能排上用場(chǎng)了。
s = 'abc12345'
for i in enumerate(s):
print(i)
(0, 'a')
(1, 'b')
(2, 'c')
(3, '1')
(4, '2')
(5, '3')
(6, '4')
(7, '5')
可以直觀地看到,如要倒序,要從'c'那里切5片,而s.index('c') = 2,所以
s = 'abc12345'
s[:2:-1]
Out[66]: '54321'
Python基礎(chǔ)練習(xí)題22:字符串循環(huán)左移
給定一個(gè)字符串S,要求把S的前k個(gè)字符移動(dòng)到S的尾部,如把字符串“abcdef”前面的2個(gè)字符‘a(chǎn)’、‘b’移動(dòng)到字符串的尾部,得到新字符串“cdefab”,稱作字符串循環(huán)左移k位。輸入一個(gè)字符串和一個(gè)非負(fù)整數(shù)N,要求將字符串循環(huán)左移N次。
輸入格式:
輸入在第1行中給出一個(gè)不超過(guò)100個(gè)字符長(zhǎng)度的、以回車結(jié)束的非空字符串;第2行給出非負(fù)整數(shù)N。
輸出格式:
在一行中輸出循環(huán)左移N次后的字符串。
輸入樣例:
abcd
2
輸出樣例:
cdab
解答:本題考量的一樣是字符串切片方法的使用。雖然使用for in遍歷并拼接也可以解決問(wèn)題,但切片終究才是最簡(jiǎn)潔、最直接的解決之道。
s = str(input())
n = int(input())
s = s[n::] + s[:n:]
print(s)
To be continued.