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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,410评论 0 2
  • 本节要介绍的是Python里面常用的几种数据结构。通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组...
    小黑y99阅读 65,224评论 0 9
  • 2019.10.6 "叮,叮" 沉寂了一个假期的社群在即将开学的日子里终于热闹了起来,小佳在宿舍过了孤独的六天之...
    何日向光何日向阳阅读 112评论 0 1
  • 猫咪名字:夜宵 男 问题:1.他的灵魂是我很重要的人么? 2.他来我身边有什么任何使命或者任务么? 3.他每天叫是...
    古茜妲樹二阅读 410评论 0 4
  • 今天12点爷爷奶奶就到我家来剪头发,因为我妈妈是理发师,因为我爷爷在这剪不用花一分钱就行,所以爷爷让我妈妈给她剪头...
    褚佳琦阅读 707评论 0 0