初识 Python

 

参见1html

参见2前端

认识计算机

CPU(大脑) 3GHZ + 内存(DDR4) + 主板 + 电源(心脏)
+ 显示器 + 键盘 +鼠标+ 显卡 + 硬盘 80MB/s

操做系统:
  windows 家用
  linux 服务器
  macOS 家用+服务器

计算机是一个高度集成的电子电路
高低电平. 二进制
二进制没有2 -> 0 1
八进制没有8 -> 0-7
十进制没有10 -> 0-9
十六进制没有16 -> 0-9 A-F


显卡 :
  1. NAVID 看型号。
  2. AMD 图形处理python

 

编程语言分类、解释型 vs 编译型的优缺点

有哪些编程语言?

编程语言整体分觉得机器语言、汇编语言、高级语言,以下:linux

机器语言程序员

因为计算机内部只能接受二进制代码,所以,用二进制代码0和1描述的指令称为机器指令,所有机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。web

汇编语言shell

汇编语言的实质和机器语言是相同的,都是直接对硬件操做,只不过指令采用了英文缩写的标识符,更容易识别和记忆。数据库

高级语言编程

高级语言所编制的程序不能直接被计算机识别,必须通过转换才能被执行,按转换方式可将它们分为两类:flask

编译类:编译是指在应用源程序执行以前,就将程序源代码“翻译”成目标代码(机器语言),所以其目标程序能够脱离其语言环境独立执行(编译后生成的可执行文件,是cpu能够理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦须要修改,必须先修改源代码,再从新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。编译后程序运行时不须要从新翻译,直接使用编译的结果就好了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等

解释类:执行方式相似于咱们平常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,所以效率比较低,并且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,能够动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。

总结

机器语言

优势是最底层,速度最快,缺点是最复杂,开发效率最低

汇编语言

优势是比较底层,速度最快,缺点是复杂,开发效率最低

高级语言

编译型语言执行速度快,不依赖语言环境运行,跨平台差

解释型跨平台好,一份代码,处处使用,缺点是执行速度慢,依赖解释器运行

编译型vs解释型

编译型
优势:编译器通常会有预编译的过程对代码进行优化。由于编译只作一次,运行时不须要编译,因此编译型语言的程序执行效率高。能够脱离语言环境独立运行。
缺点:编译以后若是须要修改就须要整个模块从新编译。编译的时候根据对应的运行环境生成机器码,不一样的操做系统之间移植就会有问题,须要根据运行的操做系统环境编译不一样的可执行文件。

解释型
优势:有良好的平台兼容性,在任何环境中均可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就能够,能够快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

⭕️编译与解释

编译是将源程序翻译成可执行的目标代码,翻译与执行是分开的;而解释是对源程序的翻译与执行一次性完成,不生成可存储的目标代码。这只是表象,两者背后的最大区别是:对解释执行而言,程序运行时的控制权在解释器而不在用户程序;对编译执行而言,运行时的控制权在用户程序。

解释具备良好的动态特性和可移植性,好比在解释执行时能够动态改变变量的类型、对程序进行修改以及在程序中插入良好的调试诊断信息等,而将解释器移植到不一样的系统上,则程序不用改动就能够在移植了解释器的系统上运行。同时解释器也有很大的缺点,好比执行效率低,占用空间大,由于不只要给用户程序分配空间,解释器自己也占用了宝贵的系统资源。

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机能够直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,因此运行速度是不如编译后的程序运行的快的.


⭕️编译型和解释型
咱们先看看编译型,其实它和汇编语言是同样的:也是有一个负责翻译的程序来对咱们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的程序天然就称为编译器(Compiler)。若是咱们写的程序代码都包含在一个源文件中,那么一般编译以后就会直接生成一个可执行文件,咱们就能够直接运行了。但对于一个比较复杂的项目,为了方便管理,咱们一般把代码分散在各个源文件中,做为不一样的模块来组织。这时编译各个文件时就会生成目标文件(Object   file)而不是前面说的可执行文件。通常一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已是可执行代码了,但因为只是整个项目的一部分,因此咱们还不能直接运行。待全部的源文件的编译都大功告成,咱们就能够最后把这些半成品的目标文件“打包”成一个可执行文件了,这个工做由另外一个程序负责完成,因为此过程好像是把包含可执行代码的目标文件链接装配起来,因此又称为连接(Link),而负责连接的程序就叫……就叫连接程序(Linker)。连接程序除了连接目标文件外,可能还有各类资源,像图标文件啊、声音文件啊什么的,还要负责去除目标文件之间的冗余重复代码,等等,因此……也是挺累的。连接完成以后,通常就能够获得咱们想要的可执行文件了。 

上面咱们大概地介绍了编译型语言的特色,如今再看看解释型。噢,从字面上看,“编译”和“解释”的确都有“翻译”的意思,它们的区别则在于翻译的时机安排不大同样。打个比方:假如你打算阅读一本外文书,而你不知道这门外语,那么你能够找一名翻译,给他足够的时间让他从头至尾把整本书翻译好,而后把书的母语版交给你阅读;或者,你也马上让这名翻译辅助你阅读,让他一句一句给你翻译,若是你想往回看某个章节,他也得从新给你翻译。 

两种方式,前者就至关于咱们刚才所说的编译型:一次把全部的代码转换成机器语言,而后写成可执行文件;然后者就至关于咱们要说的解释型:在程序运行的前一刻,还只有源程序而没有可执行程序;而程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,总言之,就是不断地解释、执行、解释、执行……因此,解释型程序是离不开解释程序的。像早期的BASIC就是一门经典的解释型语言,要执行BASIC程序,就得进入BASIC环境,而后才能加载程序源文件、运行。解释型程序中,因为程序老是以源代码的形式出现,所以只要有相应的解释器,移植几乎不成问题。编译型程序虽然源代码也能够移植,但前提是必须针对不一样的系统分别进行编译,对于复杂的工程来讲,的确是一件不小的时间消耗,何况极可能一些细节的地方仍是要修改源代码。并且,解释型程序省却了编译的步骤,修改调试也很是方便,编辑完毕以后便可当即运行,没必要像编译型程序同样每次进行小小改动都要耐心等待漫长的Compiling…Linking…这样的编译连接过程。不过凡事有利有弊,因为解释型程序是将编译的过程放到执行过程当中,这就决定了解释型程序注定要比编译型慢上一大截,像几百倍的速度差距也是不足为奇的。 

编译型与解释型,二者各有利弊。前者因为程序执行速度快,同等条件下对系统要求较低,所以像开发操做系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object   Pascal(Delphi)、VB等基本均可视为编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不一样系统平台间的兼容性有必定要求的程序则一般使用解释性语言,如Java、JavaScript、VBScript、Perl、Python等等。 

但既然编译型与解释型各有优缺点又相互对立,因此一批新兴的语言都有把二者折衷起来的趋势,例如Java语言虽然比较接近解释型语言的特征,但在执行以前已经预先进行一次预编译,生成的代码是介于机器码和Java源代码之间的中介代码,运行的时候则由JVM(Java的虚拟机平台,可视为解释器)解释执行。它既保留了源代码的高抽象、可移植的特色,又已经完成了对源代码的大部分预编译工做,因此执行起来比“纯解释型”程序要快许多。而像VB6(或者之前版本)、C#这样的语言,虽然表面上看生成的是.exe可执行程序文件,但VB6编译以后实际生成的也是一种中介码,只不过编译器在前面安插了一段自动调用某个外部解释器的代码(该解释程序独立于用户编写的程序,存放于系统的某个DLL文件中,全部以VB6编译生成的可执行程序都要用到它),以解释执行实际的程序体。C#(以及其它.net的语言编译器)则是生成.net目标代码,实际执行时则由.net解释系统(就像JVM同样,也是一个虚拟机平台)进行执行。固然.net目标代码已经至关“低级”,比较接近机器语言了,因此仍将其视为编译语言,并且其可移植程度也没有Java号称的这么强大,Java号称是“一次编译,处处执行”,而.net则是“一次编码,处处编译”。呵呵,固然这些都是题外话了。总之,随着设计技术与硬件的不断发展,编译型与解释型两种方式的界限正在不断变得模糊。


⭕️动态语言和静态语言
一般咱们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运行期间才去作数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其余的各类脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言恰好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明全部变量的数据类型,C/C++是静态类型语言的典型表明,其余的静态类型语言还有C#、JAVA等。


⭕️强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,若是不通过强制转换,那么它就永远是这个数据类型了。举个例子:若是你定义了一个整型变量a,那么程序根本不可能将a看成字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不一样数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,可是强类型定义语言带来的严谨性可以有效的避免许多错误。另外,“这门语言是否是动态语言”与“这门语言是否类型安全”之间是彻底没有联系的!例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。


经过上面这些介绍,咱们能够得出,python是一门动态解释性的强类型定义语言。
编译与解释

主流编程语言介绍

有个权威的语言排名网站(https://www.tiobe.com/tiobe-index/),能够看到主流的编程语言是哪些,如下是长期语言排名:

下面介绍下几个主流的编程语言:

C语言:

C语言是一种计算机程序设计语言,它既具备高级语言的特色,又具备汇编语言的特色。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已前后被移植到大、中、小及微型机上,它能够做为工做系统设计语言,编写系统应用程序,也能够做为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围普遍,具有很强的数据处理能力,不只仅是在软件开发上,并且各种科研都须要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用好比单片机以及嵌入式系统开发。

C++:

C++是C语言的继承的扩展,它既能够进行C语言的过程化程序设计,又能够进行以抽象数据类型为特色的基于对象的程序设计,还能够进行以继承和多态为特色的面向对象的程序设计。C++擅长面向对象程序设计的同时,还能够进行基于过程的程序设计,于是C++就适应的问题规模而论,大小由之。

C++不只拥有计算机高效运行的实用性特征,同时还致力于提升大规模程序的编程质量与程序设计语言的问题描述能力。

JAVA:

Java是一种能够撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具备卓越的通用性、高效性、平台移植性和安全性,普遍应用于我的PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具有了显著优点和广阔前景。

PHP:

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸取了C语言、Java和Perl的特色,利于学习,使用普遍,主要适用于Web开发领域

GO:

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

Go是从2007年底由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。如今Go的开发已是彻底开放的,而且拥有一个活跃的社区。尤为擅长并发编程

Python:

Python是一门优秀的综合语言, Python的宗旨是简明、优雅、强大,在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用普遍,已经是全球第4大最流行的语言。

 

Python 语言介绍、发展史

python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他但愿这个新的叫作Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

最新的TIOBE排行榜,Python占据第4, Python崇尚优美、清晰、简单,是一个优秀并普遍使用的语言。

        

Python能够应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎全部大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。

目前Python主要应用领域:

  1. WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为彻底主义者开发的高效率web框架)

  2. 网络编程——支持高并发的Twisted网络框架, py3引入的asyncio使异步编程变的很是简单

  3. 爬虫——爬虫领域,Python几乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥

  4. 云计算——目前最火最知名的云计算框架就是OpenStack,Python如今的火,很大一部分就是由于云计算

  5. 人工智能——谁会成为AI 和大数据时代的第一开发语言?这本已经是一个不须要争论的问题。若是说三年前,Matlab、Scala、R、Java 和 Python还各有机会,局面尚且不清楚,那么三年以后,趋势已经很是明确了,特别是前两天 Facebook 开源了 PyTorch 以后,Python 做为 AI 时代头牌语言的位置基本确立,将来的悬念仅仅是谁能坐稳第二把交椅。

  6. 自动化运维——问问中国的每一个运维人员,运维人员必须会的语言是什么?10我的相信会给你一个相同的答案,它的名字叫Python
  7. 金融分析——Python是金融分析、量化交易领域里用的最多的语言
  8. 科学运算—— 你知道么,97年开始,NASA就在大量使用Python在进行各类复杂的科学运算,随着NumPy, SciPy, Matplotlib, Enthought librarys等众多程序库的开发,使的Python愈来愈适合于作科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更普遍
  9. 游戏开发——在网络游戏开发中Python也有不少应用。相比Lua or C++,Python 比 Lua 有更高阶的抽象能力,能够用更少的代码描述游戏业务逻辑,与 Lua 相比,Python 更适合做为一种 Host 语言,即程序的入口点是在 Python 那一端会比较好,而后用 C/C++ 在很是必要的时候写一些扩展。Python 很是适合编写 1 万行以上的项目,并且可以很好地把网游项目的规模控制在 10 万行代码之内。另外据我所知,知名的游戏<文明> 就是用Python写的

Python在一些公司的应用:

 

  • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
  • CIA: 美国中情局网站就是用Python开发的
  • NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
  • YouTube:世界上最大的视频网站YouTube就是用Python开发的
  • Dropbox:美国最大的在线云存储网站,所有用Python实现,天天网站处理10亿个文件的上传和下载
  • Instagram:美国最大的图片分享社交网站,天天超过3千万张照片被分享,所有用python开发
  • Facebook:大量的基础库均经过Python实现的
  • Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
  • 豆瓣: 公司几乎全部的业务均是经过Python开发的
  • 知乎: 国内最大的问答社区,经过Python开发(国外Quora)
  • 春雨医生:国内知名的在线医疗网站是用Python开发的
  • 除上面以外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各类各样的任务。

Python的发展史

1989年,Guido开始写Python语言的编译器。

1991年,第一个Python编译器诞生。它是用C语言实现的,并可以调用C语言的库文件。从一出生,Python已经具备了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。

Granddaddy of Python web frameworks, Zope 1 was released in 1999

Python 1.0 - January 1994 增长了 lambda, map, filter and reduce.

Python 2.0 - October 16, 2000,加入了内存回收机制,构成了如今Python语言框架的基础

Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生

Python 2.5 - September 19, 2006

Python 2.6 - October 1, 2008

Python 2.7 - July 3, 2010 #目前业内主流使用的工业版本依然是2.7

In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible(2014年11月,Python2.7将在2020年中止支持的消息被发布,而且不会在发布2.8版本,建议用户尽量的迁移到3.4+)

Python 3.0 - December 3, 2008 (这里要解释清楚 为何08年就出3.0,2010年反而又推出了2.7?是由于3.0不向下兼容2.0,致使你们都拒绝升级3.0,无奈官方只能推出2.7过渡版本)

Python 3.1 - June 27, 2009

Python 3.2 - February 20, 2011

Python 3.3 - September 29, 2012

Python 3.4 - March 16, 2014

Python 3.5 - September 13, 2015

Python 3.6 - 2016-12-23 发布python3.6.0版

Python 种类(解释器):

 Python是一门解释型语言,代码想运行,必须经过解释器执行,Python的解释器自己也能够看做是个程序(翻译官司是哪国人不重要),这个程序是什么语言开发的呢? 答案是好几种语言? 由于Python有好几种解释器,分别基于不一样语言开发,每一个解释器特色不一样,但都能正常运行咱们的Python代码,下面分别来看下:

  • CPython

当咱们从Python官方网站下载并安装好Python 2.7后,咱们就直接得到了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,因此叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器。

  • IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所加强,可是执行Python代码的功能和CPython是彻底同样的。比如不少国产浏览器虽然外观不一样,但内核其实都是调用了IE。

CPython用>>>做为提示符,而IPython用In [序号]:做为提示符。

  • PyPy

PyPy是另外一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),因此能够显著提升Python代码的执行速度。

