编程语言分类

机器语言

  使用二进制代码直接编程,直接与硬件交互,执行速度非常快,灵活,但是开发难度高,开发效率低下,缺乏移植性。 

汇编语言

  对机器语言指令进行了英文封装,较机器语言容易记忆,直接与硬件交互,执行速度快,执行文件小,但是开发难度相对也很高,开发效率低

高级语言

  语法简单,容易理解,开发难度低效率高,开发后测试方便,但是开发的程序需要经过转换才能执行,所以执行效率相对慢,可移植性高。

  解释执行:代码执行时候,解释器按照源代码文件中的内容,一条条解释并运行,相对编译执行速度慢,但出错方便调试,开发效率高。

    例如Python、PHP、Ruby、JavaScript等

  编译执行:程序执行前,编译器会将源代码一次性编译成机器能够识别的指令文件,然后运行编译后的文件,速度相对表解释执行要高,但是出错后修改源代码需要重新编译执行,开发效率相对低

    例如C语言、C++、GO、Swift、Object-C等

  解释执行和编译执行在执行效率上虽然有差别,但是对于当前计算机的硬件计算速度的提升,加上网络环境的限制,执行速度相对来说并不是关键,开发效率才是关键。

  像Java和C#属于混合语言,即既有编译执行也有解释执行。

Python简介

Python介绍

  Python是一门解释型编程语言,平台兼容性高,省略一堆屁话,这是笔记!!!!

  解释型语言依赖于解释器,python解释器执行代码文件的过程如下:

    打开python解释器

    python解释器从硬盘调用py文件到内存

    python解释器执行读入内存的文件代码,该过程详细为:py文件-字节码文件-解释器-机器码-执行

  python文件在执行过程中,不会保存字节码文件,每次执行py文件时候,都会先转化成字节码文件。

  python在import(导入)py文件的时候,会生成pyc的字节码文件保存下来。

Python分类

  Cpython(最常用):使用C语言实现的python,官方版本,Cpython会将源代码文件转换成pyc字节码文件使用到python虚拟机上执行

  Jpython:使用Java实现的python,将Python代码动态编译成Java字节码,然后在JVM上运行

  IronPython:Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行

  PyPy(特殊):Python实现的Python,将Python的字节码字节码再编译成机器码

  RubyPython、Brython.....

  除了PyPy外,执行流程如下图:

    代码文件首先转换层字节码文件,字节码文件流入解释器,解释器转化成机器码后执行输出。

Python解释器版本

  版本3,最新的版本为3.6.1

  版本2,最新的版本为2.7.13,2020年停止更新

Python入门

安装

Python Linux版本安装

  安装过程转 http://www.cnblogs.com/zero527/p/6920965.html

Python Windows版本安装

  双击安装,一路下一步,记得勾选自动添加环境变量

第一行代码"hello world"

解释器只用来测试代码,并不能保存代码,想要永久保存,需要将代码写入到文件中。

解释器执行:

C:\Users\Mr.chai>python
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> "hello world"     #由于解释器自带输出功能,所以输入一个字符串会自动给出输出
'hello world'
>>> print("hello world")  #print为输出,输出的内容是括号中的内容
hello world
>>>

py文件执行:

创建一个hello.py文件,内容写入print("hello world")

C:\Users\Mr.chai>python C:\hello.py
hello world

python文件头(linux)

在linux执行hello.py文件,也是用python 路径/hello.py,但是在linux可以用./方法执行文件,直接执行./hello.py,会报错,原因是找不到解释器,所以要在hello.py文件中加一个头部信息,标识解释器位置

#!/usr/bin/env python #该行只对linux有效,表示/usr/bin/所有的python解释器,可以指定一个如:/usr/bin/python
# -*- coding: utf-8 -*- #指定字符编码
print('hello world')

内容注释

注释为说明性文字

#  单行注释

''' str...str '''    三引号为多行注释

模块功能导入

import sys    导入系统模块,允许该文件运行扩展的系统功能

变量

变量是用来表示程序运行时候改变的状态的,是一个抽象的概念。

变量组成:

  [变量名]=[变量实际的值]

  变量名:变量命名一般字母或下划线开头,剩下的可以是字母和数字,变量名不能和关键字冲突,如print、and等系统关键字

  变量值:可以改变的值,一个变量名可以重复赋值,但是变量实际的值为最后赋值后的值,变量的值存放在内存空间

变量类型:

  局部变量:只在某一段代码中生效的变量

  全局变量:在整个程序的运行中生效的变量

变量赋值与调用:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
name="bob"  #赋值字符串
age=20    #赋值整数
print(name,age)  #输出变量
print("my name is %s,i am %s years old." % (name,age))  # %s表示占位,第一个%s调用后面括号里面的第一个变量,第二个%s调用第二个变量

重复赋值指的是改变变量名的引用,引用的值改变了。变量没有储存数据的功能,实际的值放在内存空间中,

当内存空间的值没有了引用,引用计数为0的将变成垃圾被回收

id后面跟变量,查看内存id号

>>> a=1
>>> id(a)
1379185728
>>> b=1
>>> id(b)
1379185728

变量占用的内存空间比较小的,不再开辟内存空间,将直接引用,如果占用的内存空间大,那引用的过程中将开辟新的内存空间,这是python的一种优化机制

