• python百例 --- ip地址与10进制的转换


    1 - ip地址与10进制数的转换

    • 当我们ping数字2130706433时,从127.0.0.1返回结果。

    • IP地址是个32位的二进制数,表示成点分10进制,只是为了方便,如果把这32为二进制数转换成10进制数,计算机也是认识的。

    • 2130706433(10进制)== 1111111000000000000000000000001(二进制)

    • 为了更好的学习使用Python,那就编写一个将10进制数转成2进制的代码吧。

      • 思路:

        1. 仔细分析,IP地址的四个10进制数,实际上就是256进制

        2. 10进制数除以256,余数就是IP地址右侧的数字,商继续除256即可

          >>> divmod(2130706433,256)
          (8323072, 1)                # 1
          >>> divmod(8323072,256)
          (32512, 0)                    # 0
          >>> divmod(32512,256)
          (127, 0)                    # 0
          >>> divmod(127,256)
          (0, 127)                    # 127
          127.0.0.1
    • 具体代码如下:

      #!/usr/local/bin/python3
      def int2ip(digit):
          result = []
          for i in range(4):
              digit, mod = divmod(digit, 256)
              result.insert(0,mod)
          return '.'.join(map(str,result))
      if __name__ == '__main__':
          print(int2ip(2130706433))
    • 匿名函数和map的使用方法和介绍

      #!/usr/local/bin/python3
      from random import randint
      ​
      def func(x):
          return x * 2 + 1if __name__ == '__main__':
          alist = [randint(1,100) for i in range(10)]
          print(alist)
          # map将第二个参数中的每一项交给func函数进行加工,保留加工后的结果
          result = map(func, alist)   # 使用一个常规函数最为参数
          result2 = map(lambda x: x * 2 + 1, alist)   # 使用匿名函数作为参数
          print(list(result))
          print(list(result2)) 
  • 相关阅读:
    网页解析Jsoup简单使用
    ios开发中加载的image无法显示
    数据懒加载
    ijkplayer
    ijkplayer的一些优化
    Ambiguous expansion of macro weakify和Ambiguous expansion of macro strongify的警告
    xcode11新项目删除main.storyboard 两种方法
    iOS
    iOS
    iOS 12中获取WiFi的SSID
  • 原文地址:https://www.cnblogs.com/liangbc/p/12681154.html
Copyright © 2020-2023  润新知