spyder对应python版本_新手入门指南 | 霈烟学长的Python入门经验分享回顾

本文是霈烟学长的Python入门分享,详细介绍了Python语言的优势,如简单易学、开源免费、丰富的库支持等,并简述了计算机语言的发展历史。此外,还讲解了Python在经济学科的应用,特别是量化投资中的作用。接着,文章介绍了Python的安装,重点阐述了Anaconda、Python解释器、集成开发环境Anaconda Prompt、IPython以及Spyder的使用。最后,概述了Python的基本语法、编程规范和面向对象编程思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面的话:

我是霈烟学长,就读于浙江某大学金融专业。承蒙金融计量学社公众号运营人言音学姐的邀请,也为了表达对言音学姐专业课笔记分享帮助到同学的感动与肯定,霈烟学长决定根据他的Python学习经验,为大家做一场Python的入门分享。

《金刚经》云:“若菩萨不住相布施,其福德不可思量”。

社会上很多人希望为了给自己的履历增色而做公益,那样的公益不见得就是真公益。相反地,在合理合法的范围内分享知识与技术,真诚恳切地希望别人的处境变得更好,才是我们向往的真公益。

我只是一个普通大学的在读学生,所分享的内容在专业性方面肯定比不过专业的程序员。只愿意用自己所学所长,为需要的朋友们在学习Python入门的路上尽一份绵薄之力。

公益分享嘉宾介绍

7234007e8f75a016ffaf85808183cbb6.png

霈烟学长

没有什么很厉害的履历

只是和你一样普通的

大二金融专业学生

有c语言及Python方面学习经历

完成过量化投资课程学习

abb3b818394c50df28d48d96a9082cac.png

以下是讲座内容整理

全文字数:5641;阅读时间:17 分钟

Python语言介绍

 (一)

Python简介及主要优势

Python诞生于1991年,由阿姆斯特丹国家数学和计算机科学研究所的研究员Rossum开发的一种高级脚本编程语言

Python的原意为大蟒蛇,其前身是ABC(All BASIC CODE)。ABC是一种教学语言,为非专业程序人员编写,但最终这种语言没有成功。Python从其中汲取了很多语法,改正了很多错误。

Python是一门跨平台、开源、免费的解释性高级动态强类型脚本语言。从91年面世以来,现已成为最受欢迎的语言之一。为什么Python能够脱颖而出,他的优势就在他的定义上。

1

简单、脚本语言

Python是很能代表简单主义思想的一门语言,入门后你会发现阅读代码仿佛在做阅读理解,语义简单明了,没有编程语言复杂、严谨的语法和规则,很容易上手。

2

免费、开源

Python的安装和使用均不需收费,他是全球计算机工作者共同的努力成果,而且其源代码免费开放,可用于其他项目,我们所知道的Linux、R语言、Android、Firefox等均有Python的贡献。

3

跨平台、解释型

可以在不同操作系统和硬件架构的电脑上运行。Python是脚本语言,通过解释器执行,虽然效率比C++低,但跨平台性好。

而且具有可扩展性,你甚至可以使用C或者C++完成部分代码编写,再用Python程序进行调用。

4

高级、动态、强类型

相对于汇编语言等低级语言,用户可以不关注底层实现细节。许多底层细节已经被打包成模块使用。动态是指变量运行时可以被改变类型,C语言的变量类型则相对死板,需要事先声明且改变困难。强类型是指不允许同类型相加。

5

丰富无比的库

库正是Python受到欢迎的重要因素,许多程序编写完成后可以被打包成库。

而经过这么多年的发展,已经有了一个庞大的标准库,可以帮助你处理各种工作,网页、数据库、量化、统计、图形设计等均有相应的库。即使你的编写水平没有达到很高水准,使用这些库也可以帮助你达到目的。

6

总结一下

Python优势在于:

简单易学;

开源且免费;

支持命令式和函数式编程;

可以与多种不同语言编无缝拼接;

完全支持面向对象程序设计,语法简洁清晰;

拥有大量的几乎支持所有领域应用开发的成熟扩展库;

59baf32fa699a57ce421abaedc19ca40.png

(二)

