急~~~~~~~~python关于ascii及进制转换问题,单个字母或符号转化成二进制或八进制数字,偶是菜鸟~
能够完成test1-10就好最好能说明一下每一句的功能好的话追加分哦~P.S.python用的是2.5的版本,2.7也可,貌似3.0有部分指令不一样?不太清楚...tes...
能够完成test1-10就好
最好能说明一下每一句的功能
好的话追加分哦~
P.S.python用的是2.5的版本,2.7也可,貌似3.0有部分指令不一样?不太清楚...
test如下:
'''
## Tests for Converter
Test 1 - upper case character > bin
>>> converter('A', 'bin')
Bin: 01000001
Test 2 - lower case character > bin
>>> converter('a', 'bin')
Bin: 01100001
Test 3 - number > bin
>>> converter('2', 'bin')
Bin: 00110010
Test 4 - special character > bin
>>> converter('$', 'bin')
Bin: 00100100
Test 5 - special character > bin
>>> converter('%', 'bin')
Bin: 00100101
Test 6 - upper case character > oct
>>> converter('A', 'oct')
Oct: 101
Test 7 - lower case character > oct
>>> converter('a', 'oct')
Oct: 141
Test 8 - number > oct
>>> converter('2', 'oct')
Oct: 062
Test 9 - special character > oct
>>> converter('>', 'oct')
Oct: 076
Test 10 - special character > oct
>>> converter('?', 'oct')
Oct: 077
''' 展开
最好能说明一下每一句的功能
好的话追加分哦~
P.S.python用的是2.5的版本,2.7也可,貌似3.0有部分指令不一样?不太清楚...
test如下:
'''
## Tests for Converter
Test 1 - upper case character > bin
>>> converter('A', 'bin')
Bin: 01000001
Test 2 - lower case character > bin
>>> converter('a', 'bin')
Bin: 01100001
Test 3 - number > bin
>>> converter('2', 'bin')
Bin: 00110010
Test 4 - special character > bin
>>> converter('$', 'bin')
Bin: 00100100
Test 5 - special character > bin
>>> converter('%', 'bin')
Bin: 00100101
Test 6 - upper case character > oct
>>> converter('A', 'oct')
Oct: 101
Test 7 - lower case character > oct
>>> converter('a', 'oct')
Oct: 141
Test 8 - number > oct
>>> converter('2', 'oct')
Oct: 062
Test 9 - special character > oct
>>> converter('>', 'oct')
Oct: 076
Test 10 - special character > oct
>>> converter('?', 'oct')
Oct: 077
''' 展开
3个回答
展开全部
不太直观了点
def converter(char, m):
s = eval("%s(ord('%s'))" % (m.lower(), char))
if 'b' in s:
return 'Bin: %s' % (''.join(('%08s' % s.replace('b', '0'))[-8:]))
return 'Oct: %s' % s
def converter(char, m):
s = eval("%s(ord('%s'))" % (m.lower(), char))
if 'b' in s:
return 'Bin: %s' % (''.join(('%08s' % s.replace('b', '0'))[-8:]))
return 'Oct: %s' % s
更多追问追答
追问
能解释一下每句的意义吗?我有点看不懂额....
另外,有木有简洁一些的?谢啦~
追答
eval("%s(ord('%s'))" % (m.lower(), char))是执行字符串里面的内容,如eval("print 'hello'")就和print 'hello'是一样的功能
本来直接用bin 或 oct 就可以满足要求,但是 bin会返回0b111001等类似的东西,你要求的没有b这个字符而且是8位, 所以'Bin: %s' % (''.join(('%08s' % s.replace('b', '0'))[-8:]))就是把
0b111001里的b换成0,并且固定输出8位。
也可以自己定义bin, oct等
def _mod(char, scale=2):
s = []
_, m = divmod(ord(char), scale)
s.append(m)
while _:
_, m = divmod(_, scale)
s.append(m)
return ''.join((str(c) for c in s[::-1]))
def bin(s):
return _mod(s, 2)
def oct(s):
return _mod(s, 10)
展开全部
def converter(parachar, paratype):
if(0==cmp('bin',paratype.lower())):
print 'Bin: ' + bin(ord(parachar))
if(0==cmp('oct',paratype.lower())):
print 'Oct: ' + oct(ord(parachar))
if(0==cmp('bin',paratype.lower())):
print 'Bin: ' + bin(ord(parachar))
if(0==cmp('oct',paratype.lower())):
print 'Oct: ' + oct(ord(parachar))
追问
因为学校用的是2.5版本,所以不能使用bin()和oct(),麻烦就麻烦在这里,能定义一下bin()和oct()吗?拜托了
追答
楼下答了那么多了,让他继续答吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
binascii.b2a_hex('58.19.176.200:8080')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询