Python基础
Python是解释型语言,便于移植,执行效率没有编译型语言高。
计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,
所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。
编译型语言:使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,
并包装成该平台所能识别的可执行性程序的格式。
特点:
在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,
如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,
以后运行时不需要编译,所以编译型语言执行效率高。
总结:
1.一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;
2.与特定平台相关,一般无法移植到其他平台;
3.现有的C、C++、Objective等都属于编译型语言。
1、字符编码
Python解释器在加载.py结尾文件中的代码时,会对内容进行编码(默认ASCILL)美国标准信息交换代码,
主要用来显示现代英语和其他西欧语言,其中最多只能用8位来表示,即2*8-1=255,所以ASCILL最多只能表示255个符号
1980 GB2312 支持7000多汉字符 1995 GBK1.0 2W多汉字 2000 GBK18030
ISO统一字符集Unicode
utf-8 可变长字符集,存一个英文 1个字节,一个中文字符占3个字节
python设置文件编码的方式:
1、使用#coding=<编码名称>的方式设置;
2、使用#-- coding: <编码名称> --的方式设置;
现在Python2.x版本默认是ASCII码。 执行带有中文的代码,需要在代码上方添加 # -- coding:utf-8 --
Python3默认支持utf-8字符集
#打印系统默认编码
import sys print(sys.getdefaultencoding())
2、编译型与解释型语言区别
编译型:一次性,把所有代码编译成机器能识别的二进制码,在运行
代表语言:c,c++
优点: 执行速度块
缺点: 开发速度慢,调试周期长
解释型:代码从上到下一行一行解释并运行
代表语言:python,php
优点: 开发效率快,调试周期短
缺点: 执行速度相对慢
linux 操作系统默认支持python语言,可直接使用
解释型语言:使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。
特点:
解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,
所以只要某一平台提供了相应的解释器即可运行该程序。
总结:
1.解释型语言每次运行都需要将源代码解释称机器码并执行,效率较低;
2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;
3.Python等属于解释型语言。 其实是先编译后解释,先生成pyc文件,预编译后的字节码文件。
pycodeobject是编译器真正编译的结果。
pyc就是pycodeobject一种持久化保存方法
下次执行直接找pyc文件,如果存在,在判断pyc最后修改时间与源代码修改时间对比,源代码新,就重新编译
pyc文件新就不用重新编译了
python常见的解释器:
Cpython 基于C语言的官方解释器,日常使用
Ipython 基于Cypython开发的交互式解释器
pypy 基于python 语言开发的解释器
jython 翻译成java字节码执行
编译型与解释型,两者各有利弊
前者由于程序执行速度快,同等条件下对系统要求较低,
因此像开发操作系统、大型应用程序、数据库系统等时都采用它,
像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,
而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、
对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,
如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。
编译型的语言包括:C、C++、Delphi、Pascal、Fortran
解释型的语言包括:Java、Basic、javascript、python
动态语言与静态语言:
动态语言:是在运行期间做数据类型检查,也就是说动态语言编程时,永远不用给任何变量指定数据类型
该语言会在你第一次给变量赋值时,在内部将数据类型记录下来,典型的动态类型语言:Python
静态语言:数据类型是在编译期间检查的,也就是在写程序时要声明变量的数据类型,C C++java等属于静态类型语言
强类型定义语言:一旦变量数据类型被定义,如果不经过强制转换,那么它永远就是该类型了,强类型语言是类型安全语言
弱类型定义语言:数据类型可以被忽略的语言,一个变量可以赋不同类型数据类型的值 如shell,perl js等
Python是强类型语言
3、python解释器安装
官网下载解释器:
pycharm中解释器配置:
python Windows安装:
创建项目时,解释器选择我们自己安装的python
4、代码注释
单行注释: 前面加# 单行注释也可以放在一行代码的后面
pycharm里面单行注释快捷键 ctrl + /
notepad++里面设置语言为python的注释是ctrl + q
多行注释:首行,尾行加三个引号’‘’ 可以是三个单引号’‘‘内容’’’ 也可以是三个双引号 “”" 内容 “”" pycharm推荐使用三个双引号
(1)注释的分类 : 1.单行注释 2.多行注释
1.单行注释 以#号开头 ,右边的所有东西都被当做说明文字 ,程序不进行编译运行。 print(‘hello world’) 2.多行注释 三个单引号 或 三个双引号 ''' 这是第一行 这是第二行 '''
(2)注释的注意点
如果外面使用三个单引号,里面使用三个双引号,反之亦然。
(3)注释的排错性
先注释一部分代码,然后执行另外一部分,看看是否报错,逐层缩小报错范围,找到最终错误点。
#注释: 就是对代码的解释,方便程序员阅读代码 , 被注释的代码不执行.
1.注释的分类: 单行注释 , 多行注释
#单行注释
#python2.x print "hello,world" #python3.x print("hello,world") #notepad: ctrl + q pycharm: ctrl + / #快捷键 : ctrl + z 撤销 ctrl + y 反撤销 #print("hello,world")
#多行注释 ‘’’ “”"
''' print("今天是python32期,python上课第一天") print("总体学员人数,40人左右") print("同学们上课积极踊跃,非常认真") print("在半年之后,都要找一份满意的工作") print("希望同学们养成吃苦耐劳的习惯,好好的学习python") print("在未来,可以靠python大放光彩") ''' """ print("今天是python32期,python上课第一天") print("总体学员人数,40人左右") print("同学们上课积极踊跃,非常认真") print("在半年之后,都要找一份满意的工作") print("希望同学们养成吃苦耐劳的习惯,好好的学习python") print("在未来,可以靠python大放光彩") """
2.多行注释的注意点
如果原来代码本身就有了注释,现在想把之前注释的代码,和现在上下文的代码都注释掉,则需要注意:
''' 如果里面嵌套的是三个单引号,外层使用三个双引号 如果里面嵌套的是三个双引号,外层使用三个单引号 单双引号要岔开 ''' ''' print("今天是python32期,python上课第一天") print("总体学员人数,40人左右") print("同学们上课积极踊跃,非常认真") print("在半年之后,都要找一份满意的工作") """ print("希望同学们养成吃苦耐劳的习惯,好好的学习python") #这是原来注释的代码 """ print("在未来,可以靠python大放光彩") ''' """ print("今天是python32期,python上课第一天") print("总体学员人数,40人左右") print("同学们上课积极踊跃,非常认真") print("在半年之后,都要找一份满意的工作") ''' print("希望同学们养成吃苦耐劳的习惯,好好的学习python") ''' print("在未来,可以靠python大放光彩") """
3.注释具有一定的排错性
""" 如果代码在某行有报错, 先用注释包裹报错附近的一份部分代码,查看是否报错,如果程序不再报错,那出错的地方就在包裹的代码里面 如果不报错,缩小注释范围,再去一行一行进行排查, 直到找到错误为止,以此类推... """ """ print("今天是python上课第一天") print("总体学员人数,40人左右") print("同学们上课积极踊跃,非常认真") """ print("在半年之后,都要找一份满意的工作") print("希望同学们养成吃苦耐劳的习惯,好好的学习python") print("在未来,可以靠python大放光彩")