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/52f4416c267d
5.单引号/双引号/多引号区别:
单引号和双引号没有区别,
多引号作用就是多行字符串必须用多引号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 not
x 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.html
01.
22.集合set:http://www.runoob.com/python3/python3-set.html
集合(set)是一个无序的不重复元素序列,且元素必须可hash(不可变类型)
作用:用来去重a = set(‘abracadabra’) »{‘a’, ‘r’, ‘b’, ‘c’, ‘d’}