注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。
Python基础练习题21:倒序输出子字符串
s = 'abc12345',只能通过切片方法,如何得到新的字符串'54321'?
解答:这题考量的是字符串的切片方法的应用,关键在于分析对应的字符串索引(index)。而跟索引相关的一个函数enumerate就能排上用场了。
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基础练习题22:字符串循环左移
给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动到字符串的尾部,得到新字符串“cdefab”,称作字符串循环左移k位。输入一个字符串和一个非负整数N,要求将字符串循环左移N次。
输入格式:
输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。
输出格式:
在一行中输出循环左移N次后的字符串。
输入样例:
abcd
2
输出样例:
cdab
解答:本题考量的一样是字符串切片方法的使用。虽然使用for in遍历并拼接也可以解决问题,但切片终究才是最简洁、最直接的解决之道。
s = str(input())
n = int(input())
s = s[n::] + s[:n:]
print(s)
To be continued.