简单介绍计算机语言发展历史

  • 从1951年至今,人类一共发明了200多种编程语言,每一种语言的出现都带有某些新特征。

  • 1957年约翰·巴科斯创建了是全世界第一套高阶语言:FORTRAN。

  • 1972年丹尼斯·里奇在贝尔实验室的工作时间里感到无聊,决定制作带有花括号的C,并最终取得了巨大的成功。

  • 1983年比雅尼·斯特劳斯特鲁普发明了C++。

  • 1991年吉多·范罗苏姆因为不喜欢使用大括号,所以发明了Python。

  • 1995年布兰登·艾克在周末的时候设计了JavaScript。

  • 1996年詹姆斯·高斯林发明了Java,这是第一个真正的面向对象的编程语言。

59baf32fa699a57ce421abaedc19ca40.png

 (三)

Python在经济学科的应用实践举例

量化投资

量化投资是借助数学理论和计算机技术实现的,以数据为基础,以策略模型为核心,以程序化交易为手段,以获取稳定收益为目的的投资方法。

西蒙斯的神话

西蒙斯是世界级数学家,提出了陈氏-西蒙斯定理,是一名伟大的对冲基金经理。文艺复兴科技大奖章基金。1989-2013年年化平均收益率35%,2008年回报率80%。

量化投资的基础就在于计算机模型的构建。Python可以实现大量模型的构建,Python也已经在金融量化投资领域占据了重要位置,各个业务链条都能找到相应的框架实现。因为Python是一门比较全面与平衡的语言,既能满足包括web在内的系统应用的开发,又能满足数据统计分析等数学领域的计算需求,同时也能作为胶水语言跟其它开发语言互通融合。

72098609f08dbbd620d6ae6c02d1464b.png

Python的安装及集成开发环境搭建

 (一)

基础Python的安装

Python是免费的开源软件,进入Python的官网即可下载,Python现有Python3和Python2两个版本两版本之间不互通,现阶段学习使用的大部分都是Python3。

59baf32fa699a57ce421abaedc19ca40.png

 (二)

Python集成开发环境:Anaconda

Anaconda是一个开源的Python发行版本,其包含了Conda、Python、Spyder、Jupyter Notebook、IPython等软件及其依赖项,以及NumPy、SciPy、Pandas、Matplotlib等400多个扩展包。

Anaconda安装简单,在官网下载安装包后点击执行文件安装即可,且支持多种操作系统,Windows、Mac系统均可使用。而且在Anaconda中,Python2和Python3版本可同时存在

但是要注意,Anaconda是一个Python的集成开发环境,内置Python。所以安装Anaconda后,最好不要再次安装Python,否则可能会产生冲突

59baf32fa699a57ce421abaedc19ca40.png

 (三)

Python的运行介绍

Python 环境中最主要的部分是解释器

首先介绍一下如果只有原生Python环境下的运行,直接下载的Python安装后可以在cmd窗口运行,就是那个最原始最硬核的黑乎乎的窗口,除非是特别喜欢硬核风的程序员,否则以这个原始界面来说,用户友好度肯定不足。

8c3ac5799c72297d32942aaec9666e58.png

图:cmd运行界面

再聊一聊安装Anaconda后的的运行环境,Anaconda自带一个cmd运行环境Anaconda Prompt,这个界面依旧是原始的黑框,但是内置信息丰富度已经比原生Python要好很多,用户交互性有所提升,在anaconda prompt内可进行程序编写、23版本的切换。也可以制作原始的图像。

但是在cmd运行环境内程序很难修改一旦出错需要重新复制一遍程序再debug。

59892d19f070fb3b767778e3a411295e.png

图:Prompt的运行界面

除了上述cmd运行环境,IPython 是另一种更为广泛使用的交互对话环境。

它具有自动补全代码、自动缩进和查询等功能。在只安装了Python 的情况下,通过pip安装可以安装该环境。在Anaconda 环境中自动安装IPython。

当代码较短的时候可以直接用Python自带的shell执行,但如果代码较长可能产生错误的时候推荐使用IPython进行编译。

17cb67b5b73cee05a8408f88dc5fc6e2.png

图:IPython的运行界面

介绍了上述的Shell环境,IPython环境,他们有各自的优缺点,而Anaconda中有一个功能更为综合的集合开发环境——Spyder

