Python数据结构栈实现进制转换简单示例

 更新时间:2023年02月03日 11:59:57   作者:西召  
众所周知计算机的内存都是以二进制的形式进行数据存储,下面这篇文章主要给大家介绍了关于Python数据结构栈实现进制转换的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

栈是一种后进先出(LIFO)的数据结构,在实际生活和工作中也很常见。

比如,在餐厅里的一摞盘子,总是从上面先取,也就是最后放到上面的先被取走。再比如,浏览网页的时候,通过浏览器的回退按钮访问之前浏览过的网页,也是最后访问的先被获取到。这些存储结构,都可以称之为栈。

下面是通过Python的数组实现的栈结构源码:

# 数据结构:通过Python数组实现栈
class Stack:
    def __init__(self):
        self.items = []

    # 检查栈是否为空。它不需要参数,且会返回一个布尔值。
    def is_empty(self):
        return self.items == []

    # 将一个元素添加到栈的顶端。它需要一个参数item,且无返回值。
    def push(self, item):
        self.items.append(item)

    # 将栈顶端的元素移除。它不需要参数,但会返回顶端的元素,并且修改栈的内容。
    def pop(self):
        return self.items.pop()

    # 返回栈顶端的元素,但是并不移除该元素。它不需要参数,也不会修改栈的内容。
    def peek(self):
        return self.items[len(self.items) - 1]

    # 返回栈中元素的数目。它不需要参数,且会返回一个整数。
    def size(self):
        return len(self.items)

我们可以通过栈结构,来做数字进制的转换。

我们通常生活中使用的是十进制,而在计算机世界,二进制才是通用的语言。

通过取余的方式,我们可以实现从十进制到二进制的转换,十进制转八进制也是同理。

下面是实现的源码:

import my_stack

# 十进制转二进制
def divide_by_2(number):
    stack = my_stack.Stack()

    while number > 0:
        temp = number % 2
        stack.push(temp)
        number = number // 2

    binStr = ''
    while not stack.is_empty():
        binStr = binStr + str(stack.pop())

    return binStr

# 十进制:5 转为二进制是:101
print(divide_by_2(5))

总结

到此这篇关于Python数据结构栈实现进制转换的文章就介绍到这了,更多相关Python数据结构栈进制转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python如何获取tensor()数据类型中的值

    python如何获取tensor()数据类型中的值

    这篇文章主要介绍了python如何获取tensor()数据类型中的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 解决Keras 与 Tensorflow 版本之间的兼容性问题

    解决Keras 与 Tensorflow 版本之间的兼容性问题

    今天小编就为大家分享一篇解决Keras 与 Tensorflow 版本之间的兼容性问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • PO模式在selenium自动化测试框架的优势

    PO模式在selenium自动化测试框架的优势

    大家都知道po模式可以提高代码的可读性和减少了代码的重复,但是相对的缺点还有,今天通过本文一起学习下PO模式在selenium自动化测试框架的优势,需要的朋友可以参考下
    2022-03-03
  • vim自动补全插件YouCompleteMe(YCM)安装过程解析

    vim自动补全插件YouCompleteMe(YCM)安装过程解析

    这篇文章主要介绍了vim自动补全插件YouCompleteMe(YCM)安装过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • python实现图书借阅系统

    python实现图书借阅系统

    这篇文章主要为大家详细介绍了python实现图书借阅系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • Python基于TensorFlow接口实现深度学习神经网络回归

    Python基于TensorFlow接口实现深度学习神经网络回归

    这篇文章主要为大家详细介绍了如何基于Python语言中TensorFlow的tf.estimator接口,实现深度学习神经网络回归的具体方法,感兴趣的可以了解一下
    2023-02-02
  • 详解从Django Allauth中进行登录改造小结

    详解从Django Allauth中进行登录改造小结

    这篇文章主要介绍了从 Django Allauth 中进行登录改造小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • python 详解如何写flask文件下载接口

    python 详解如何写flask文件下载接口

    Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。Flask也被称为 "microframework" ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具
    2021-10-10
  • Python数据处理Filter函数高级用法示例

    Python数据处理Filter函数高级用法示例

    本文将详细介绍filter函数的使用方法,并提供丰富的示例代码,帮助你深入理解如何利用它来处理数据,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 分享一下如何编写高效且优雅的 Python 代码

    分享一下如何编写高效且优雅的 Python 代码

    这篇文章主要介绍了分享一下如何编写高效且优雅的 Python 代码,需要的朋友可以参考下
    2017-09-09

最新评论