wmy1212 发表于 2021-6-7 22:09:46

萌新问,关于进制转换程序

num = input('please input a round(or input Q to end the program):')
while num != 'Q':
    num = int(num)
    num16 = '%x'%num
    num8 = '%o'%num
    num2 = bin(num)
    print(r'十进制 -> 十六进制:'+ num + r'->' + num16)
    print(r'十进制 -> 八进制:'+ num + r'->' + num8)
    print(r'十进制 -> 二进制:'+ num + r'->' + num2)
    print(r'please input a round(or input Q to end the program):')
    num = input('please input a round(or input Q to end the program):')


这个程序有问题,我自检了一下,应该是因为我的num16,8,2这几个参数的类型都是str。
为什么会这样?我的num已经整形处理了,num16,num8,num2都是由num运算得来的。
可以这样理解:“经过字符串格式化之后得到的结果,其类型都是str吗?”

wmy1212 发表于 2021-6-7 22:14:14

ps:不好意思最后一行重复了。以及不要在意塑料英语,只为了输入方便{:5_92:}

Twilight6 发表于 2021-6-7 22:14:31



“经过字符串格式化之后得到的结果,其类型都是str吗?”

当然,简单理解字符串格式化就是将数据整合到字符串的指定占位符位置,生成的字符串

wmy1212 发表于 2021-6-7 22:16:06

num = input('please input a round(or input Q to end the program):')
while num != 'Q':
    num = int(num)
    num16 = '%x'%num
    num8 = '%o'%num
    num2 = bin(num)
    num = str(num)
    print(r'十进制 -> 十六进制:'+ num + r'->' + num16)
    print(r'十进制 -> 八进制:'+ num + r'->' + num8)
    print(r'十进制 -> 二进制:'+ num + r'->' + num2)
    num = input('please input a round(or input Q to end the program):')

加了一行,把num变成字符,这样可以跑出来。是我对print的理解不对。
页: [1]
查看完整版本: 萌新问,关于进制转换程序