python-首字母移位(PythonTip)

[题目描述]
编写一个程序,将句子中每个单词的首字母移位到下一个单词。定义函数shift_first_letter(),参数为sentence(字符串)。在函数内,将句子中每个单词的首字母移位到下一个单词。最后一个单词的首字母移位到句子的第一个单词。
比如create a function,移位后为freate c aunction,步骤为:句子中单词的首字母为:
create → c
a → a
function → f
经过右移一步后:
f → freate
c → c
a → aunction
所以最终结果为freate c aunction。
示例输入:
create a function
示例输出:
freate c aunction


完整代码展示:
a=list(map(str,input().split()))
b=[]
for i in range(0,len(a)):
      for j in range(0,len(str(a[i]))):
           if j==0:
               b.append(a[i][j])
b.reverse()
b.append(b[0])
b.remove(b[0])
b.reverse()
c=0
e=[]
while c<len(a):
       sum=""
       d=list(str(a[c]))
       for k in range(0,len(d)):
             if k==0:
                  sum+=b[c]
            else:
                  sum+=d[k]
      e.append(sum)
      c+=1
for l in range(0,len(e)):
    print(e[l],end=" ")


代码解释:
a=list(map(str,input().split())) ”,让用户输入一行字符串,并将其分割后储存进列表a中。
b=[]
 for i in range(0,len(a)):
       for j in range(0,len(str(a[i]))):
            if j==0:
                b.append(a[i][j])            
”,建立一个空列表b,依次遍历列表a中的每一个元素,并依次遍历每个元素中的每个字符,判断其是否为该元素的首字符:如果是,则将该元素的首字符添加进列表b中;否则不作处理。直至遍历结束。
b.reverse()
 b.append(b[0])
 b.remove(b[0])
 b.reverse()      ”
,先反转列表b,再将其第一个元素添加进末尾,再删除第一个元素,再反转列表b,意义在于将列表b中每个元素向右旋转一位。
c=0
 e=[]
 while c<len(a):
        sum=""
        d=list(str(a[c]))
        for k in range(0,len(d)):
              if k==0:
                   sum+=b[c]
             else:
                   sum+=d[k]
       e.append(sum)
       c+=1
                               ”,设循环密码子为c,并将其初始值设为0,建立一个空列表e。当c<len(a)时,建立一个空字符串sum,将a[c]转换为字符储存进列表d中。接着遍历列表d,如果k==0,则让sum连接b[c];否则sum连接d[k],遍历结束后,将连接完成的字符串sum添加进列表e中。每循换一次,就令c+1,直至c==len(a),跳出整个whle循环。
for l in range(0,len(e)):
        print(e[l],end=" ")
   ”,依次遍历列表e中所有元素并打印,每两个元素之间插入一个空格。


运行效果展示:

993ada6818554741b31e896b2d15732a.jpg
            
        

81047b5ae03a4fcab575c62e0386facc.jpg 

              (声明:以上内容均为原创) 


        

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪云-微星

感谢大家的支持与鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值