自学python 编程基础知识_python学习-基础知识-1

1、计算机历史

计算机使用高低电压的两种状态来描述信息。计算机可以理解的只有二进制数据即010100011....,1个比特位可以表示的状态只有2种,n个比特位可以表示的状态有2的n次方种。

所以如果想要描述天气状态:天晴、下雨、刮风、下雪、霜冻,则需要使用3个比特位。

2、编程语言历史

计算机只能理解二进制数据,二进制数据中蕴含了很多指令、操作、数据,计算机通过cpu直接运行二进制代码执行不同的功能,二进制代码被称为机器语言。

但是机器语言(二进制代码)对于人类而言可读性太差、编写太困难,所以人类需要使用适合自身的语言来编程以操作计算机。

一开始,人类将机器语言中的代码进行分类、标记,把蕴含操作行为、蕴含数据的二进制代码使用英语单词标记,形成了汇编语言。汇编语言的模式是:操作行为+被操作数。

操作行为和被操作数都使用英语单词代替了一串010101的二进制代码,这样人类只需要编写汇编语言,再将汇编语言通过之前的映射关系转换成二进制即可。

通过汇编语言,人类即可以方便的编写代码,又可以通过转化得到对应的二进制代码让计算机运行。

但是,汇编语言依然可读性较差、编写也不是非常的方便,要实现一个简单的功能需要非常多的汇编代码,代码冗余性依然很高。

于是,人类模仿汇编和二进制的对应关系,将高级语言和汇编又对应起来,这时候人类就只需要编写高级语言,再通过编译器将高级语言转换成汇编语言或者直接转换成二进制代码。

高级语言的代码非常接近人类的英语,所以使用起来很方便。

因语法规则、语义的不同,高级语言分为很多种,如:python,java、c、c++、JavaScript,ruby等等。

3、编译型高级语言/解释性高级语言

高级语言接近人类英语,编写的代码可读性也很强,但是计算机是无法直接理解和执行源代码的,因为计算机只认识二进制代码,所以不论是哪一种高级语言,都需要将源代码转换成二进制代码后才能被计算机执行。

在转换过程中,有2种不同的情况:

1、编译型

编译型高级语言,在程序执行之前,需要提前将源代码通过编译器转换成目标文件(二进制代码),然后计算机直接执行目标文件。

优点:计算机执行效率高、速度快

缺点:

如果程序需要修改,必须修改源代码并再次编译,修改不方便

一旦编译完成,目标文件就只能在当前操作系统和cpu架构上运行,无法在其他平台使用,除非重新编译

举例:c、c++、c#

2、解释型

解释型高级语言,由解释器实时读取源代码并编译成二级制代码交由计算机执行。

优点:

程序的修改直接操作源文件即可,修改方便

只要计算机安装了对应平台的解释器,源代码就可以被执行,即一份源代码可以在不同平台运行,平台兼容性好

缺点:

因为需要实时编译,所以运行效率低、速度较慢

需要一个匹配版本和平台的解释器与源代码共同工作

举例:python、java、ruby

4、python版本

python有2个相互不兼容的大版本,版本2最高是2.7,版本3截止20180603最高是3.6.5。版本2官方宣布将会维护到2020年,建议现在选择版本3编码。

5、python解释器

解释器也是一种程序,功能是将python源代码翻译成机器语言。解释器可以使用多种语言编写,有如下几种:

cpython,官方发布的解释器,使用c语言编写

ipython,在cpython基础上套了一个壳,提高用户交互性

pypy,据说使用jit技术动态实时编译使得代码运行速度更快,但是目前暂不成熟

jpython和icronpython,使用java和.net编写,一般不使用

6、python文件执行

两种方式执行python文件,一种是启动解释器并将python源文件作为参数,解释器读取文件中代码。一种是启动解释器,在交互环境编写代码执行。

7、变量

1、变量存在的原因

用于保存阶段性计算的结果,同时变量用于描述程序中的一些数据,良好的变量命名和使用会增加代码的可读性。

2、变量命名规范

变量名可以是数字、字母、下划线的任意组合,注意:不可使用除了下划线之外的特殊字符

变量名开头不能是数字

变量名不能和python预定义的关键字重名

注意:python竟然可以使用中文作为变量名!

3、变量定义语法

age = 26

定义一个变量,它的名字是age,此变量指向内存中的一个对象,此对象值是26

8、常量

常量的命名规范和变量一样,不过常量的命名约定俗成的是全大写。

常量用于保存基本不变的数据,python没有提供类似c语言的const关键字来强制规定常量的不可变性,所以python中的常量是约定俗成的不可变。

9、python安装

