pythoncrystalmaker 2.7.77 执行这段代码总是卡住 不报错也不退出 求大神解答 别人的电脑上都是可以正常运行的

PPV课大数据今天带来的是PYTHON,这是一篇非常有意思的文章。希望对大家有帮助。导语:或许是网上嘈嘈杂杂的关于大数据、互联网的新形势争论,或许是招聘网站上越来越多的技能需求,让我在某一天突然想学点Python,是的需要学点Python了,虽然我现在不知道它能干什么。【第一天】谁来给我讲讲Python?我是一名数据分析师,曾在漫长的岁月中使用SAS、Matlab和R(使用频率依次递减)。其他如SPSS、STATA、Eviews也都是必备的基本技能。或许是网上嘈嘈杂杂的关于大数据、互联网的新形势争论,或许是招聘网站上越来越多的技能需求,让我在某一天突然想学点Python,是的需要学点Python了,虽然我现在不知道它能干什么。“谁来给我讲讲Python?”作为无基础的初学者,只想先大概了解一下Python,随便编个小程序,并能看懂一般的程序,那些什么JAVA啊、C啊、继承啊、异常啊通通不懂,于是我找了很多资料,并过滤掉了对我这个阶段而言的无用信息,写成下面这篇日记,以完全初学者的角度入手,里面有我学习过程中提出的一些疑问,和我找到答案,简单、清晰。今天的学习大纲如下:一、为什么学Python?二、安装与熟悉1、安装2、熟悉三、容器1、什么是容器2、序列的一些通用操作3、列表操作4、字符串操作5、字典操作日记小结一、为什么学Python?在搜索Python相关用处的时候,看到一些帖子讨论,坚定了我学习Python的决定:知乎网友张博:“楼主不知道知乎就是用Python做支撑的么?”知乎网友吴畅:“Python会提高程序员的审美标准。”外刊IT评论:“跟C/C++/Java相比 — Python/Ruby能让你用少的多的多的代码写出相同的程序。”人大经济论坛网友“zxn2011”:“在纽约做了一年多的数据的dataanalyst,基本上已经抛弃MATLAB,95%的工作都是用python和R和sas完成。”“你学matlab不是也要学编程吗?既然都是编程,为什么不学一个彻底的编程语言呢。而且今后和CTP等交易平台对接的话,matlab就无能为力了,到时候再学python岂不是晚了。”(注:据笔者后来了解,matlab似乎也是可以与CTP平台对接的。)Bruce Eckel:Life is short, you need Python. 人生苦短,我用Python。…...还有很多,不管怎样,作为一名偏向经济、金融的统计分析人员,想与杀入自己领域的IT码农们争一方天下,Python是个捷径。因此,今天,我开始学习Python!二、安装与熟悉1. 安装去这里下载Python并安装https://www.python.org/download/,我装了2.7.7,并去这里下载一些扩展模块http://www.lfd.uci.edu/~gohlke/pythonlibs,各种模块,无论是32位还是64位,应有尽有。这里先下载Numpy,对应我电脑32位的,版本2.7的,如果不知道自己电脑室32位还是64位,那就都下下来,到时候哪个安装成功,就说明适合那个。下载安装之后,打开pythonshell,在这个界面就可以使用python了。2. 熟悉在正式介绍python之前,了解下面两个基本操作对后面的学习是有好处的:(1)基本的输入输出可以在Python中使用+、-、*、/直接进行四则运算。————————————&&&1+3*310————————————也可以用print语句来显示————————————&&&print1+3*310————————————输入字符,可以用双引号或者单引号:————————————&&&print&hello&hello&&&print'hello'hello————————————在字符串的输入中,为了便于阅读,想要换行再输,可以使用反斜线:————————————&&&print &abc\ABC&abcABC————————————这个时候我有了一个疑问:“如果不是为了易读,这个字符串本身就是要换行该怎么办?”答案是使用三个双引号把内容给括住:————————————&&&print &&&abcABC&&&abcABC————————————(2)导入模块使用import可以导入模块,导入之后,就可以使用这个模块下面的函数了。比如导入math模块,然后使用math模块下面的sqrt函数:————————————&&&importmath&&&math.sqrt(9)3.0————————————这时我有疑问了:“每次引用函数的时候,math这个模块前缀都要带吗?可不可以不带?”直接输入sqrt(9)是会报错的,好烦人,那么有什么办法可以不用每次都带前缀?办法是有的,用“from 模块 import 函数”的格式先把函数给“拿”出来。————————————&&&from math import sqrt&&&sqrt(9)3.0————————————这样每次使用sqrt函数的时候就不用再加math前缀了。当我正准备跳过的时候,又有了一个问题?“math模块下面有那么多函数,可不可以写一个语句,然后math下面所有函数都可以直接使用?”调用了math下面的sqrt函数,写一个from…import…,再调用下面的floor,还要写一个,如此也挺麻烦的,有个办法可以一下把所有函数都给“拿”出来:——————————————&&&from math import *&&&sqrt(9)3&&&floor(32.9)32.0——————————————当然,后来我了解到,应该尽量避免使用from…import…而使用import语句⊙﹏⊙,因为这样可以更加易读,也可以避免冲突。三、容器1、什么是容器开始学Python时,被它的数据结构,什么字典、序列、元组等等搞的很混乱,估计有跟我一样的初学者,所以我梳理了一下留存:首先要从容器说起,Python中有一种名为容器的数据结构,顾名思义,容器,就是装数据的器具,它主要包括序列和词典,其中序列又主要包括列表、元组、字符串等(见下面那张图)。列表的基本形式比如:[1,3,6,10]或者[‘yes’,’no’,’OK’]元组的基本形式比如:(1,3,6,10)或者(‘yes’,’no’,’OK’)字符串的基本形式比如:’hello’以上几种属于序列,序列中的每一个元素都被分配一个序号——即元素的位置,也称为“索引”,第一个索引,即第一个元素的位置是0,第二个是1,依次类推。列表和元组的区别主要在于,列表可以修改,而元组不能(注意列表用中括号而元组用括号)。序列的这个特点,使得我们可以利用索引来访问序列中的某个或某几个元素,比如:——————————————&&&a=[1,3,6,10]&&&a[2]6&&&b=(1,3,6,10)&&&b[2]6&&&c=’hello’&&&c[0:3]‘hel’——————————————而与序列对应的“字典”则不一样,它是一个无序的容器,它的基本形式比如:d={7:'seven',8:'eight',9:'nine'}这是一个“键—值”映射的结构,因此字典不能通过索引来访问其中的元素,而要根据键来访问其中的元素:——————————————&&&d={7:'seven',8:'eight',9:'nine'}&&&d[8]'eight'——————————————2、序列的一些通用操作除了上面说到的索引,列表、元组、字符串等这些序列还有一些共同的操作。(1)索引(补充上面)序列的最后一个元素的索引,也可以是-1,倒数第二个也可以用-2,依次类推:——————————————&&&a=[1,3,6,10]&&&a[3]10&&&a[-1]10——————————————(2)分片使用分片操作来访问一定范围内的元素,它的格式为:a[开始索引:结束索引:步长]那么访问的是,从开始索引号的那个元素,到结束索引号-1的那个元素,每间隔步长个元素访问一次,步长可以忽略,默认步长为1。——————————————&&&c=’hello’&&&c[0:3]‘hel’&&&c[0:4:2]‘hl’——————————————这个就好像把一个序列给分成几片几片的,所以叫做“分片”(3)序列相加即两种序列合并在一起,——————————————&&&[1,2,3]+[4,5,6][1,2,3,4,5,6]&&&‘hello,’+’world!’‘hello,world!’——————————————两种相同类型的序列才能相加(4)乘法即序列可以被重复n次——————————————&&&’hello’*5‘hellohellohellohellohello’——————————————(5)成员资格为了检查一个值是否在序列中,可以用in运算符——————————————&&& 'o' in aTrue&&& 't' in aFalse——————————————下面可以用这张表回忆一下几个操作分别是干嘛的:3、列表操作以上是序列共有的一些操作,列表也有一些自己独有的操作,这是其他序列所没有的(1)List函数可以通过list(序列)函数把一个序列转换成一个列表:——————————————&&& list(‘hello’)[‘h’,’e’,’l’,’l’,’o’]——————————————(2)元素赋值、删除元素删除——del a[索引号]元素赋值——a[索引号]=值——————————————&&& a'hello'&&& b=list(a)&&& b['h', 'e', 'l', 'l', 'o']&&& del b[2]&&& b['h', 'e', 'l', 'o']&&& b[2]='t'&&& b['h', 'e', 't', 'o']——————————————分片赋值——a[开始索引号:结束索引号]=list(值)为列表的某一范围内的元素赋值,即在开始索引号到结束索引号-1的区间几个元素赋值,比如,利用上面语句,如何把hello变成heyyo?——————————————&&& b['h', 'e', 'l', 'l', 'o']&&& b[2:4]=list('yy')&&& b['h', 'e', 'y', 'y', 'o']——————————————注意虽然“ll”处于“hello”这个单词的第2、3号索引的位置,但赋值时是用b[2:4]而不是b[2:3],另外注意list()用小括号。(3)列表方法上面说过list函数,函数这个东西在很多语言中都有,比如excel里面的if函数、vlookup函数,SQL里面的count函数,以及各种语言中都有的sqrt函数等等,python中也有很多函数。Python中的方法,是一个“与某些对象有紧密联系的”函数,所以列表方法,就是属于列表的函数,它可以对列表实现一些比较深入的操作,方法这样调用:对象.方法(参数)那么列表方法的调用就理所当然是:列表.方法(参数)常用的列表方法这么几个,以a=['h','e','l','l','o']为例:4、字符串操作(1)字符串转换字符串转换,主要指是转换字符串的宽度(占多少位)、精度、类型。以前我觉得字符串有什么需要转换的,输入要输入的就好了,其实不然,比如e这个常数,有时候我需要显示具体的数字,有时候保留两位显示,有时候保留5位显示,有时候甚至10位,不可能每次去查,用字符串转换一下就行,一般用如下格式转换:'%宽度.精度类型'% 要转换的值比如,现在用这个语句把e分别保留2位、5位、10位小数显示:——————————————&&& '%10.2f'%e' 2.72'&&& '%10.5f'%e' 2.71828'&&& '%10.10f'%e'2.'——————————————以上的三个例子,都是指定宽度为10,因此不够的空格填补,如果不想有空格怎么办?不想留空格,直接不填宽度,宽度之前加0,表示前面的空格将用0填充;宽度之前加减号-,表示左对齐:——————————————&&& '%.2f'%e'2.72'&&& '%010.2f'%e''&&& '%-10.2f'%e'2.72 '——————————————(2)字符串方法字符串也有自己的方法,以b='hello'为例:<p style="margin-top: 0 m 
 文章为作者独立观点,不代表微头条立场