Spyder 是一个整合了科学计算功能的典型函数库,如 NumPy、Pandas。除了 Python 内置的 Shell 以外, Spyder也内置安装了 Python 交互环境库 IPython、和Shell,该集合开发环境软件页面左侧是IPython环境,右侧是Shell环境,在IPython中运行可在右侧界面查看运行结果。而且Spyder具有许多辅助编译功能。

35a91c4c3936ce1f0e0e744a2cacd5b3.png

图:Spyder界面

59baf32fa699a57ce421abaedc19ca40.png

 (四)

Python编程常识

Python程序的基本元素是语句。一般情况下一个语句占据一个物理行,也就是编译器上一行的位置,但是实际编写过程中,多个物理行之前存在逻辑关系时,为了能正确识别,需要一些方法区分识别不同物理行之间的关系,形成逻辑行

   “#”:以“#”开头的行为注释行,起到解释作用,运行时不会运行该部分

   “/”:一个逻辑行可以占据一个物理行,当语句较长时,一个逻辑行可能占据多个物理行。用斜线"\"表示语句跨行。

缩进(Tab):Python中不用花括号表示语句块,是通过缩进表示的,缩进相同的语句表示同一语句块。

72098609f08dbbd620d6ae6c02d1464b.png

Python基本语法及编程规范

 (一)

对象

是Python语言中最基本的概念,在Python中处理的一切都是对象,命令是对象,函数也是对象。

Python中有许多可直接使用的内置对象,如数字、字符串、列表、字典等;

非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random( )等。

以下是不同对象类型的介绍:

1

数字(number)

数字有整数、浮点数、复数及布尔型,整数就是无小数的数字。Python3版本中没有整数范围限制,取决于内存大小,一般情况下默认为十进制,在数字前加上各个进制代表符号可以转换进制。

// 浮点数float //

是具有小数点的数,因为浮点数在电脑中用二进制保存,所以表达的是近似值。浮点数可以求固定精确度的小数。

// 布尔类型 //

用于确定真假,语句为真返回true,语句为假返回False。True的值为1,False为0。

// 复数 //

有实部和虚部两个部分,但Python中的虚数单位用J和j表示,可以通过complex(x,y)函数或直接写复数表达式创建。

// 字符串 //

是由字符组成的序列,字符集合用引号框起来即形成字符串,并可以从左到右按照相对位置进行访问,比如‘Apple’第一个字符‘A’的偏移量为0,后续字符分别为1、2、3、4。字符串内的字符元素不可变动。

2

列表(lsit)

列表具有容器功能,可让任何类型的对象组成一个序列,这是Python语言最通用的一个序列,也可以通过偏移量进行索引,创建方法就是使用list()函数或者用[]包含对象。列表可以放入任何类型对象,包括列表。

3

元祖(Tuple)

也是一种序列类型数据,和列表一样可储蓄任何类型数据,但是列表中元素可以变化,但是元祖不可以变化元素,列表能够删除、增加、变换元素,但元祖不可以,和字符串类似。但字符串只能放入字符元祖可以放入任何类型对象。

4

字典(dict)

字典属于一种映射关系,没有从左到右的顺序关系,字典内部由“键:值”的配对组成,可以看做两类数据对照表,输入其中一个即可找到另一个。字典使用{}创建,比如{‘a身高’:169,‘b身高’,180}。

5

集合(set)

集合是无序可变序列,使用一对大括号界定,元素不可重复;只能包含数字、字符串、元组等不可变类型。

016870a245dddcebd951dd5b652422fc.png

图:对象类型的整理表格

59baf32fa699a57ce421abaedc19ca40.png

 (二)

变量及命名规则

 Python的变量名称一般由英文字母、下划线或者数字构成不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量。

但变量名称不能以数字开头不能与Python内置关键字名字相同,比如if、for等。Python具有大小写敏感,同样的字符变量如果大小写不同依然会被识别为不同变量。

在Python 3中加入了Unicode编码,中文、日文等其他非英文语言也可以作为变量名。意味着你可以在变量名称上使用中文字符,但是为了程序运行的流畅性和阅读兼容性,各位编写程序最好还是使用英文变量。

