Python冒泡排序实战:数字重组求和示例与错误排查

小林子
小林子
发布时间:2026-10-13| 2人浏览过
原创

本文通过Python代码演示如何利用冒泡排序将输入的两个数字按位重组为最小值后相加。文章详细解析了Python 3中input返回字符串类型导致的迭代错误,并提供了修正后的代码方案。同时附带在线排序算法演示工具链接及Python学习资源推荐,帮助开发者理解排序逻辑与类型处理。

本文通过具体实例展示如何使用Python实现冒泡排序,供读者参考学习。

冒泡排序的核心逻辑在于元素交换,即在满足特定条件时将变量i和j的值进行互换。

if i>j:
 p = i
 i = j
 j = p

以下通过一个具体案例进行说明。

案例目标:随机输入两个数字,对每个数字的各位进行排序使其变为最小排列,然后计算这两个最小数的和。

假设输入的第一个数字为51423,第二个数字为88613。

排序重组后,第一个数字变为12345,第二个数字变为13688,最终计算结果为12345+13688的和。

在Python 3环境下的实现代码如下。

# coding:utf-8
a = str(input('请输入第一个数:'))
b = str(input('请输入第二个数:'))
arr_a = []
arr_b = []
for i in a:
 if i in a:
  arr_a.append(i)
for j in b:
 if j in b:
  arr_b.append(j)
##冒泡排序a
for m in range(0,len(arr_a)):
 for m in range(0, len(arr_a)):
  if m+1<len(arr_a):
   if arr_a[m]>arr_a[m + 1]:
    empty = arr_a[m]
    arr_a[m] = arr_a[m + 1]
    arr_a[m + 1] = empty
##冒泡排序b
for n in range(0,len(arr_b)):
 for n in range(0, len(arr_b)):
  if n+1<len(arr_b):
   if arr_b[n]>arr_b[n + 1]:
    empty = arr_b[n]
    arr_b[n] = arr_b[n + 1]
    arr_b[n + 1] = empty
##输出第一个数
x = 0
for num_a in range(0,len(arr_a)):
 x = int(arr_a[num_a])*(10**(len(arr_a)-num_a-1))+x
##输出第二个数
y = 0
for num_b in range(0,len(arr_b)):
 y = int(arr_b[num_b])*(10**(len(arr_b)-num_b-1))+y
print("本站测试结果:")
print(str(x) + '+' + str(y) + '=',x+y)

程序运行输出结果如下。

补充说明:原文中使用的初始代码存在类型问题。

a = input('请输入第一个数:')
b = input('请输入第二个数:')

运行原代码时会出现报错:TypeError: 'int' object is not iterable,这表明数据类型不匹配。因此,需要将输入处理改为字符串类型,修正后的代码如下。

a = str(input('请输入第一个数:'))
b = str(input('请输入第二个数:'))

此外,推荐一款排序算法演示工具供参考。

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具: http://tools.jb51.net/aideddesign/paixu_ys

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述的代码示例对大家掌握Python程序设计有所帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。