领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

Python随笔28:Python基础编程练习题21~22

nixiaole 2024-11-13 14:08:24 知识剖析 18 ℃


:本文所有代码均经过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.

Tags:

最近发表
标签列表