c60f96556f306ad63a848adf85145b79.gif

变量的难点在于可变与不可变

举个例子,创建变量“x=7”时,编译器建立对象7,如果x没有被创建则创建一个x,再把7赋值给x,x和7绑定,但是如果运行“x=8”,则x指向对量8, 7则被自动回收。X的地址就会变化,这就是可变的。但创建的整数7、8的内存地址不可改变,这就是不可变对象。

各类对象类型中,数字、字符串、元祖属于不可变对象,列表元素可变,属于可变对象

总结来说,不可变对象一且在内存中建立后,其值就无法变动。无法通过指向该对象的变量修改对象的内容。

59baf32fa699a57ce421abaedc19ca40.png

 (三)

常用语句

1

赋值语句

赋值语句通过赋值运算符、表达式和变量实现。通过赋值符号“=”将右边的表达式的返回值赋值给左边的变量。比如‘a=1+1’先计算1+1再赋值给a

多重赋值:将一个对象引用赋值给多个变量,如’a=b=c=1’

多元赋值:使用一个赋值语句实现多变量引用多对象的方法,如’a,b,c=1,2,3’

增强赋值:即先对变量进行计算再赋值给这个变量,a=a+1,a+=1,

2

条件语句

Python 条件语句是指通过对指定条件的真假结果来确定要执行哪条语句

常用条件语句为if语句,基本形式为:

if 语句1:

   执行语句1

else:

   执行语句2

常用分支语句有单分支,双分支,多分支。根据不同实际情况使用。

ed1d921799d0742b823f7ef42cb5d2eb.png

图:条件语句代码

3

循环语句

属于重复执行某代码块。Python有for循环和while循环两种

循环语句可批量处理数据,比如输出1000以内的偶数,可利用循环语句使变量遍历所有数据并找出符合条件的数据输出。

e5ef56c0f78a441e40aba294871a1d82.png

图:循环语句代码

 (四)

函数

Python中将可将需要反复执行的代码封装为函数,并在需要该功能的地方进行调用,实现代码复用,保证代码的一致性。

1

形参与实参

函数参数分为形式参数(简称形参)、实际参数(简称实参)。

函数定义括弧内为形参,一个函数可以没有形参,但是括弧必须要有,表示该函数不接受参数。

函数调用时向其传递实参,让形参指向实参所指的对象(设涉及可变不可变的问题),在定义函数时,对参数个数并没有限制,如果有多个形参,需要使用逗号进行分割

函数有内置函数、库内定义好的函数、编写者自己定义的函数。

2

定义一个函数

使用def()函数,函数形参不需要声明其类型,也不需要指定函数返回值类型,即使该函数不需要接收任何参数,也必须保留一对空的圆括号,而且函数后的冒号不可删除

函数体相对于def关键字必须保持一定的空格缩进

6fb7e5364b3399477ae2e2fdb0fc3ab4.png

图:定义函数的代码

72098609f08dbbd620d6ae6c02d1464b.png

Python模块、包、库简介

 (一)

模块、包、库的介绍

1

模块

模块是一种以“.py”为后缀的文件,里面包含一些常量或者函数,使用这些常量和函数组合可以实现特定的目的。可以将可能所需的函数或者数据处理方法封装成模块,这个模块可以被其他模块获取与导入。

2

包是模块的一种结构化管理,将具有关联性的模块结构化,整合功能。一个包内可拥有许多模块,这样也可以避免模块重名的错误,因为导入时需要导入‘包.模块名’。

除了模块文件以外,包文件里面可以包含子包。可以无限套娃。

3

Python广受欢迎的原因之一谁因为其具有众多功能强大的库。而Python自带的标准库可以满足大多数基本功能需求,文本处理、数值运算、文件管理、代码调试等功能都有涵盖。

Python 中的库是借用其他编程语言的概念,没有特别具体的定义,Python 库着重强调其功能性。在 Python中,具有某些功能的模块和包都可以被称作库

举个例子,Numpy库就是一个科学计算功能的函数库,它也可以被看做一个包的集合。

59baf32fa699a57ce421abaedc19ca40.png

 (二)

Python标准库