绝大部分Python代码均可以在PyPy下运行,可是PyPy和CPython有一些是不一样的,这就致使相同的Python代码在两种解释器下执行可能会有不一样的结果。若是你的代码要放到PyPy下执行,就须要了解PyPy和CPython的不一样点。

  • Jython

Jython是运行在Java平台上的Python解释器,能够直接把Python代码编译成Java字节码执行。

  • IronPython

IronPython和Jython相似,只不过IronPython是运行在微软.Net平台上的Python解释器,能够直接把Python代码编译成.Net的字节码。

Python 2 or Python 3 ?

  • py2.7是2.x系列的最后一个版本,已经中止开发,再也不增长新功能。2020年终止支持。
  •  全部的最新的标准库的更新改进,只会在3.x的版本里出现。
  •  龟叔决定清理Python2.x ,而且再也不兼容旧版本。 最大的一个改变就是使用Unicode做为默认编码。Pyhton2.x中(默认编码是ASSIC)直接写中文会报错,Python3中(默认编码是UNICODE)能够直接写中文了。
  •  从开源项目看,支持py3的比例已经大大提升,知名的项目通常都支持py2.7和py3+。
  •  py3比py2更规范统1、去掉了不必的关键字
  •  Python3.x还在持续改进
  •  因此仍是推荐你们使用Python3.x。

 

