python小记--按字节反转字符串

按字节反转字符串

做CTF杂项题目时候 碰到一题文件数据被反转的情况 文件头变成了文件尾

 

于是乎写了个脚本反转回来

代码如下

s=""   #要反转的字符串
c=""   
i=len(s)-1
while(i>=0):
    c=c+s[i-1]+s[i]    #每两位反转一次
    i=i-2
print(c)

说一下大概的思路

首先第一个变量s中存储要反转的字符串

c用来存储最后输出的字符串

我的思路是从尾部开始取字符 每次取两个字符 这样就能按照字节反转字符串了

既然要从尾部开始取 那就先获取一下字符串的长度

于是乎需要用到 len() 函数 用来计算字符串长度

i=len(s)-1

这里为什么要减去1呢 因为数组索引的长度是从0开始的 而字符串长度计算是从1开始的 二者之间会相差1 所以要减去1

例子:
st="504749"
print(len(st))
print(st[0])
print(st[1])

输出结果:

 

可以明显的看到 索引是从0位开始的

while(i>=0):
    c=c+s[i-1]+s[i]    #每两位反转一次
    i=i-2
print(c)

因为要先取倒数第二位 再取倒数第一位

所以应该是

s[i-1]+s[i]

每次取完之后 i-2 因为i一开始的位置是在最后一字节的最后一位 -2 之后就可以跳到下一个字节的最后一位

 

 

这里用while循环 只有当i小于0时才会跳出循环 而当i小于0时 正好也取完所有字符串了

这样就能反转所有字符串了

最后输出结果

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tzyyyyyy

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值