www.python.org官网下载最新版本3.6.5,根据电脑配置选择32或者64位,安装的时候选择add to path并自定义安装位置和其他高级选项,安装完成可以直接shell进入python解释器。

10、输入/输出

python中通过input函数提供shell输入,通过print函数提供shell打印。

input函数会阻塞程序执行直到获取shell输入值

11、注释

不论哪一种高级语言,我们在编码的时候都是将脑海中的思路、信息、步骤简化成实际的代码。将大脑中的信息转换成实际代码的时候,会有很大的信息量丢失,即代码所表达的信息量是很少的。

所以单独的代码无法还原编码时的全部信息量,此时我们就需要使用注释来弥补代码缺失的信息量。优秀的注释+代码可以提供很高的可读性,也方便后续代码使用和维护。

注释有几个需要遵守的规范:

1、注释的内容应该保持与代码的强一致性,注释应该精简、准确的表达代码的含义、编码背景等

2、可以使用中文或者英文

3、注意注释的使用量,在适当且必要的地方使用注释,如:重要流程节点、复杂代码块解释等

12、数据类型

计算机只认识二进制,对于计算机而言,数据没有类别,全部都是010101010...

但是对于人类而言,人类世界中的数据、信息是五花八门的,我们编码的过程其实就是在计算机世界中对现实世界进行建模的过程,所以我们需要对人类世界的数据划分类别。

基础的数据类型有:数字(整数+小数)、字符串、布尔值

我们使用int来表示整数类型、float表示小数类型

我们使用str表示字符串类型

我们使用bool表示布尔值类型

数字类型用于计算、字符串类型用于表示信息、布尔类型用于判断

13、字符串格式化输出

所谓格式化输出,其实就是在编码过程中定义展示模板,在模板中通过占位符代表后续有对应数据填充在此。

占位符:

%d 整数类型

%f 小数类型

%s 字符串类型(%s是万能匹配,即任意数据类型都可以填充到%s占位符中)

%r 原格式(将数据的原始格式存放到%r占位符中,如字符串的原格式就包含引号)

14、运算符

算数运算符

+ - * / (注意,/ 除法运算符得到的商可以是小数,即5/2 = 2.5)

// % (地板除得到的结果是商的整数部分,如5//2 = 2。取模得到的结果是未整除的结果,如5%2 = 1,对2取模可以判断奇偶。)

** (幂运算,5**2 = 25)

比较运算符

== > < >= <= != (==表示的是两边对象的值是否相等,python3中使用!=表示不等于,不再使用<>)

赋值运算符

= (赋值)

+= -= *= /=

//= %= **=

(在原有值的基础上做运算,并赋值给原有变量,如a = 5, a %= 2,此时a = 1)

逻辑运算符

and or no (逻辑判断会使用短路判断,所以:使用and的时候,概率小的放前面。使用or的时候,概率大的放前面。)

15、流程控制-分支

程序默认是自上而下没有分支的执行代码。很多时候我们需要通过判断程序运行中间的某一种状态、情况、值,来决策程序下一步该执行哪些代码。

通过分支提供多条执行路线,分支有双分支、多分支。

之所以可以划分多种分支是因为可能出现多种不同条件,而这些条件的概率和应该为1。

分支需要特别注意条件判断的逻辑性,多种条件只会执行其中一个条件,条件之间是相互对立的。

通过if elif elif else来提供多分支,通过条件的布尔值结果判断条件是否成立。

注意:条件判断应该把概率大的放在前面,概率小的放后面,对于无法明确具体判断条件的可以放在else统一匹配。另外,判断input的返回值的时候注意,input返回值一定是字符串。

16、流程控制-循环-while

while关键字后面的语义是:判断条件是否成立?成立的话执行一次循环体然后再次判断条件是否成立。不成立的话跳过此循环体执行后续代码。

因为循环代码有导致死循环的风险,所以任何一个循环定义,都需要预先设计循环跳出条件。循环可以在循环体中通过break跳出,或者通过while条件判断不成立跳过。(当然,也可以在循环体中exit)

通过continue可以提前结束当前循环,直接开始下一次的循环while判断,注意:continue应用于跳过后续本应该执行的代码。

因为continue可以跳过后续本应该执行的代码,而后续执行代码中可能包含循环跳出的设置如:i += 1。所以continue的使用会有死循环风险,需要单独处理循环跳出问题。

17、while...else...

据说使用while后面的else,如果while正常执行完毕,则执行else。如果while没有正常执行完毕如被break打断,则不会执行else。可以使用else是否执行来判断循环是否正常执行完毕,我觉得这并不合理,考虑下述代码:

1 i = 11

2 while i < 10:3 print('i is:', i)4 i += 1

5 if i == 3:6 break