>>> a="abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz"
>>> id(a)
2884867588944
>>> b="abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz"
>>> id(b)
2884867588624

接触变量引用,将变量改变赋值,将解除变量的原引用,或者"del 变量"将解除变量的所有引用

常量

python里没有常量的概念,但是可以通过语法上进行提示,即变量名用大写表示

如OLDBOY_AGE=57

输入输出

python2中的raw_input()个python3中的input()功能一样,会把所有用户的输入转成str类型

>>> name=input("name:")
name:bob
>>> age=input("age:")
age:20
>>> type(name)
<class 'str'>
>>> type(age)
<class 'str'>

getpass模块,可以隐藏输入

>>> password=getpass.getpass("pass:")
pass:
>>> print(password)
123456

python2的input(),输入的值是什么类型那么就会存成什么类型。

运算符

算术运算符

比较运算符

赋值运算符

位运算符

逻辑运算符

成员运算

身份运算

运算符号优先级:自上而下,优先级从高到低

python基础之入门基础的更多相关文章

  1. 智普教育Python视频教程之入门基础篇,python笔记

    智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostna ...

  2. python渗透测试入门——基础的网络编程工具

    <Python黑帽子--黑客与渗透测试编程之道学习>这本书是我在学习安全的过程中发现的在我看来十分优秀的一本书,业内也拥有很高的评价,所以在这里将自己的学习内容分享出来. 1.基础的网络编 ...

  3. 零基础如何入门Python

    编程零基础如何学习Python 如果你是零基础,注意是零基础,想入门编程的话,我推荐你学Python.虽然国内基本上是以C语言作为入门教学,但在麻省理工等国外大学都是以Python作为编程入门教学的. ...

  4. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

  5. 《Python从入门基础到实践》

    <Python学习——从入门到实践> 第1章 Python语言概述 1.1 从计算机到编程 1.1.1 程序语言的演变:机器语言,汇编语言,高级语言 1.1.1.1 演变原因 1.1.1. ...

  6. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环

    条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...

  7. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 6. 条件

    前面的教程中,我们已经可以让小海龟绘制出各种图形了.但是,所有绘图的代码都是预先编好的,程序一旦运行起来,运行结果(绘制的图形)就是固定不变的.这一节中,咪博士将教大家如何让海龟响应用户的输入. im ...

  8. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 4. 函数

    什么样的程序员才是优秀的程序员?咪博士认为“慵懒”的程序员才是真正优秀的程序员.听起来不合逻辑?真正优秀的程序员知道如何高效地工作,而不是用不止境的加班来完成工作任务.函数便是程序员高效工作的利器之一 ...

  9. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 3. 循环

    在前面的教程中,咪博士留了一道练习题给大家—-画正方形,相信聪明的你应该已经画出来了. 下面是咪博士实现的代码. 是不是跟你的代码很像呢? import turtle turtle.forward(2 ...

随机推荐

  1. 将pugixml库编译成动态库的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 pugixml库默认是编译成静态库的.要把pugixml库编译成一个动态库,需要对代码做一些修改,具体是将 // If ...

  2. seleenium与Vs结合

    Vs 自带自动化测试录制工具.selenium则是开源的大众工具.在使用发现vs 自带的工具录制方便,但是修改很难.但是可以提供后续的BUG管理和邮件通知,自动构建等功能.selenium在.net平 ...

  3. dell omsa管理工具

    dell服务器raid管理工具 lsiutil dell sas6i/r MegaCli dell prec omsa管理raid分区 显示物理硬盘信息 omreport storage pdisk ...

  4. 用SQL将数字转换为中文数字

    IF OBJECT_ID('fn_GetChnNum') IS NOT NULL BEGIN DROP FUNCTION dbo.fn_GetChnNum; END; GO CREATE FUNCTI ...

  5. helm深入学习

    Helm把Kubernetes资源(比如deployments.services或 ingress等) 打包到一个chart中,而chart被保存到chart仓库.通过chart仓库可用来存储和分享c ...

  6. 如何启用SAP C4C OData Event Notification

    当我们在试图使用SAP C4C OData事件通知这个功能时,如果遇到下列提示消息,说明这个功能在business configuration里没有开启: The OData Event Notifi ...

  7. [转载]Memcached缓存服务的简单安装

    1.Linux下的安装方法 下载:wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x. ...

  8. DOM(一):节点层次-Node类型

    Node类型DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现,每个节点都有一个nodeType属性,用于表明节点的类型.节点类型由在Node类型中定义的下列12个数值常量来表示, ...

  9. centos下yum安装mysql5.6后,无法启动 MySQL Daemon failed to start

    如果是全新安装应该就不会出现这个问题,升级安装的话,要运行 mysql_upgrade ,但是启动MYSQL就报错MySQL Daemon failed to start 如此就没办法运行mysql_ ...

  10. 缓冲区溢出实战教程系列(二):dev c++编译汇编代码

    小伙伴们对我上一篇文章的反应完全出乎了我的意料,感谢大家对我的支持和认可.接下来我会精心的把这一系列课程设计好,尽量详细的展示给大家.上篇文章我列举了一个缓冲区溢出的小例子,并提到了dev c++.o ...