设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

集中答疑专用贴

  [复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

61#
发表于 2016-12-27 10:03:32 |显示全部楼层
stugpanzer 发表于 2016-12-26 16:44
问题已解决,多谢

测试了一下,运行450万行的数据,运行时间大致在2.5秒左右,是否已经达到了纯Python语 ...

关于性能方面我了解得也不多,没法给你很好的建议。

python的多线程,如果不是对于io或网络等待的情况,仅仅是计算来说,有可能并不能提升效率。在多核上cpu上用多进程更好些。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

62#
发表于 2016-12-28 16:00:44 |显示全部楼层
stugpanzer 发表于 2016-12-28 00:22
谢谢指引

今天看了一下多进程的知识,发现倒不是想象中的那么复杂,但敲出来的代码运行不了

我试了下你的代码是可以运行的,正常输出:

say hi 0
say hi 1
say hi 2
say hi 3
say hi 4
say hi 5
say hi 6
say hi 7
say hi 8
say hi 9

换个运行环境试试看,可能你用的编辑器输出不支持多进程使用。直接在命令行下 python xxx.py 运行
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

63#
发表于 2016-12-29 23:09:47 |显示全部楼层
stugpanzer 发表于 2016-12-28 20:29
我的编辑器就是系统自带的IDLE,不可能存在不支持的问题吧

虽然无反应,但输入foo(2)函数表达式,运行出 ...

直接从控制台里运行 python xxx.py 看看有没有输出
这不是支不支持,是对于输出流的不同实现

ubuntu那个问题不清楚
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

64#
发表于 2016-12-31 00:17:15 |显示全部楼层
stugpanzer 发表于 2016-12-30 07:37
控制台运行提示syntax error,和这个有关系吗?

话说回来如何设置才能支持多进程输出流? ...

idle就是不支持吧,我试了下也不行。

syntax error ,你查查是不是又动了代码。你原来的代码没问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

65#
发表于 2017-1-6 20:46:30 |显示全部楼层
stugpanzer 发表于 2017-1-6 10:53
class Person:
         def _init_(self,name):
                  self.name=name

_name就是_name,不代表什么,跟你叫abc一样,一个独立的名字。和name毫无关系。

不加括号就只是函数本身,并不调用函数,就好比你在代码写了一个 'hello',既没有赋值,也没输出,不会报错。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

66#
发表于 2017-1-7 11:49:37 |显示全部楼层
stugpanzer 发表于 2017-1-6 22:56
我的意思是,_name的意义如果和name相同,那么用self.name时,应该和self._name运行出同样的结果,但实验 ...

用_name没有问题,效果和name是一样。
你前面没输出是因为sayhello没有被调用
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

67#
发表于 2017-1-10 23:30:39 |显示全部楼层
stugpanzer 发表于 2017-1-10 17:22
这两天同时在看,里面有一处地方很不解,按理说++i的操作是返回i本身,不像i++返回的是一个变量temp,i++ ...

c和c++对于自增运算符的实现是不一样。
http://lib.csdn.net/article/c/25445
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

68#
发表于 2017-1-16 15:45:05 |显示全部楼层
stugpanzer 发表于 2017-1-16 01:41
3.os.system(cmd) 是在for和while循环缩进外执行的,也就是说等于只执行了一次,是排版的错误还是作者有意 ...

我觉得他这里
        cmd = 'attrib'+' '+lis[time]+' '+'-s -h'    #初始化cmd的恢复命令

是有问题的。cmd每次循环都会被重新赋值,没懂他到底想干嘛。

大概这行代码不应该缩进。那么也就解释了第二个问题,他这里time是0,所以作为第一条命令。后面再从1开始往后循环
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

69#
发表于 2017-2-7 23:10:43 |显示全部楼层
yzgdr 发表于 2017-2-5 21:58
请问为什么我安装不了呀

换个版本试试吧,新的 2.7.13
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

70#
发表于 2017-2-19 12:28:58 |显示全部楼层
梦萱 发表于 2017-2-18 19:57
刚才在看微信上计算“圆周率”的编程题,有个地方不明白:
1、pos = random.random() * 100000
        angle = ra ...

random是0~1的随机数
*100000 就是 0~100000
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-13 00:59 , Processed in 0.021869 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部