7 else:8 print('循环正常执行完毕')9

10 #循环没有正常执行完毕,实际上循环根本就没执行,else也被执行了。所以else被用于判断

11 #while是否正常执行我觉得并不合理。

18、while的使用

思考如下练习:

#使用while,完成以下图形的输出

#

#*#* *#* * *#* * * *#* * * * *#* * * *#* * *#* *#*

1 star = 1

2 most_star = 5

3 while star <=most_star:4 print('*' *star)5 if star ==most_star:6 while most_star >0:7 most_star -= 1

8 print('*' *most_star)9 break

10 star += 1

11

12 row = 1

13 most_row = 5

14 while row <=most_row:15 print('*' *row)16 row += 1

17 row = most_row - 1

18 while row >0:19 print('*' *row)20 row -= 1

while循环只能打印一个方向,如果是两个相反的方向,需要两个while。两个while可以写成第二个while放在第一个while的末尾。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

comparator 字符串比较大小_Java中Comparable和Comparator实现对象比较

当需要排序的集合或数组不是单纯的数字型时&#xff0c;通常可以使用Comparator或Comparable&#xff0c;以简单的方式实现对象排序或自定义排序。A comparison function, which imposes a total ordering on some collection of objects. Comparators can be passed to a sort…

html中属性的作用,html的标签中 unselectable=on 属性的作用

在IE浏览器中&#xff0c;当input获得焦点时&#xff0c;点击有unselectable"on"属性的标签时&#xff0c;不会触发onblur事件。加上该属性的元素不能被选中。< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">< html>< h…

一个控制器怎么转发到另外一个控制器_楼宇自动化系统(BAS),DDC,一个最核心的控制器...

楼宇自动化系统(BAS)&#xff0c;一个熟悉又陌生的系统楼宇自控系统(BAS系统)设有一个中央监控中心&#xff0c;系统配置一个或多个网络控制器&#xff0c;由多条总线或计算机网络将各种功能的控制器与中央工作站相连&#xff0c;完成对空调、给排水、通风、电梯等子系统的监控…

秒表计时器怎么读_秒表怎么读数

展开全部秒表的大圈为秒&#xff0c;小圈为分。若大圈是30分格(顶上写的是30&#xff0c;可能有60格&#xff0c;表明精度到半秒)&#xff0c;小圈里62616964757a686964616fe59b9ee7ad9431333431366239一分钟就分为两小格&#xff0c;读完整的几分&#xff0c;若过了一小格&…

html封装windows,windows 系统封装,打造一份属于自己的系统!

在电脑的使用过程中&#xff0c;由于我们每个人的使用习惯和使用方式不同&#xff0c;所以我们都会对Windows系统进行自己的设置&#xff0c;尤其是一些搞数码软件的&#xff0c;如果不小心系统坏了&#xff0c;重装系统后&#xff0c;还得一一去进行重新设置&#xff0c;非常麻…

daoi php_聊聊这些年用过的AOI

外面下着雨&#xff0c;我在家里宅&#xff0c;听着歌喝着去年的茶&#xff0c;无聊的很&#xff0c;开个话题聊下这些年用过的AOI。某年进入AOI这行&#xff0c;我的很多老同事都早已转行了&#xff0c;由于我没什么过人之处&#xff0c;只会死干&#xff0c; 现在还在做AOI。…

python语言例子_【Python】SimPy的使用示例-Go语言中文社区

使用SimPY进行离散事件仿真 SimPY是一个Python下的第三方库&#xff0c;可以方便的进行离散事件的仿真。仿真速度比较快。下面记录一下我的一点心得&#xff0c;不保证完全正确&#xff0c;供参考。 安装 $ pip install -U simpy pycharm可以再File | Settings | Project: Simu…

所有的图放到一个html,拖放是HTML5标准的组成部分,若想要把drag1图片放入d

dataTransfer 对象主要有两个方法&#xff1a;getData() 和 setData()&#xff0c;用来取值和保存值。setData() 方法的第一个参数&#xff0c;也是 getData() 方法唯一的一个参数&#xff0c;是一个字符串&#xff0c;表示保存的数据类型。IE只定义了"text" 或 &quo…

vue变量传值_VUE 学习——父组件传值给子组件

在我们编写前端代码时&#xff0c;经常遇到的一种场景&#xff0c;子组件需要使用父组件的值&#xff0c;这种情况下&#xff0c;我们可以使用props帮助我们进行父子组件间的通信。这里我们先模拟一个场景&#xff0c;展示如何使用。场景&#xff1a;在父组件修改值&#xff0c…

matlab 最小二乘法拟合_Scripy实现最小二乘法与股票K线回归