的最新文章
点击上方“蓝色字”可关注我们!【编者按】针对Quora上的一个老问题:不同分类算法的优势是什么?Netfli点击上方“蓝色字”可关注我们!大数据变革在数据本身━━━━━━━━━━━━━━━━大数据公司最大的痛苦是什点击上方“蓝色字”可关注我们!  据悉,自2001年起,中国每年的新生儿都在1600万人左右,这些孩子中的【CDA第十一期】深圳6月数据分析师培训时间安排@时间-深圳: 日-6月21日/@深圳(三个点击上方“蓝色字”可关注我们!背景随着美团交易规模的逐步增大,积累下来的业务数据和交易数据越来越多,这些数据点击上方“蓝色字”可关注我们!写研究报告,是分析师的本职工作,投资者与分析师接触,通常都从小小一个PDF文件点击上方“蓝色字”可关注我们!今年数据泄露事故每条记录的成本达到154美元。根据IBM和Ponemon研究所点击上方“蓝色字”可关注我们!这两年电视剧行业可谓是迎来了“大年”,每年各种大剧、超级大剧接连出现,而且一年点击上方“蓝色字”可关注我们!奥美中国与易观国际日前联合发布了调研报告《新手相之捕获女车主》,从208万女性点击上方“蓝色字”可关注我们!2015年2月,华扬数字营销研究院(HDMR)发布《以思创行 –2015中国数点击上方“蓝色字”可关注我们!根据国际数据公司(IDC)的估算,到2015年,全球的数据增长率将会是2012点击上方“蓝色字”可关注我们!CDA数据分析师解析《2015中国大数据交易白皮书》 5月26日,2015贵阳点击上方“蓝色字”可关注我们!
2015年第三届中国大数据产业峰会,以“当数据常客邂逅互联网+”为主题在深【CDA第十一期】深圳6月数据分析师培训时间安排@时间-深圳: 日-6月21日/@深圳(三个点击上方“蓝色字”可关注我们!我今天早上来之前在网上查了一下,看到很多线下小店说在打折,在关店,都说了一个事点击上方“蓝色字”可关注我们!2015年4月,全国首家大数据交易所落户贵阳。贵阳大数据交易所的注册资本金为5点击上方“蓝色字”可关注我们!马云、马化腾、雷军、周鸿祎,还有那个进来越来越活跃的郭台铭,跟着国务院副总理马点击上方“蓝色字”可关注我们!并非所有的分析方法作用都相同。和大多数软件解决方案一样,你会发现分析方法的能力点击上方“蓝色字”可关注我们!目
录  引言  一、M版方案1  二、I版方案10  三、中国的互联网+点击上方“蓝色字”可关注我们!  优化人员工作时免不了要接触到大数据量的问题,下面就将平时收集的一些关于大数点击上方“蓝色字”可关注我们!近一两年,大数据开始在公安等行业领域得到普及应用,除了行业自身的特殊要求外,大点击上方“蓝色字”可关注我们!几天前,我发表了一篇文章——深度分析苹果公司的iTunes免费app热门排行榜点击上方“蓝色字”可关注我们!分析篇先给大家看一些分析结果吧。大家几点睡觉呢? 我们来统计一下 sleep 点击上方“蓝色字”可关注我们!在这个世界上你最亲密的伙伴是谁?爱人、家人通通都不是,最亲密的伙伴其实是你们的点击上方“蓝色字”可关注我们!  5.20日已成为网民狂欢的“网络情人节“,在这样一个属于年轻人的网络节日里点击上方“蓝色字”可关注我们!4月20日,京东大数据来到了北京大学光华管理学院,这次由京东大数据部平台运营管点击上方“蓝色字”可关注我们!文|傅志华传统的用户研究包括品牌研究、客户满意度研究、商圈研究、市场细分、渠道点击上方“蓝色字”可关注我们!你与数据科学家只缺一个梦想——加入PPV课训练营吧!训练营简介:PPV课训练营点击上方“蓝色字”可关注我们!今天为大家带来的优秀作品赏析,是来自交大的“葫芦娃大战变形金刚”队的“小康的吃点击上方“蓝色字”可关注我们!Hi 朋友们。由于我最近都比较忙,所以已经很长一段时间没有写博客了。在这篇文章点击上方“蓝色字”可关注我们!乐享电商的便利,憧憬智慧城市的美好,期待“互联网+”的无限可能……大数据正在改点击上方“蓝色字”可关注我们!大数据百科PPV课原创译文连载1Do you know Big Data? 关点击上方“蓝色字”可关注我们!PPV课其他精彩文章:1、回复“干货”查看干货 数据分析师完整知识结构2、回复点击上方“蓝色字”可关注我们!.If you see an interesting visualisatio点击上方“蓝色字”可关注我们!你与数据科学家只缺一个梦想——加入PPV课训练营吧!训练营简介:PPV课训练营点击上方“蓝色字”可关注我们!今天看了娱乐圈的片酬排行top10,真的是让人情何以堪啊,人家片酬就是天价,Z点击上方“蓝色字”可关注我们!在大数据特别热门的今天,出现了各种培训课程。但我发现这些课程的重点都放在算法的【CDA第十一期】北上深5-6月数据分析师培训时间安排@时间-北京: 日-6月14日/@北ppvke123“PPV课大数据”是一个大数据学习平台,数据分析、数据挖掘交流和分享的圈子。我们用数据说话,传播正能量,执着探索大数据应用价值!热门文章最新文章Python的总体架构
-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
学习环境:
系统:ubuntu 12.04 STL
python版本:2.7
既然要学习python的源码,首先我们要在电脑上安装python并且下载python的源码,ubuntu 12.04 STL
自带的python版本为2.7.3,这就可以了,接下来下载源码,访问这个网址:
,下载python2.7.7的源代码,下载结束后解压文件,我们会看到如下文件结构:
,接下来介绍一下,
demo文件夹里放的是一些例子;
Doc文件夹里放的是文档,Grammer是语法分析器,include是python所包含的一些头文件,Lib是python的库,都是用 python语言写的,Moduels是用C写的python模块,Parser是分词器。图片是最生动的文字,现在我来附上我所理解的python总体 架构图片:
其中,最左边的python的库,模块以及用户自定义的模块,都依赖于python解释器来实现,而python解释器主要包括扫描器,分词器,编译器和代码生成四部分,我们写一个python文件之后,由python解释器执行,其大致执行过程如下:
1、扫描器扫描python文件,将扫描结果发给分词器;
2、在扫描过程中识别出文件中的对象,类型和结构(注:在python中类型和结构都是对象);
3、分词器将结果发给编译器,编译器在此时生成相应对象同时给对象分配内存空间;
4、编译之后将代码生成,进行内存管理并处理当前状态。
5、对象、类型、结构体、内存管理以及当前状态构成了python极其复杂的runtime运行时。
还有,很多人会有疑问,python是动态语言,内存到底是如何管理的,初来乍到,我也不太明白,由于python的各种历史原因,python的内存处 理和线程管理非常复杂,打开源码看看,如果出现类似object_new这样的东西,那么他的内存就是用C++中的new来开辟的,如果是 object_malloc这样的东西,则表示内存是用C中的malloc来实现的。
python属于脱管型的语言,内存不需要我们手动处理,方便了很多,其实,python在底层是用自动引用计数器来实现的,python中创建小对象 时,往往直接在内存池中创建,而大对象则是使用new/malloc从内存中再创建一个。针对并不复杂的对象关系时,比如只有一个对象时,python是 不会运行链路检测的,而如果对象很多,过系又很复杂,就会有一个链路检测,以防出现循环引用和死循环的问题,当释放内存时,则遵守自动引用计数的规则,非 常了不起。
来自:http://www.androiddev.net/python_sourcecode_study1/
相关资讯  — 
相关文档  — 
发布时间: 09:38:34
同类热门经验
29965次浏览
20461次浏览
14079次浏览
12812次浏览
37229次浏览
10739次浏览
OPEN-OPEN, all rights reserved.redboy860的喜欢 | LOFTER(乐乎) - 带你认识2000万牛逼的人
LOFTER for ipad —— 记录生活,发现同好
redboy860 的喜欢
{list photos as photo}
{if photo_index==0}{break}{/if}
品牌${make||'-'}
型号${model||'-'}
焦距${focalLength||'-'}
光圈${apertureValue||'-'}
快门速度${exposureTime||'-'}
ISO${isoSpeedRatings||'-'}
曝光补偿${exposureBiasValue||'-'}
镜头${lens||'-'}
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post_index < 3}
{if post.type == 1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
{if data.msgRank == 1}{/if}
{if data.askSetting == 1}{/if}
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
this.p={ dwrMethod:'queryLikePosts',fpost:'1d2aa0',userId:,blogListLength:30};}

我要回帖

更多关于 python基础教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信