Python 环境安装、Pycharm IDE 使用

Python 安装

Python目前已支持全部主流操做系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上须要安装一下。

官网下载连接:https://www.python.org/downloads/

更多安装方法能够参考 Python3的安装

下面以 Windows 系统为例,打开官网 https://www.python.org/downloads/windows/ 下载中心

下载以后双击打开,勾选上 Add to PATH就不用本身配置环境变量了。

 以后一路默认 next 就安装完成了。

 Pycharm:最好的Python 开发IDE

安装

下载地址:https://www.jetbrains.com/pycharm/download 选择Professional 专业版

(但专业版是收费的,一年一千多,不便宜。怎么办?先百度再淘宝,不行问知乎。。。分享个破解插件

注册完成后启动,会让你先建立一个项目,其实就是一个文件夹,咱们之后的代码都存在这里面

你之后写的项目可能有成百上千个代码文件 ,全放在一块儿可很差,因此通常把一样功能的代码放在一个目录,咱们如今以天为单位,为天天的学习建立一个目录day1,day2,day3...这样

建立代码文件

执行代码

代码调试

 

更多设置能够参考pycharm 的基本使用官方文档

 

第一个 Python 程序 

python程序有两种编写⽅方式:

1. 进入cmd控制台. 输入python进入编辑模式. 这时候咱们能够直接编写python程序

2. 也能够在.py文件中编写python代码.经过python命令来执⾏python代码

1 print("Hello World!")
Hello World

 

 

变量

变量:将运算的中间结果暂存到内存,以便便后续程序调⽤用. 变量的命名规则:

1, 变量由字⺟, 数字,下划线搭配组合⽽而成

2, 不能够用数字开头,更不能是全数字

3,不能是pythond的关键字, 这些符号和字母已经被python占用, 不能够更改

4,不要用中⽂

5,名字要有意义

6,不要太⻓

7, 区分⼤小写

8,推荐⼤你们使⽤用驼峰体或者下划线命名

驼峰体: 除⾸字母外的其余每一个单词首字⺟大写

下划线: 每一个单词之间⽤下划线分开

 

print(3+6)
print("3+6 妈咪妈咪哄") # 被引号括起来的内容是字符串. 原样输出

# 注释 用来标注代码信息的, 被注释的内容不会被执行 单行注释
"""
    多行注释. ''' 或者 "" " 括起来的内容
"""

# 变量
print(3 + 6) # 9
print((3+6)/5)
print((3+6)/5 + 3)
print(((3+6)/5 + 3) * 2) # 因为算数优先级先算 */ 后算+-

# 变量: 把程序运行过程当中产生的值. 暂时存储在内存. 方便后面的程序调用
rng = 3+6 # 运算顺序. 把3+6的结果赋值给前面的变量a
print(rng/5)

ig = rng/5
print(ig + 3) # 数学上的等价代换

x = 1024 * 768

y = x * 2

# 变量的名字
age = 20
length = 30
# 命名规范
#   1. 用数字.字母.下划线组成
#   2. 不能用数字开头. 更不能是纯数字
#   3. 不能使用python的关键字
#   4. 不要用中文
#   5. 不要太长   # 前端除外
#   6. 要有意义
#   7. 区分大小写
#   8. 推荐使用驼峰或者下划线
    # 每一个单词的首字母大写
    # 用下划线分隔每一个单词
# AgeOfAlex = 88
# ageofalex = 88
# birthday_of_alex = 1888

# a = 10
# A = 20
# print(a)
# print(A)

# libaoku = "药匣子"

# alex_胡辣汤 = 88
# print(alex_胡辣汤)
'''
判断下面的变量命名是否合法:
__alex = 188 合法
_$_hehe = 11 不合法
__ = 22 合法
alex_胡辣汤 = 88 合法,可是不要使用中文

99_piyanping = 66 不合法
99gamaoling = 180 不合法
ganmaoling_999 = 18 合法
buganmaozenmeyong_ganmaoling = 66 合法可是不要太长

'''

# 常量通常全部字母都大写
PI = 3.141592653
print(PI)
PI = 3
print(PI)

BIRTH_OF_ALEX = 1888
Q_HURT = 200
View Code

 

 

常量

在python中不存在绝对的常量. 约定俗成, 全部字⺟大写就是常量

例如: PI = 3.141592653

   BIRTH_OF_SYLAR = 1990

注释

有时候咱们写的东⻄不⼀定都是给用户看的. 或者不但愿解释器执行. 那咱们可使用#来 注释掉代码. 被注释的内容是不会执⾏的.能够⽅便后⾯的程序员来拜读你的代码

单⾏注释: # 被注释的内容
多⾏注释:''' 被注释的内容 ''', """这个也是多⾏注释"""

 

python的基本数据类型

什么是数据类型?
咱们人类能够很容易的分清数字与字符的区别,可是计算机并不不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,不然它是分不清1和‘汉’的区别的,所以,在 每一个编程语⾔里都会有一个叫数据类型的东东,其实就是对经常使用的各类数据类型进⾏了了明确的划分,你想 让计算机进⾏数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中经常使用的数 据类型有多种,今天咱们暂只讲3种, 数字、字符串、布尔类型(命题).
 

整数(int)

常⻅见的数字都是int类型. 用于计算或者⼤小的比较

在32位机器上int的范围是: -2**31~2**31-1,即-2147483648~2147483647

在64位机器上int的范围是: -2**63~2**63-1,即-9223372036854775808~9223372036854775807

够你⽤了吧. 注意这些是整数.

字符串(str)

在 Python 中,凡是用引号引发来的,都是字符串.

字符串能够用单引号,双引号,或者三引号引发来,没有什么区别,只是一些特殊的格式须要用不同的引号.

好比:
msg = "My name is Alex , I'm 22 years old!" 这个就须要单双引号配合。

msg = """

今天我想写⾸首⼩小诗,
歌颂个人同桌,
你看他那乌⿊黑的短发,
好像⼀一只炸⽑毛鸡。

"""

想多⾏赋值一个字符串,就须要三引号。

数字类型有 +-*/ 字符串有么?

字符串只有 + *。

  #字符串的拼接

    s1 = 'a '
    s2 = 'bc'

    #print(s1 + s2)

  #相乘 str*int

    name = '坚强'

    #print(name*8)

布尔值(bool)

真或者假, True和False

 

# 1. 整数(int) integer 直接写出数字就是整数
a = 10
# 查看变量的数据类型 type()
print(type(a)) # <class 'int'> class类, 类型. 类别

# 可以执行的操做, +  -   *    /    %     //   **
print(1+2)
print(1-2)
print(1 * 2)
print(1/2)
print(10/3)  # 计算机中是没法准确的表示一个小数的
# 1-1000000000  明确的数字的个数的
# 0-1 0.01  0.1 0.001 0.0001 0.0000001  0.99  0.991
# 0.0001 * 100000 => 10 / 100000
print(10%3) # 10/3 = 3......1 # 帮咱们求某个数是不是xxx的倍数
print(5%2) # 不能整除
print(99999999999 % 100000000000000) # ???  9999/10000 = 0....9999
print(10//3) # 整除. 地板除
# 2048
print(2**0) # 1
print(2**1) # 2
print(2**2) # 4
print(2**3) # 8
print(2**4) # 16
print(2**5) # 32
print(2**6) # 64
print(2**7) # 128
print(2**8) # 256
print(2**9) # 512
print(2**10) # 1024G = 1T


# 字符串(str) string, 用单引号, 双引号, 三引号引发来的内容都是字符串
a = """今每天气不错, 外面一点儿雾霾都没有!"""
print(type(a)) # 查看数据类型  <class 'str'>

a = '床前明月光, \n疑是地\n上霜, \n举头望明月, \n低头思故乡'  # \n 转义字符. 换行
print(a)


# 字符串的相关操做(初步了解)
# + 字符串的链接
# * 数字   字符串重复n次

a = "周杰伦"
b = "昆凌"

print(a + "不喜欢" + b) # 拼接操做

print(a + 10)  # str和int不能相加
a = "alex"
print(a*20)

# 布尔值(bool) boolean 命题  True真命题, False假命题
# bool值用来作判断的. 没有操做
# alex是一我的  真的
# wusir是一个品德高尚的人  假的

a = 1>2
print(a) # False

b = 33 > 22
print(b)

print(type(a))  # <class 'bool'>
View Code

 

 

用户交互

使用input()函数,可让咱们和计算机互动起来

语法:

内容 = input(提示信息)

这里能够直接获取到用户输入的内容

 

print("开始")
# = 赋值. 把等号右边的内容赋值给左边
s = input("这里是input:") # input输入. 让用户输入一些内容. 程序会停在这句话. 阻塞.
# input结束的时候. 会自动的收集到用户输入的内容. 把内容返回给前面的变量
print("结束")

print("用户输入的内容是", s) # print能够一次性打印多个内容

print("大哥", "你的", "", "不错")

a = input("请输入一个a:") # 获取到的内容都是字符串
b = input("请输入一个b:")
# print(a + b) # 拼接
# 经过类型转换把字符串转换成int

c = int(a) # int: 整数 把字符串转化成int
d = int(b)
print(c + d)

a = int(input("请输入一个a:")) # 获取到的内容都是字符串
b = int(input("请输入一个b:"))
# print(a + b) # 拼接
# 经过类型转换把字符串转换成int
print(a + b)

a = 10
b = 20

print(str(a) + str(b))
View Code

 

 

 

流程控制if语句

你在⽣活中是否是常常遇到各类选择,好比玩⾊子,猜⼤小,⽐如选择⾛走那条路路回家?Python程序中也会遇到这种状况,这就⽤到了if语句。

 

# if 若是. 条件的判断

'''
if 条件:
    if语句块
当条件成立的时候会执行if语句块, 若是条件不成立. 不执行语句块的内容

'''

money = int(input("请输入你兜里的钱:")) # 300

# if..else
if money > 500:
    print("吃烧烤")
    print("喝啤酒")
    print("找好朋友聊聊天")
else:  # 不然. 条件不成立
    print("吃泡面")
    print("盖浇饭")
    print("老干妈+馒头")

# if...elif...else
if money > 500:
    print("吃烧烤")
    print("喝啤酒")
    print("找好朋友聊聊天")
elif money > 400:  #  不然. 若是xxxx
    print("火锅")
    print("酱牛肉")
    print("锅包肉")
# elif money >10:
#     print("呵呵")
elif money > 300:
    print("路边摊")
    print("大宝剑")
elif money > 200:
    print("麻辣香锅")
    print("盖浇饭")
elif money > 100:
    print("烤冷面")
else: # 小于100
    print("饿着")

# if...elif...else 有一个成立了.其余的都不走了
print("没钱了")



# 90 -> 优秀(A)
# 80 -> 良好(B)
# 70 -> 中等(C)
# 60 -> 及格
# 60 如下 不及格
# 优秀, 良好, 中等, 及格, 不及格

score = int(input("请输入你的分数:"))
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("中等")
elif score >= 60:
    print("及格")
else:
    print("不及格")



# if 嵌套
print("咣咣咣")
gender = input("请输入你的性别:")
if gender == "": # = 赋值     == 判断
    print("去隔壁. alex等着你")
else: # 不是男
    ask = input("请问是包租婆么?")
    if ask == "":
        print("去隔壁, alex等着你, wusir也在!")
    else: # 不是包租婆
        height = int(input("请问你多高了"))
        if height > 200:
            print("太可怕了. 去隔壁, 去隔壁")
        else:
            print("西瓜又大又甜!")
# 嵌套的层数不要太多. 通常不超过3-5层


# 弱类型
a = 10
print(type(a))
a = "胡辣汤"
print(type(a))
View Code

 

 

 

第一种语法:
  if 条件:        #冒号是将条件与结果分开。

    结果1。 # 四个空格,或者一个tab键,这个是告诉程序满⾜这个条件的

  结果2。

若是条件是真(True) 执⾏结果1, 而后结果2, 若是条件假(False) 直接结果2

 

 

第二种语法:

If 条件:

  结果1

else:

  结果2

代码3

 

第三种语法:

If 条件1:   

  结果1

elif 条件2:

  结果2

......

else:

  结果n

 

第四种语法(嵌套):

If 条件1:

  结果1
  If 条件2:

    结果2

  else:

    结果3

else:

  结果4
能够无限的嵌套. 可是在实际开发中,尽量不要超过三层嵌套

 

 

流程控制-while循环

在生活中,咱们遇到过循环的事情吧?好比循环听歌。在程序中,也是存在的,这就是流程空语句while。

模拟一下循环听歌:

while True:

  print('咱们不同')

  print('咱们都同样')

  print('有啥不同')

语法:
while 条件:

  结果
若是条件是真, 则直接执⾏结果. 而后再次判断条件,直到条件是假,中止循环.

那咱们怎么终止循环呢?

结束循环: 1,改变条件. 2,break

 

流程控制-break和continue

1, break: 马上跳出循环. 打断的意思

2, continue: 停⽌本次循环, 继续执⾏下一次循环. 

while True:
    content = input("请输入你要喷的内容, 输入Q退出")
    if content == "Q":
        # 退出程序 打断循环
        break # 直接跳出循环
    print("你对打野说:", content)



if True:
    print("娃哈哈")


# 最多喷三次
count = 1
while count <= 3:

    # count = 1  # 次数, 死循环
    content = input("请输入你要喷的内容")
    print("你要对上单说:", content)

    # 改变count
    count = count + 1





# continue
while True:
    content = input("请输入你要喷的内容, 输入Q退出")
    if content == "":
        continue # 中止当前本次循环. 继续执行下一次循环  不会完全终止循环,只是中断不会终止.
    if content == "Q":
        # 退出程序 打断循环
        break # 直接跳出循环
    print("你对打野说:", content)

# 可以让循环退出: 1. break  2. 改变条件

# continue  中止当前本次循环. 继续执行下一次循环
# break  完全的干掉一个循环




# 让程序从1数数, 数到100
count = 1
while count <= 100:
    print(count) # 1
    count = count + 1


# 计算 1-100之间全部的数的和
sum = 0                 # sum: 0 + 1 + 2 + 3 + 4....99 + 100
count = 1               # count: 1, 2, 3, 4, 99,100, 101
while count <= 100:
    sum = sum + count  # 累加运算
    count = count + 1
print(sum)



# 数数. 1-100奇数
# 方法1
count = 1
while count <= 100:
    print(count)
    count = count + 2

# 方法2
count = 1
while count <= 100:
    if count % 2 == 1:
        print(count)
    else:
        print("偶数....")
    count = count + 1
View Code

 

 

今日做业及默写

今日做业及默写

相关文章
相关标签/搜索