——编程语言的发展史

  • 机器语言

    • 优点:执行速度够快
    • 缺点:开发效率非常低
  • 汇编语言

    • 优点:执行效率相较于机器语言略低
    • 缺点:开发效率相较于机器语言略高
  • 高级语言

    • C、C++、C#、java、PHP、python、go都属于高级语言
    • 编译型:C、C++、PHP
    • 解释性:C#、python、java(先编译后解释)
  • 开发效率

    • (解释型 > 编译型)> 汇编语言 > 机器语言
  • 执行效率

    • (解释型 < 编译型)< 汇编语言 < 机器语言
  • 跨平台

    • 解释型 > 编译型

——python解释器

  Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器

  • 版本

    • python 2.*
    • python 3.*
  • 种类

    • IPython:是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互式上有所增强,但是执行python代码的功能和CPython是完全一样的。
    • Jython:原名JPython;Java语言实现的Python。Jython可以直接调用Java的各种函数库。
    • PyPy:是python开发者为了更好地Hack Python而用Python语言使用的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译,因此运行速度比Cpython还要快
    • IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的python解释器,可以直接将Python代码编译成.Net的字节码
  • 执行代码的两种方式

    • 交互式:cmd命令,编写python代码,即写即执行。缺点:代码易丢失
    • 命令行执行:编写好python文件,cmd命令执行。
    • 注意:python文件的后缀名py没有实际意义,是python程序员约定俗成的文件,表示该文件是python文件,实际上就是文本文件。
  • IDE工具—pycharm

    • 专门用于编写python代码的集成代码工具
    • 优点:提升开发效率
    • 缺点:比较占用内存的资源

——注释—代码之母

  • 单行注释:用【#】表示,快捷键是:Ctrl键 + / 键。取消注释也是Ctrl键 + / 键
# eg:
# 用于获取所有关键字
for i in keyword.kwlist:
print(i)
  • 多行注释:用【'''…'''】或【"""…"""】表示,输入三次单引号或三次双引号(英文键盘下)都可以
'''
eg:
用于获取所有关键字
'''
for i in keyword.kwlist:
print(i)
或者
"""
eg:
用于获取所有关键字
"""
for i in keyword.kwlist:
print(i)

——变量

  • 变:事物的庄客是可以变化的;量:描述事物的状态
  • 变量用于存取事物的变化
  • 变量的使用
    • 变量名 = 变量值
# = 不是数学定义的等于,在这里是指将10赋值给了变量num
num = 10
    • 变量的命名规范

    1. 只能由字母、数字、下划线组成,一定不要使用中文
    2. 不能由数字开头
    3. 区分大小写
    • 变量的命名风格

    1. 驼峰体   eg:UserAge = 18
    2. 下划线体(使用该种方式)      eg:user_age = 18
    • 变量的三大特性

    1. value(值)
    2. id(内存地址)
    3. type(数据类型)  
name = "dawn"
print(name) # value,输出的是name的值
print(id(name)) # id,输出的是name的内存地址
print(type(name)) # type,输出的是name的数据类型 #输出结果
dawn          # value,输出的是name的值
2281405883504     # id,输出的是name的内存地址
<class 'str'>     # type,输出的是name的数据类型

——常量

  • python中是没有常量
  • 根据实际需要,python程序员约定俗成,变量名中所有字母大写的情况下,默认为常量。通常情况,不可更改

——内存管理

  • 小整数池:

    整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。

    Python 对小整数池的定义是 [-5, 256], 这些整数对象是提前建立好的,不会被垃圾回收。

    所有位于[-5, 256]这个范围内的整数使用的都是同一个对象。

>>> a = 256
>>> b=256
>>> print(id(a))
140703921377520
>>> print(id(b))
140703921377520
>>> a = -6
>>> b = -6
>>> print(id(a))
1742149284848
>>> print(id(b))
1742119225520
>>> c = -5
>>> d = -5
>>> print(id(c))
140703921369168
>>> print(id(d))
140703921369168

——垃圾回收机制

  • 引用计数:当内存中的值引用计数为0,垃圾回收机制就会自动清除
  • 标记清除:当应用程序将内存撑满的时候,会自动停止,清除垃圾
  • 分代回收:在历经多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低。

Python基础-语法知识的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  3. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  4. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  5. Python 基础语法

    Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 ...

  6. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  7. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  8. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  9. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

随机推荐

  1. redis服务打不开--解决办法

    D:\>redis-server[11896] 04 Dec 19:20:05.122 # Warning: no config file specified, using the defaul ...

  2. 快学Scala 第三课 (定长数组,变长数组, 数组循环, 数组转换, 数组常用操作)

    定长数组定义: val ar = new Array[Int](10) val arr = Array("aa", "bb") 定长数组赋值: arr(0) = ...

  3. 创建一个 Laravel 项目

    创建一个 Laravel 项目,首先需要安装 Composer ,如果没有安装的参考 https://docs.phpcomposer.com/00-intro.html 一.安装 Laravel 安 ...

  4. springboot项目目录结构

    idea新建springboot项目 按默认下一步至完成,默认目录结构如下 pom.xml文件内容如下 <?xml version="1.0" encoding=" ...

  5. java中List、Set和Map三个接口及其主要实现类

    三个接口都在java.util包下 List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个共同的父接口,叫Collection,Map没有继承Collection接口 1.List接口: ...

  6. Feign【文件上传】

    话不多说,上代码.... 项目公共依赖配置: <parent> <groupId>org.springframework.boot</groupId> <ar ...

  7. day 20

    目录 一.继承初体验 二.寻找继承关系 三.继承背景下对象属性查找顺序 四.派生 五.子类派生出新的属性,并重复父类的属性 六.新式类与经典类(了解) 一.继承初体验 父类: class Parent ...

  8. win10下git与gitlab安装与文件上传

    目前了解到的版本管理工具有三种:gitlab  GitHub 和 码云 个人感觉 gitlab 在公司用的较多 便于协同办公   GitHub各种资源有很多,适合个人使用   码云是中文版 便于入门 ...

  9. Python之反射机制

    什么是反射? 1.有时我们要访问某个变量或是方法时并不知道到底有没有这个变量或方法,所以就要做些判断.判断是否存在字符串对应的变量及方法.2.我们知道访问变量时是不能加引号的,否则会被当成字符串处理. ...

  10. Cocos2d-x 学习笔记(11.6) Sequence

    1. Sequence 动作序列.动作按参数顺序执行,动作总时长为每个动作的时长之和. 1.1 成员变量 FiniteTimeAction *_actions[]; float _split; // ...