编程语言的发展史:

  1.机器语言  站在计算机角度,直接用二进制跟计算机直接沟通,直接操控硬件

    优点:计算机能够直接读懂,运行速度快

    缺点:开发效率低

  2.汇编语言  站在计算机角度,用简单的英文标签标识二进制,直接操作硬件

    优点:开发效率高于机器语言

    缺点:运行效率低于机器语言

  3.高级语言  站在人的角度 php,c++,c#,python,go

    1.编译型:(类似谷歌翻译)

      整段代码一次性翻译,翻译之后多次运行,编译的过程需要用到编译器    

      一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;

      与特定平台相关,一般无法移植到其他平台;

      优点:执行效率较解释型高

      缺点:开发效率较解释型低

    2.解释型:(同声传译)python

      代码一行一行翻译

      解释型语言每次运行都需要将源代码解释成机器码并执行,效率较低;

      只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植

      优点:开发效率较编译型高

      缺点:运行效率较编译型低

  ps:学习难度:机器语言>>>汇编语言>>>高级语言

    执行效率:机器语言>>>汇编语言>>>高级语言

    开发效率:高级语言>>>汇编语言>>>机器语言

python崇尚优美,清晰,简单

涉及领域:

  web开发,爬虫,云计算,人工智能,自动化运维,科学运算,游戏开发

下载python解释器>>>设置环境变量(系统查找文件所有路径的配置)

多版本共存要找到安装目录下的python.exe文件,复制一份,命名python2.exe或python3.exe,保留原版

python程序:

  python程序运行的两种方式:

    1.交互式:

      优点:输入内容立刻就有对应的返回值

      缺点:无法永久保存

    2.命令行(文件的形式):

      优点:可以永久保存

      缺点:运行文件较麻烦

  ps:文件的后缀名仅仅只是给人看的。

  运行一个py文件需要走的步骤:

    1.将python解释器代码从硬盘读取到内存

    2将py文件从硬盘读取到内存

    3.解释器解读py文件的内容,解释成计算机能识别的语句

    (如果是普通文件,仅仅只会将内容展示给用户查看,不会检测翻译内容)

IDE开发编辑器:

  pycharm仅仅是一个方便我们开发python程序的工具

--------------------------------------------------------------------------------------------

注释是代码之母!

变量:

  1.什么是变量:

    量:衡量/记录事物的状态/特征

    变:这种状态特征是可以变化的

  2.为什么要有变量:

    帮助记录保存事物的某种状态特征

  3.变量的定义:

    变量名:是访问变量的唯一方式

    赋值符号(=):建立变量名与变量值的绑定关系

    变量的值:通过变量名访问

    变量必须先定义再引用,变量名不加引号

  4.变量的三要素:

    1.  id() :返回一串数字,可以看作的变量值的地址

    2.  type():返回的是该变量值对应的数据类型

    3.  value() :该变量执行内存当中数据的值

name = 'waller'
age = 24
print(name)
print(age)
print(id(name))
print(type(name))
print(id(age))
print(type(age))

输出:
waller
24
2236154225360
<class 'str'>
1958047936
<class 'int'>

变量三要素

  5.变量命名规范:

    1.只能包含数字,字母,下划线

    2.不能以数字开头

    3.关键字不能作为变量名

    4.变量名对值有描述性(见名知意)

    变量名两大流派:

    驼峰体:userName

    下划线体:user_name

  6.常量:

    python内没有常量,通常将全大写的变量名看作常量,python程序员约定俗成的

  7.小整数池:

    内存中已经规划出了固定的空间存放

    

a = 257
b = 257
id(a)
2919979319120
id(b)
2919979576208
c = 256
d = 256
id(c)
1642892736
id(d)
1642892736

小整数池

垃圾回收机制

  1.引用计数:内存中的数据没有任何变量名绑定时,会被回收

  2.标记清除:当内存被某个程序快要占满时,自动触发

  3分代回收:根据值存在时间的不同,划分等级,等级越高,垃圾回收机制扫描的频率越低

    

《了解python》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. 使用命令进行Apache Kafka操作

    1.目标 我们可以在Kafka集群上执行几个Apache Kafka Operations .因此,在本文中,我们将详细讨论所有Apache Kafka操作.它还包括有助于实现这些Kafka操作的命令 ...

  2. Django框架深入了解_02(DRF之序列化、反序列化)

    序列化:将Python对象准换成json格式的字符串,反之即为反序列化 DRF的序列化使用过程: 使用drf的序列化组件 -1 新建一个序列化类继承Serializer -2 在类中写要序列化的字段 ...

  3. Python进阶:程序界的垃圾分类回收

    垃圾回收是 Python 自带的机制,用于自动释放不会再用到的内存空间: 什么是内存泄漏呢? 内存泄漏,并不是说你的内存出现了信息安全问题,被恶意程序利用了,而是指程序本身没有设计好,导致程序未能释放 ...

  4. 对JAVA工程师绝对有用的Java学习资源清单

    学习Java和其他技术的资源其实非常多,但也不是都是好的有用的,我们要取其精华去其糟粕,选择那些最好的,最适合我们的,同时也要由浅入深,先易后难.基于这样的一个标准,我在这里为大家提供一份Java的学 ...

  5. Go 协程

    Go 协程 协程与传统的系统级线程和进程相比,协程的优势在于其"轻量级",可以轻松创建上百万个协程而不会导致系统资源衰竭,所以协程也叫做轻量级线程. 在Go中goroutine就是 ...

  6. python爬取b站排行榜视频信息

    和上一篇相比,差别不是很大 import xlrd#读取excel import xlwt#写入excel import requests import linecache import wordcl ...

  7. java 正则和连接json

    前面已经写了不少关于C# 怎么使用正则,有兴趣,可以翻译成java代码. 以图片为例子: import java.util.regex.Matcher; import java.util.regex. ...

  8. C# HtmlAgilityPack+Selenium爬取需要拉动滚动条的页面内容

    现在大多数网站都是随着滚动条的滑动加载页面内容的,因此单纯获得静态页面的Html是无法获得全部的页面内容的.使用Selenium就可以模拟浏览器拉动滑动条来加载所有页面内容. 前情提要 C#HtmlA ...

  9. Unity VS2017 调试外部DLL

    之前写的C++ DLL VS2012 都可以附加进程的方式调试Unity中的调用 这次用了一个C# DLL VS2017 在Unity 2018上无法附加进程的方式调试 经过一番折腾, 主要是两个问题 ...

  10. 浮动和渐变色,定位position,元素的层叠顺序

    浮动: float 是我们网页布局的一种 浮动 可以有 left 左浮动 right 右浮动 两种 浮动的特点: 脱离正常的文档流,原本的空间不占据,浮动的标签都具有块级标签的一些特点,可以手动设置宽 ...