15070159117 发表于 2020-10-15 10:25:16

求助,课后作业进制转换。

小甲鱼的答案比较简单,我则想实现判断输入的内容是否是整数这一功能,编写代码如下:
answer = input('叫声爹就帮你转换进制:')
temp = answer
if temp == "爹":
    print("诶,真乖")
    while 1:
      num = input("儿砸,输入一个你想转换的整数吧:")
      int_num = int(str(num))
      if type(num)==int:
            x = '%#x' % num
            o = '%#o' % num
            t = bin(num)
            print('十进制 -> 十六进制:',num," -> ",x)
            print('十进制 -> 八进制:',num," -> ",o)
            print('十进制 -> 二进制:',num," -> ",t)
      elif num == "Q":
            break
      else:
            print("sb,你输入的什么玩意\n"
                  "再给你一次机会,不要给脸不要脸")
else:
    print("SB,不肯叫我会帮你?")

      运行结果为:

叫声爹就帮你转换进制:爹
诶,真乖
儿砸,输入一个你想转换的整数吧:10
sb,你输入的什么玩意
再给你一次机会,不要给脸不要脸
儿砸,输入一个你想转换的整数吧:


我已经知道问题出在input输入默认为str,但不知道怎么修改使得它正确运行,向各位大神求助

昨非 发表于 2020-10-15 11:54:52

answer = input('叫声爹就帮你转换进制:')
temp = answer
if temp == "爹":
    print("诶,真乖")
    while 1:
      num = input("儿砸,输入一个你想转换的整数吧:")
      
      if num.isdigit():#判断输入是全部数字组成
            int_num = int(num) #这里str没必要 ,而且前面转换成int后,后面代码里都要用整型才能运行
            # x = '%x' % num   输出格式是在print函数里的
            # o = '%o' % num
            t = bin(int_num)
            print('十进制 -> 十六进制 : %d -> 0x%x' % (int_num, int_num))
            print('十进制 -> 八进制 : %d -> 0o%o' % (int_num, int_num))
            print('十进制 -> 二进制 : %d -> ' % int_num, t)
      elif num == "Q":
            break
      else:
            print("sb,你输入的什么玩意\n"
                  "再给你一次机会,不要给脸不要脸")
else:
    print("SB,不肯叫我会帮你?")

昨非 发表于 2020-10-15 11:55:37

必要的修改都改了,满意的话还请设个最佳

认真学好py 发表于 2020-10-15 15:18:15

.

15070159117 发表于 2020-10-16 11:32:52

谢谢上面那个老哥
页: [1]
查看完整版本: 求助,课后作业进制转换。