Hey,欢迎来到python基础语法
1.编程语言介绍:
- 机器语言
 用二进制代码0和1描述的指令称为机器指令
- 汇编语言
 汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆
- 高级语言
 1.编译型语言:C、C++、Delphi等
 执行速度快,在应用源程序执行之前,就将程序源代码“翻译”成目标代码,即机器语言,所以不依赖语言环境运行,但是应用程序一旦修改,必须修改源码,再重新编译生成新的目标文件才能执行,所以只有目标文件(机器语言的代码)而没有源代码,修改不方便,依赖编译器,跨平台差
 2.解释型语言
 应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低。应用程序不能脱离其解释器
 跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行
 对比:  2.Python解释器种类以及特点
- CPython
 这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
- IPython
 IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。
- CPython
 用»>作为提示符,而IPython用In [序号]:作为提示符。
- PyPy
 PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
- Jython
 Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行
- IronPython
 IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。3.位和字节的关系?1个字节 = 8位(二进制位)===》1Byte = 8Bit 
 CPU位数表示CPU一次处理的最大位数,32为系统最多处理32位数据
 int = 4字节
 char = 1字节
 bit 位,计算机中最小的表示单位
 8bit = 1bytes 字节,最小的存储单位,1bytes缩写为1B
 1KB=1024B
 1MB=1024KB
 1GB=1024MB
 1TB=1024GB
 1PB=1024TB
 1EB=1024PB
 1ZB=1024EB
 1YB=1024ZB
 1BB=1024YB4.PEP8 Python 编码规范:https://www.jianshu.com/p/52f4416c267d5.单引号/双引号/多引号区别:单引号和双引号没有区别, 
 多引号作用就是多行字符串必须用多引号6.注释单行# 
 多行””””””
 内置方法__doc__输出函数注释def a(): '''这是文档字符串''' pass print(a.__doc__)7.进制转换十进制转换为x进制二进制:bin(十进制) 
 八进制 **:oct(十进制)
 十六进制**:hex(十进制)x进制转换为十进制使用 int() 函数 ,第一个参数是字符串 ‘0Xff’ ,第二个参数是说明这个字符串是几进制的数。 转化的结果是一个十进制数。 
 十六进制转十进制:int(‘0xf’,16)
 八进制转十进制:int(‘17’,8)
 二进制转十进制:int(‘10100111110’,2)
 总结:其实可以看到,不管 几进制数 转换成 十进制数 ,都是用 int() 函数 。之后后面的 第二个参数 写清楚 前面字符串 是 几进制数就可以 。注意一定要合法。 比如2进制数就不能出现2这样的字符。
 遗漏: 二进制,八进制,十六进制,全是str 类型,而十进制为 Int 类型8.IP网段企业规模越来越大,从原来的十几台,到几十台,几百台。那么所需的IP地址数量也越来越多。我们都知道C类一个网段的IP地址数为0-255,除去0和255,只能有254台电脑,如果超过254台电脑,就需要增加IP地址,如何增加IP地址呢,为此就需要子网掩码。 
 IPv4的地址由四段数字组成(以后将扩充更改),常分为三类IP:
 A类:0.0.0.0到127.255.255.255
 B类:128.0.0.0到191.255.255.255
 C类:192.0.0.0到223.255.255.2559.python逻辑运算符’and’/’or’/’not’1.‘and’、‘or’和‘not’的优先级是not>and>or 
 2.逻辑操作符and 和or 也称作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation):从左向右解析,一旦结果可以确定就停止
 and:运算符必须所有的运算数都是true才会把所有的运算数都解析,并且返回最后一个变量
 or:即只要有一个是true,即停止解析运算数,返回最近为true的变量,即 3 or 4,值为3;改变顺序4 or 3 即为4
 *总结:
 对于and,如果没有假值,返回的是最后一个真值,如果有假值,则返回的是第一个假值。
 对于or,如果没有真值,返回的是最后一个假值,如果有真值,则返回的是第一个真值。10.python独有语法:while。。。。else。。。当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句 11. id()函数用于获取对象内存地址。12. is/is notx is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False 
 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。13.深浅拷贝copy:https://zhuanlan.zhihu.com/p/25221086浅拷贝仅仅复制了容器中元素的地址(原变量中元素经过改变,拷贝变量中的不变类型不会改变,可变类型同步改变) 
 浅拷贝是在另一块地址中创建一个新的变量或容器,但是容器内的元素的地址均是源对象的元素的地址的拷贝。也就是说新的容器中指向了旧的元素( 新瓶装旧酒 )。
 深拷贝,完全拷贝了一个副本,容器内部元素地址都不一样
 深拷贝是在另一块地址中创建一个新的变量或容器,同时容器内的元素的地址也是新开辟的,仅仅是值相同而已,是完全的副本。也就是说( 新瓶装新酒 )。14.执行python脚本的方法:1.通过命令: python ./hello.py 
 2.在linux/unix系统中,在脚本顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行:
 #! /usr/bin/env python3
 然后修改脚本权限,使其有执行权限,命令如下:
 $ chmod +x hello.py 执行以下命令: ./hello.py
 3.在IDEL中运行
 判断题:
 现有如下两个变量,请简述 n1 和 n2 是什么关系?
 n1 = 123456
 n2 = n1
 » n1 is n2 »True
 n1为一个地址,n2为一个地址,n1指向123456,n2 = n1时,n2也指向123456
 此优化方案只针对短字符和数字[-5,257),超过这个就要开辟新的内存空间进行存储15.常用编码介绍 16.python Number数字函数abs(x):返回数字的绝对值,如abs(-10) 返回 10 
 round(x [,n]):返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。如round(80.264, 2) : 80.26
 import math
 ceil(x):函数返回一个大于或等于 x 的的最小整数,如math.ceil(4.1) 返回 5
 floor(x):返回数字的下舍整数,如math.floor(4.9)返回 4
 modf(x):返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。如math.modf(100.72) : (0.7199999999999989, 100.0)
 sqrt(x):返回数字x的平方根。如math.sqrt(100) : 10.0
 数学常量
 pi 数学常量 pi(圆周率,一般以π来表示)
 e 数学常量 e,e即自然常数(自然常数)。17.字符串常用方法:01.[ x: y: z]切片,从x切到y,每间隔z取一次值 
 02. 
 repalce:s.replace(‘h’,’H’)替换
 str.capitalize()首字母大写
 decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 ‘utf-8’。
 encode() 方法以指定的编码格式编码字符串
 str.isdigit()检测字符串是否只由数字组成。
 str.join(sequence)将序列中的元素以指定的字符连接生成一个新的字符串。隐含作用:把序列(列表/元组)转换成字符串
 str.lower()权转换为小写
 startswith(substr, beg=0,end=len(string))检查字符串是否以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
 strip()/lstrip()/rstrip()用于移除字符串头尾指定的字符(默认是清除两边的空白符,例如:/n, /r, /t, ‘ ‘)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
 swapcase()将字符串中大写转换为小写,小写转换为大写18.列表:http://www.runoob.com/python3/python3-list.html 19.元组:Python 的元组与列表类似,有序,可以通过索引取元素,不同之处在于元组的元素不能修改。 
 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
 内置函数:
 len()
 max()
 min()
 tuple()将列表转换成元组
 元组不能修改元素,但能够通过‘+’连接元组
 元组不能删除元素,但能通过‘del’删除元组20.可变类型与不可变类型:可变:list/dict/set,能够通过索引进行值的修改 
 不可变:数字类(bool/int/float/complex)、字符串str、元组tuple、frozenset。能通过索引获得值,但不能进行修改,修改后id()内存地址发生改变
 可变的数据类型是不可以被hash(返回一个固定长度的值)的21.字典:http://www.runoob.com/python3/python3-dictionary.html01.  22.集合set:http://www.runoob.com/python3/python3-set.html集合(set)是一个无序的不重复元素序列,且元素必须可hash(不可变类型) 
  
 作用:用来去重a = set(‘abracadabra’) »{‘a’, ‘r’, ‘b’, ‘c’, ‘d’}
