鱼C论坛

 找回密码
 立即注册
查看: 2930|回复: 7

[已解决]个人感觉Python Shell 运行程序特别慢,请了解其原理的,简单解释一下

[复制链接]
发表于 2018-2-22 23:39:36 | 显示全部楼层 |阅读模式

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

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

x
各位好,我是Python萌新,在学习python的时候,涉及的运算都很简单。但我就感觉很慢,因为我觉逻辑关系非常简单的东西,计算机通过枚举应该非常快,但每一行的运行结果都是很慢。

我提供一段代码举例:
  1. i = 1
  2. print('Start calculating...')

  3. while i:
  4.     if i % 2 == 1 and i % 3 == 2 and i % 5 == 4 and i % 6 == 5 and i % 7 == 0:
  5.         print('The answer is: ',i)
  6.         i = 0
  7.     else:
  8.         i += 1
  9. print('Calculating finished.')
复制代码


运行结果如下:
  1. Start calculating...
  2. The answer is:  119
  3. Calculating finished.
  4. >>>
复制代码


中间运行的结果,我可以理解,枚举119次,每次还需要对其进行判断。作为开始和结束的两行文字,通过print() 来实现,也非常的慢,感觉都要半秒多才会显示,是每一行结果都有一个固定的刷新频率吗?不然我没办发想象大型的程序运行时会有多慢。

最后的最后,如果确实有刷新频率,请问如何修改,因为一些教学用小程序,如果我希望有几千行结果,那等的实在是太慢了。
最佳答案
2018-2-23 12:21:44
  1. import datetime
  2. t1=datetime.datetime.now()
  3. i = 1
  4. print('Start calculating...')

  5. while i:
  6.     if i % 2 == 1 and i % 3 == 2 and i % 5 == 4 and i % 6 == 5 and i % 7 == 0:
  7.         print('The answer is: ',i)
  8.         i = 0
  9.     else:
  10.         i += 1
  11. print('Calculating finished.')
  12. print(datetime.datetime.now()-t1)
复制代码


结果:

Start calculating...
The answer is:  119
Calculating finished.
0:00:00.001000
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-22 23:44:05 | 显示全部楼层
不知你的计算机配置,我试着运行了,瞬间就出了结果。
我的笔记本:i5-4200m,8G ram,win10 64位,配置应该不算太高。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-22 23:54:13 | 显示全部楼层
冬雪雪冬 发表于 2018-2-22 23:44
不知你的计算机配置,我试着运行了,瞬间就出了结果。
我的笔记本:i5-4200m,8G ram,win10 64位,配置应该 ...

我是顶配的Mac mini,用了才不到年,绝对不是电脑问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-22 23:57:06 | 显示全部楼层
冬雪雪冬 发表于 2018-2-22 23:44
不知你的计算机配置,我试着运行了,瞬间就出了结果。
我的笔记本:i5-4200m,8G ram,win10 64位,配置应该 ...

诶~我又运行了一下,好想也挺快的。刚才不觉得啊,你会有觉得有些加减乘除的运算,有时候很慢吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-23 09:11:17 | 显示全部楼层
有些顶配的电脑玩游戏说不定也很卡,电脑的问题有很多种不一定结束配置有可能是系统原因,我玩游戏就被win10坑过好几次了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-23 12:09:28 | 显示全部楼层
半秒多就不算慢啦,你可以理解为有时候 “启动” 需要一些时间。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-23 12:21:44 | 显示全部楼层    本楼为最佳答案   
  1. import datetime
  2. t1=datetime.datetime.now()
  3. i = 1
  4. print('Start calculating...')

  5. while i:
  6.     if i % 2 == 1 and i % 3 == 2 and i % 5 == 4 and i % 6 == 5 and i % 7 == 0:
  7.         print('The answer is: ',i)
  8.         i = 0
  9.     else:
  10.         i += 1
  11. print('Calculating finished.')
  12. print(datetime.datetime.now()-t1)
复制代码


结果:

Start calculating...
The answer is:  119
Calculating finished.
0:00:00.001000
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-23 14:06:02 | 显示全部楼层
LargeCat 发表于 2018-2-23 12:21
结果:

Start calculating...

感谢这位大哥,可能是我开始的时候电脑刚好有点卡顿,造成一点误解。

看到你的代码又学到了新东西。不过你的电脑真是快,我的运行时间为0:00:00.145536
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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