Python 的标准库是Python 自带的函数库,成功安装 Python 后,即可使用标准库。标准库中包含内置函数、内置常量、内置数据等等模块。这些基础的模块由C语言编写,可在Python的编译器内直接使用。

简单介绍几个模块,比如具有数学功能的math和cmath模块。Math模块位浮点数运算提供一些函数,不接受复数输入;而cmath模块接受复数作为参数。比如math.pi输出值为3.141592653589793。

具有时间和日期功能的calendar模块、time模块、datatime模块。这些模块可以帮助用户获取日期,处理日期,制作时间表等等。

422e35da6989f966f3bbbb0b9ea8736a.png

图:Python的标准库

72098609f08dbbd620d6ae6c02d1464b.png

Python编程思想

在讨论面对对象和面对过程的区别之前,我们先明确一下:

Q1: 到底什么是编程?

A1: 编程的目的是让计算机帮我们做事情。

Q2: 那编程如何实现?

A2: 是写一个剧本,让计算机去表演。

befb4135f9711d4fe7955290a8a7bea3.gif

那又有几个问题了:

Q3: 剧本用什么语言写?

(中文?英文?编程语言?)

Q4: 剧本结构怎么安排?

(算法?编程思想?面向过程?面向对象?)

c60f96556f306ad63a848adf85145b79.gif

语言是工具,编程能力是功夫,编程思想是高级功夫,算法是灵魂。能运用Python是一个基础,研究思想和算法才是自由发挥的地方。

现在在讨论一下面对对象和面对过程的编程。

1

面对对象VS面对过程

面向对象程序设计:

主要针对大型软件设计而提出,使得软件设计更加灵活,能够很好地支持代码复用和设计复用,并且使得代码具有更好的可读性和可扩展性。这是面向对象的定义

编程思想就是我们用计算机来解决实际问题时所采用的思维方式。

6

面向过程VS面向对象; 员工思维VS领导思维

面向过程思想是早期的程序语言设计思想。思路是以行为为主线,分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现。也就是现在典型的学生解题的思维。

面向对象思想是软件工程的基础。思路是以对象为主线,把构成问题的事物分解成各个对象,把行为封装到对象中,通过对象来解决问题。

c60f96556f306ad63a848adf85145b79.gif

举一个很通俗的例子

煮鸡蛋

e8d6f0b82042e07ebf5795c843e1856a.png

// 面向过程 // 

从冰箱里取出鸡蛋,

用锅接水,放鸡蛋,

开火,烧水,关火。

// 面向对象 //

有请鸡蛋、请锅、煤气灶!

- 鸡蛋:我负责由生变熟;

- 锅:我负责接水,盛鸡蛋;

- 煤气灶:我负责烧和关火(不用担心忘记关火);

c60f96556f306ad63a848adf85145b79.gif

面向过程的思维就是员工思维,我按照应该煮鸡蛋的方法拿鸡蛋、烧水、煮熟,事事亲力亲为。

而面向对象的方法就是先将这这些步骤打包好,在调动这些模块去完成目标,这也是典型的老板思维。所以这个思想不仅实用于编程,也对于问题的思考有很大帮助。

学习编程的过程不仅仅是计算机技术的联系,也是思维上的锻炼。

abb3b818394c50df28d48d96a9082cac.png

- 声 明 -

金融计量学社是一个私人公众号。不是组织,也不是社团。只是一群志同道合、至心为人且热爱学习的小伙伴们,自发自愿为同学们建立的公益学术传播交流平台。

dec845f73ceecd3544f488589c9b7ae5.png

文案 / 霈烟学长,Z学长

排版 / 言音学姐

学术指导 / Rose学姐,Torres学长

审核 / Rose学姐的新团队

更多学术干货详见往期推送

ee45c536864deaf2b16efce0456968c3.png 8e4e3b0dce796f4f134a67db782444a2.png

关于我们

a8af565e0931c49aaef9b88b77a5d8de.png

经济学子忠诚可靠的学术亲友团

以积极的利他之心

开创公益学术分享之氛围

于大学校园中弘扬利他互助之文化

aaaddfe6c55bcc5a58e7e91f329e0b1b.png 845aefdc71368696e776a2dd58d88010.png 4d9a65d58959b9679eb65c31ecb6399f.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值