python的Scripy提供了丰富的数学工具&#xff0c;python的科学计算包scipy的里面提供了一个函数&#xff0c;可以求出任意的想要拟合的函数的参数。那就是scipy.optimize包里面的leastsq函数。函数原型是&#xff1a;leastsq(func, x0, args(), DfunNone, full_output0, col_de…

html 调高德地图 导航,在H5页面内通过地址调起高德地图实现导航

项目中用到的一个功能是要通过点击地址来实现打开地图app实现地址导航。如下图&#xff1a;实现思路就是在H5页面内通过点击marker图标然后进行当前位置与页面上地址的路程规划与导航。由于项目中用到的是高德地图&#xff0c;所以这里用到的是调起高德地图APP来实现该功能。首…

.jar文件如何打开_ofd发票文件如何打开

有时候大家查找文件的时候会不会觉得很心烦&#xff0c;因为经常能碰到OFD格式的文件&#xff0c;但是我们却不知道怎么打开&#xff0c;造成了很多困扰。我以前也常常遇到这样的情况&#xff0c;但是最近我发现了一个好办法&#xff0c;迫不及待地想分享给大家了&#xff0c;可…

印刷体是什么意思_家长晒出4年级小学霸课前笔记,字迹堪比“印刷体”,老师都羡慕...

目前&#xff0c;很多小学生都在家里上网课&#xff0c;为了达到最佳学习效果&#xff0c;要提前做好预习工作&#xff0c;尤其是语文这一学科&#xff0c;更需要预习。这不就有一位4年级学霸的家长晒出了孩子日常课前预习笔记。他不仅对文章进行了合理的布置和预习&#xff0c…

不使用自带函数求区域的周长_Excel表格中最强大求和函数______DSUM函数

在Excel表格中说起求和函数&#xff0c;朋友们首先会想到的是sum、sumif、和sumifs函数。这篇文章为朋友们分享最强大求和函数&#xff0c;数据库函数之DSUM函数。这个函数不仅能完成各种要求的求和&#xff0c;还可以用于查找。一.DSUM函数说明&#xff1a;1.语法&#xff1a;…

python 用if判断一个数是不是整数_Python基础教程07-函数和模块的使用

在讲解本章节的内容之前&#xff0c;我们先来研究一道数学题&#xff0c;请说出下面的方程有多少组正整数解。x1x2x3x48事实上&#xff0c;上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案。想到这一点问题的答案就呼之欲出了。可以用Python的程序来计算出这个…

计算机科学美国大学专业,2018美国大学计算机科学专业大排名

麻省理工大学麻省理工学院素以世界顶尖的工程学和计算机科学而享誉世界&#xff0c;虽然不是藤校&#xff0c;却是拥有着领先世界一流的计算机科学及人工智能实验室。麻省理工学院大学计算机硕士专业毕业生可从事集成电路应用与系统设计&#xff0c;从事信息技术与计算机应用系…

前端跨域请求get_(单点登录)跨域SSO看这篇文章就够了:前端篇

前言前俩篇文章&#xff0c;我们从概念&#xff0c;聊到了服务器中设计的内容。不知道大家是否觉得通俗易懂呢&#xff1f;接下来的内容则有些偏向前端部分。正文三、Cookie传递3.1、通过URL参数实现跨域信息传递我们要在A域实现写入token到B域&#xff0c;需要在A域设计一个se…

win10 如何锁定计算机,Win10 1909 专业版怎么锁定计算机屏幕

Win10 1909 专业版怎么锁定计算机屏幕?如果我们需要暂时离开计算机&#xff0c;但不想关机或者注销当前登录&#xff0c;那么为了防止未经授权的使用&#xff0c;我们可以将计算机锁定。在本文中&#xff0c;win10之家小编给大家分享如何自动锁定Windows 10计算机。Win10 1909…

qfile指定从多少行开始_大牛进化路上之Linux基础命令,看看你了解多少?

玩转Linux系统还是要从基础命令开始&#xff0c;基础命令是你大牛发展之路的第一步&#xff0c;扎实的基本命令操作功底才能在工作中游刃有余&#xff0c;下面我们就来看看吧。路径切换说明Linux中分绝对路径和相对路径&#xff0c;绝对路径一定是从/开始写的&#xff0c;还可能…

如何开机进入grub界面_如何进入http://192.168.1.1的设置界面 ?

登入192.168.1.1管理界面需要确保前期的硬件连接和已获知路由器的账号密码。接下来详细介绍&#xff1a;1、首先做好准备&#xff0c;检查一下是否已经连接好无线路由器和网线、调制解调器&#xff0c;要确保网络畅通、所有指示灯都正常亮着&#xff1b;2、然后打开手机设置&am…