欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

Python编程第一步

时间:2022-10-09 17:56:33 | 浏览:362

本文摘自人民邮电出版社异步社区《Python物理学高效计算》一书许多人都认为Python是一门伟大编程语言。没错,但什么是Python,其优点又是什么?Python是一款易学的通用、动态且高阶的语言。Python能够很好地与其他语言交互(如

本文摘自人民邮电出版社异步社区《Python物理学高效计算》一书


许多人都认为Python是一门伟大编程语言。没错,但什么是Python,其优点又是什么?Python是一款易学的通用、动态且高阶的语言。Python能够很好地与其他语言交互(如C、C++、Fortran),因此也被称为胶水语言。由于这些优点,Python已经成为一门强大的数据分析语言。在科学和工程方面,特别是物理相关领域大放光彩。

Python主要的缺点是其性能不高。Python是一款解释型语言,与R、Ruby、Matlab相似,而与C、C++、Fortran这些编译型语言差别较大。Python用户信奉“过早优化是万恶之源”,通常用以下观点反驳针对Python性能的批评。

开发时间(开发者编写程序的时间)比程序运行时间更宝贵。

  • 大部分性能相关的问题都能通过使用合适的数据结构和算法来解决。

  • 如果确实需要关注性能,可以用编译型语言编写性能瓶颈,然后在Python中调用相关函数。

Python最重要的一点在于使用起来非常有趣。越学越想学,继而能掌握更多的内容。Python生态系统非常丰富,同时还有庞大、友善的社区。但本书无法一一介绍Python所有的优点。本章将初步介绍Python的基础语法。而关于Python安装说明,请参考前言。

1.1 运行Python

Python本身是一种被称为解释器的特殊程序,这个程序将Python源代码转换成计算机处理器可以理解的指令。Python解释器有多种启动方式。最基本的方式是在终端的提示符中输入python,通常会显示一些关于Python自身的信息。接下来是以“>>>”起始的行,这是Python提示符,在此可以输入Python代码:

输入相关代码,按回车键执行,最后回到“>>>”提示符中:

若想获得帮助,可以随时使用help()函数。而用exit()函数可以回到命令行。这种方式与bash很像,因为Python的交互方式与bash完全相同,都是“读取—运算—输出”循环(read-eval print loop),简称REPL。

但Python中并不是只有死板的REPL。IPython(即Interactive Python)提供了更强大的REPL。读者可以通过下面的方式获取IPython。

1.访问ipython.org,下载最新的稳定发布版。

2.如果使用的是Conda包管理器(前言中介绍过),并且运行了前言中“安装和设置”一节中列出的命令,那么应该可以使用IPython了。读者可以运行conda update ipython来确保机器上使用的是最新版本。

3.如果安装了Python,可以使用pip install ipython安装。

4.如果使用的是Ubuntu,运行命令sudo apt-get install ipython。

启动IPython并在其中执行代码,如下所示:

除了基于文本的REPL,IPython还提供了基于Web浏览器的notebook,其使用方式和外观与Mathematica或MATLAB的notebook非常相似。这些notebook都是非常好的数据分析平台,且正在快速成为创建和分享信息的标准方式。强烈建议读者去了解一下。

虽然REPL很有用,但也有诸多缺点。首先是REPL在使用多行代码时比较难、繁琐且容易出错。其次是很难将代码保存到普通文件中。因此很难将在REPL环境中完成的工作分享给他人。

大部分人一般在文本文件中编写Python代码。如果对以.py结尾的文件运行解释器,Python会执行其中所有的代码,就如同在REPL中逐行执行一样。

例如有一个名为greetings.py的文件,含有下面的内容:

在bash中执行会得到下面的结果:

在学会如何运行Python代码后,下面来学习语言本身。

1.2 注释

所有现代编程语言都有注释字符。注释字符会让解释器忽略一部分字符,让开发者能够在相关代码附近撰写一些说明或解释。Python使用“#”字符表示注释内容。解释器会忽略掉#之后位于同一行的所有内容,Python没有多行注释:

1.3 变量

变量由两部分组成:名称和值。若想为一个名称给定一个值,需要用到单个等号(=)。将变量的名称放在等号的左边,值放在右边。变量的名字可由大小写字母、数字(0~9)、下划线()组成。下面是hbar变量,表示约化普朗克常数(reduced Planck constant,即狄拉克常数):

变量名称不能以数字开头,此举是为了防止用户重新定义数值字面值。变量必须以字母或下划线开头。

记住,变量名称不能以数字开头!

2plus_forty = 42 # bad

two_plus40 = 42 # good

定义完变量后,就可以随意使用或操作这个变量了。假设需要打印普郎克常数。首先定义π,接着用h_bar乘以2π:

在Python中,所有变量都有确定的类型,这意味着这些值具有明确定义的属性,用于指定其使用方式。各种类型有针对特定用途的专门属性。整数(int)和浮点数(float)用于数学计算;字符串(str)用于文本处理。这些都是字面类型,因为Python提供了专门的语法用于直接创建这些类型:

整数和字符串有时称为精确类型,因为所有精确类型的变量都能在底层精确表示。整数1就是1,不会是其他内容。但浮点数是不精确类型。

一般来说,浮点数是实数的64位近似值φ。有些浮点数(如1.0),可以用有限的数据表示,但其他浮点数可能不是精确值。这会让科学计算出现许多问题。更多信息请阅读David Goldberg的《What Every ComputerScientist Should Know About Floating- Point Arithmetic》。

如果不清楚变量,可以使用内置的type()函数查看。使用这个函数时,将需要检查的变量放在括号中。

Pothm中还可以使用类型名称来转换变量类型。首先输入类型名称,在其后跟上括号,括号里面是需要转换的变量。

在表达式int("28")中,字符串"28"转换成了整数,这是因为该字符串中的内容正好都是数字。如果字符串中的内容不能表示一个整数,则会转换失败,如下所示:

(1)这里产生一个错误(ValueError)。

(2)错误的位置(指出是在文件中还是在交互式解释器中)。

(3)发生错误位置的行号,以及偏移量。

(4)最后是最重要的错误消息。请仔细阅读这条信息。如果错误信息不清晰或读不懂,可以在网上以错误信息作为关键字进行搜索。

这是Python标准的处理模式,能激发开发者的探索和创造能力。如果某个操作无法进行下去,那么代码应尽早报错并返回有用的错误消息。这种“早撞墙早回头”的信条是交互式开发过程的核心,能鼓励程序员不停地试验,针对错误调整代码再次尝试,重复这个过程直到代码收敛为工作版本。在前面的示例中,“quark”是个字符串,不是基数为10的数值。为了修改这个错误,最好将值更改为仅由数字组成的字符串。

Python是动态类型的,这意味着以下几点。

1.类型是关联到变量的值上,而不是关联到变量的名称上。

2.在使用某个变量之前,不需要知道该变量的类型。

3.改变变量的值后,变量名称的类型就随之改变。

下面的代码在Python中完全正确:

在这里,每次在向x赋予新值时,都改变了其类型。新值替换了旧值,但变量名称没有改变。这与静态类型语言,如C、C++、Fortran、Java都有所区别,在那些语言中:

1.类型关联到变量的名称上,而不是变量的值。

2.在使用变量之前必须指定其类型(通过声明或推导)。

3.无法改变变量类型,即使改变变量的值也不行。

本书不会对静态语言着墨过多,但重要的是要知道,Python中的许多语言特性是为了减少在使用低阶语言时会遇到的不便之处。变量的类型就是这样一个例子,Python对低阶语言中一些严格的限制进行了抽象。而Python的这种灵活性也伴随了一些折衷,在后续遇到时会一一介绍。

1.4 特殊变量

Python有一些重要的特殊变量,这些变量的值已经内置到语言中,如True、False、None、NotImplemented。这些变量在启动Python解释器时就存在,且只初始化一次,因此都是单例模式。现在来深入了解这些特殊变量。

1.4.1布尔值

布尔类型只含有True和False这两个变量,在Python中类型为bool。布尔变量用来表示Python表达式的真假值。开发者也可以直接作为标志使用,表示开启或关闭某个行为。其他数据类型也可以转换为布尔值。一般来说,如果值是0或容器为空,转换为False;如果值非0或容器非空,则转换为True。下面是仅有的两个转换规则。

1.4.2 None不是0!

None在Python中是一个特殊的变量,用来表示没有给定值,或没有定义行为。这与使用0、空字符串或其他任何空值都不同。0是一个合法的数字,而None不是。如果在一个程序中需要一个整数或浮点数,但传进去的是None则程序会终止。如果传入的是0,程序会继续运行。None就如同C/C++的NULL、JavaScript的null一样。另外,None在Python中还有特殊的地位,用来表示函数默认的返回值,后续章节会介绍更多相关内容。

1.4.3 NotImplemented不是None!

与None不同,变量NotImplemented不仅用来表示某个行为尚未定义,同时也表示该行为在Python中不可能完成、没有意义或不存在。例如,当试图用字符串除以浮点数时就会在底层遇到NotImplemented,导致TypeError:

NotImplemented对自定义类型非常重要,后续会深入介绍。

学习完类型、变量、Python的特殊变量之后,接下来介绍能对变量做些什么。下一节介绍一些Python语言定义的行为和操作。

1.5 操作符

操作符是一种Python语法,用于表示一些常见的处理数据和变量的方法。Python定义了一元(unary)、二元(binary)和三元(ternary)这三种操作符,分别对应以1个、2个、3个变量作为参数的操作符。

表1-1显示了计算物理中需要了解的操作符。当然,每个操作符的重要程度并不相同。这里先介绍几个重要的,其他的会在用到的时候介绍。注意,有些操作符只能用于特定类型或变量。

表1-1 Python操作符(以变量x、y、z说明)

表1-1中列出的大多数操作符都可以互相组合。也就是说操作符之间可以互相连接、嵌套、用括号规定运算顺序。这与组合数学运算符完全相同,如下所示:

但有些特定类型的操作符(如赋值(=)和删除(del)操作符)不能组合,必须位于单独一行。因为这些操作符会直接修改变量本身,而不是修改变量的值。如下所示:

如果某个操作符是可组合的,则可以用其组成Python表达式。表达式是一段代码,执行时并不需要独占一行。同一行代码可以有多个表达式。另一方面,如果某个操作符不可组合,且需要独占一行才能工作,则称为语句。从本质上说,所有的Python代码都由一系列语句组成,而语句由表达式组成。来看下面这个例子。

这行代码由x = <code>赋值语句组成,等号的右边是表达式(42 * 65) – 1。该表达式由两个子表达式组成,分别是(42 * 65)和<code> –1。这两个子表达式也可以独立执行,如下所示:

下一节将介绍一个与之前见到的数值类型有所不同的新数据类型。字符串用来表示各种类型的文本,这是编程中的一个核心内容。

本文摘自《Python物理学高效计算》,点击下方链接查看:
http://www.epubit.com.cn/book/details/4595

本书介绍了如何通过Python自动化地完成物理领域方面的研究。全书共分为4个部分,以Python代码为示例向读者介绍了如何用Python解决物理项目中出现的各种问题。第1部分(第1~6章):起步,介绍Python的基本知识,如命令行、数据容器、类和对象等。第2部分(第7~13章):上手,主要介绍正则表达式、数据可视化、存储数据等实用知识。第3部分(第14~18章):完善,介绍如何构建流程和软件、版本控制、调试和控制代码等。第4部分(第19~23章):发布,介绍如何为代码生成文档、如何提高协作效率和软件许可证以及版权的相关知识等。 本书适合想要通过Python减少工作量的物理学领域的研究人员阅读,也适合想要学习如何通过Python编程解决物理问题的读者参考。

作者简介:

Anthony Scopatz是计算物理学家和资深Python开发者。Anthony拥有加州大学圣塔芭芭拉分校的理学学士学位,以及得克萨斯大学奥斯汀分校的机械/核能博士学位。Enthought前员工,曾在芝加哥大学天文物理学系的Flash Center进行博士后研究,目前是威斯康星大学麦迪逊分校工程物理系的工作人员,主要研究核燃料循环的基本物理建模、信息理论和熵。Anthony是Python软件基金会的成员,并在许多会议上进行过以科学和软件开发为主题的演讲。

Kathryn D.Huff是伯克利数据科学研究所的研究员,也是加州大学伯克利分校核能科学与安全联盟的博士后研究员。2013年获得威斯康星大学麦迪逊分校的核工程博士学位。她还拥有芝加哥大学物理学学士学位。她参与了实验宇宙天体物理学、实验非平衡粒状物相动力学、计算核燃料循环分析、计算反应堆事故中子学等领域的研究。在威斯康辛州,她是科学计算机组织Hacker Within的创始人,自2011年以来一直担任Software Carpentry的讲师。在专业的其他方面,她目前是美国核学会的部门主管,连续两年担任Scientific Computing with Python(SciPy)会议的程序委员会联合主席。

在“异步图书”后台回复“关注”,即可免费获得2000门在线视频课程;推荐朋友关注根据提示获取赠书链接,免费得异步图书一本。赶紧来参加哦!

点击阅读原文,查看本书更多信息

扫一扫上方二维码,回复“关注”参与活动!

相关资讯

零基础学Python:Python五种Python解释器分享给你

不论你是Python新手零基础入门Python还是对于Python有了一定的经验积累,这里跟大家分享5个Python计时器,希望伙伴们有能用得上的!Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分

Python之父:Python4.0可能不会来了

机器之心报道编辑:力元、蛋酱2020 年 1 月 1 日,Python 官方结束了对 Python 2 的维护,意味着 Python 2 完全退休,进入 Python 3 时代。之后,关于 Python 4 的发布排期也成为了社区的热门议题

python入门之python简介

一、python了解python 是脚本语言。python 是一种面向对象的解释型计算机程序设计语言。语法简洁清晰,特色之一是强制用空白符作为语句缩进。优点:跨平台、胶水语言、开源免费、丰富的库 。缺点:运行速度慢、代码不能加密、场景、数据

最新的python,整整16个G,附零基础入门Python思维导图

思维导图是整理知识的一种非常有效的手段,这里分享几张 Python 基础学习的思维导图,可以帮助自己巩固下基础,有需要的小伙伴可以加紧时间收藏哦!获取方式:

什么是Python?为什么要学习Python?

第一期计算机等考二级程序设计科目的学习,我们从简单易学的Python开始,今天,就让我们揭开它神秘的面纱!我们先看三组数据:第一组呢是TIOBE指数排行,可以看到我们的Python在今年三月份排在了榜首的位置,相比去年的三月份,Python

Python:是!“用Python的,全是假程序员”!HR:太真实……

都说Python什么都能做,本来我是不信的!直到我在CSDN站内看到了一件真事儿:一位博主贴出了自己10分钟用Python搭建小说网站的全过程!全程只用了2步操作,简直太秀了!!……第一步:爬取小说数据库第二步:用Python的热门框架Dj

封神级Python开发核心知识点笔记!一篇带你学透Python

之前老看Java岗的一个朋友炫耀他的一份Java核心知识点笔记,当时,我内心毫无波澜,只有一点点酸……其实Python开发也有很多知识点,我一直一来就想要一份Python核心知识点笔记来帮助自己查漏补缺,后来想想,既然一直没有找到让我满意的

明年至少令Python提速2倍?Python之父给出爆料

去年 11 月,退休失败的 Python 之父 Guido van Rossum 在推特上宣布,退休生活太无聊,从而加入了微软开发者部门。微软自然支持优秀人才的发展,所以赋予了 Guido van Rossum “自由选择项目”的权利,Gu

Python入门教程:超详细1小时学会Python

小编贴心提醒,本文阅读时间9分钟1.Hello world安装完Python之后,打开IDLE(Python GUI) ,该程序是Python语言解释器,你写的语句能够立即运行。我们写下一句著名的程序语句:并按回车,你就能看到这句被K&R引

想学习Python不知从何学起?一份超详细Python入门资料,干货满满

Python是近年来非常火热的一门编程语言,Python 语言最大的特点就是简单,该特点主要体现在以下 2 个方面:1. Python 语言的语法非常简洁明了,即便是非软件专业的初学者,也很容易上手。2. 和其它编程语言相比,实现同一个功能

python入门基础教学,再不学python就晚了

经过了前一段时间的python学习,那么今天我们来学习一下字典,首先来看一个简单的字典:在python中,字典是一系列键-值对,每个键都与一个值相关联,例如前面的color和age就是键,yelllow和23就是他们分别对应的值对1.访问字

学习Python你一定要知道的知识Python解释器的作用和分类有哪些

之前已经讲解了Python解释器的下载和安装,现在就讲下解释器的作用和分类,在讲解任何Python代码之前我们得先知道解释器概念和作用,因为解释器扮演的角色是非常重要的。一、解释器的作用****作用:运行文件(运行代码)****Python

如何在PythonIDLE中查看Python中turtle库中所有方法及用法

在IDLE中点击help中的Python Docs找到“Python Docs”然后就进入Python文档的界面,在左边找到“搜索”按钮,并点击。找到“搜索”按钮在搜索框中搜索所需要的库名称或者函数名称,就能含有该关键词对应的文件。你会在这

7步搞定Python数据可视化,大牛出品教程,Jupyter、Colab版都有

郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI做图表,谁不会?打开Excel,自动就可以生成各种各样的图表。但你看这些图表呢?结合真实地理数据,展现美国每个县的失业率。全球自然灾害统计,类型、规模、时间,一目了然。甚至还有可爱

分析Python3中的bytes和str类型

从例子可以看出,s是个字符串类型。Python有个内置函数bytes()可以将字符串str类型转换成bytes类型,b实际上是一串01的组合,但为了在ide环境中让我们相对直观的观察,它被表现成了b’xe4xb8xadxe6x96

友情链接

网址导航 SEO域名抢注宝宝起名网妈妈知道币圈火龙果种植网尤尼克斯球拍路虎汽车网墨西哥旅游网动漫资讯网欣灵电气股票宝格丽奢侈品今日济南木地板品牌网吉他培训网萧氏免费取名网孙珍妮影迷网川崎机车网霸王茶姬会员日张员瑛歌迷网
PHP编程知识网-php开源建站系统、PHP程序员网站开发、php编程工具、php菜鸟教程下载、PHP网络编程教学、php网络编程、php工程师、php菜鸟教程数据库、PHP网站开发、PHP精品源码网站、php程序员入门、php零基础入门教程、php源码搭建网站流程、php从入门到精通第2版、php开发简单网站、php制作网站实例、php网站开发实例教程源代码、php中文网破解版、php中文网。
php编程知识 yoceo.cn ©2022-2028版权所有