鱼C论坛

 找回密码
 立即注册
查看: 2743|回复: 6

测试冒泡算法-print用法求解答

[复制链接]
发表于 2017-8-25 17:28:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
python有list.sort()可以进行数据的排列,但今天测试了一下python编写的冒泡算法,发现了一个奇怪的现象:

如果写成一个py文件的话,
array = [1, 2, 5, 3, 6, 8, 4]
for i in range(len(array) - 1, 0, -1):
    for j in range(0, i):
        if array[j] > array[j + 1]:
            array[j], array[j + 1] = array[j + 1], array[j]
print(array)

运行的结果为:[1, 2, 3, 4, 5, 6, 8]


但是如果在shell里面写的话会出现print的错误,在shell中print显示红色:
>>> array = [1, 2, 5, 3, 6, 8, 4]
>>> for i in range(len(array) - 1, 0, -1):
    for j in range(0, i):
        if array[j] > array[j + 1]:
            array[j], array[j + 1] = array[j + 1], array[j]
print(array)
SyntaxError: invalid syntax


有人可以帮忙解答一下么,为什么在shell里面直接输入会出现print这个的报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-8-25 17:44:26 | 显示全部楼层
不是的,你觉得在交互模式中放这么一堆代码合适吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-25 17:44:50 | 显示全部楼层
你再看看,交互模式中的for循环对吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-25 17:45:15 | 显示全部楼层
交互模式适合简单的代码
这么长的代码要新建
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-25 18:52:58 | 显示全部楼层
2017-08-25_185042.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-25 19:19:36 | 显示全部楼层
QQ截图20170825190957.png

正确操作是这样的, 我猜你是下面这样导致错误的

QQ截图20170825191613.png

原因嘛...虽然你确实把tab退掉, 使得和最外层的for循环对齐了...但可能idle一次只能写一个类似体的东西??呃, 就是说 这句 print是与最外层for循环是平行的,不被包含在内的, 应该用换行至 >>>这个出现

然后呢, 大段代码建议写在文本里面,再去运行

同时 python 返回的错误信息是错误缩进, 应该根据python编译器返回的错误信息去判断自己错误的地方
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-25 22:02:42 | 显示全部楼层
谢谢大家的发言提示,我想知道这个交互模式对循环体中的print有什么规定么,
或许以后就默认写的比较长,尤其是有缩进的时候,最好写成py文件的格式。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-23 11:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表