您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页python小记--按字节反转字符串

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时 正好也取完所有字符串了

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

最后输出结果

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务