python基础-1

1.语言分类基础

  解释型(兼容性较好速度偏慢--接口,脚本)

  编译型(编译后的机器码执行速度快--数据库,系统)

  静态语言:变量定义需要声明类型(C ,C++ ,JAVA)

  动态语言:变量第一次定义内部记录类型(python ,ruby)

  强类型定义语言:严谨,不经过强制转换 ,变量不会变换数据类型

  弱类型定义语言:方便易出错,如shell的字符串可以当数字处理

 

2.python的优缺

  简单,开发效率高,可移植,可扩展

  速度慢,不加密,多线程无法利用多核优势(GIL锁.CPython导致)

 

3.python的注释

  #单行    """多行"""

 

4.字符编码 ,二级制排列组合 ,转为可读字符(json序列化--->encode编码传输          decode解码--->json反序列化)

  ASCII码  美国编码  

  GB2312  中国编码  

  GBK     中国编码    

  Unicode  万国编码 存储时消耗空间 py3内存中全部是unicode编码,需要转码传输 (文件中读取,在内存会被转为unicode)

  UTF-8   可变长万国码 en:1bit    cn:3bit  用于传输存储

  变量.encode('编码格式')   变量.decode('解码格式')

  json可以将各种数据类型转换为str ,str可以通过encode装换成byte ,在网络中传输 

 

5.python基础命令


hostname = input('主机名:')                  #交互定义变量

print(type(hostname))                     #type()打印变量数据类型

hostname = '{}-{}'.format('master',1)        #format()用于格式化 ,用于拼接

 

6.python的运算符

  算数运算: + - * / % ** //             #加减乘除取余次方取整

  赋值运算: +=  -=  *=  /=  %=  **=  //=       # a += b    =>   a = a + b 

  比较运算: ==  !=  >=  <=  < >

  成员运算: 

a = 'name'
b = [1,2,'name']
c = {'name': 'lucy', 'age': 3}
if a in b and a in c:          # 判断变量是否为成员 ,判断变量是否为字典key值
    print('ok')

  逻辑运算: and   or  not            #与或非 ,优先级: () > not > and > or

    x or y 如果x为真返回x ,否则返回y简单 (x为真返回x ,其他返回y) 

    x and y 如果x为真返回y ,否则返回x简单 (x为真返回y,其他返回x)

    混合:先比较运算算出bool值 ,根据bool值逻辑运算

print (not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6  and 10 or 4 and 3 or 10 or 0 and 3 and 4 or 0)

 

7.python循环体 

range(100, 0, -2)             #反向取值 ,需要步长为负号 (顾头不顾腚)

range(0, 100,  2)             #正向取值 ,步长为正(顾头不顾腚)

continue , break              #终端本次循环 ,退出当前循环体 

 

8.python的基础数据类型(索引0起步)

len(变量)                  #查看长度 ,int除外

id(变量)                   #查看变量内存地址唯一

isinstance(变量 ,数据类型1)          #判断变量是否为对应数据类型 ,返回bool值

  str字符串(不可变数据类型,可哈希,可迭代,对字符串的操作都需要返回新的字符串改变)

str.join('list')              #将list中元素 ,使用str1全部拼接起来 ,list的数据必须是str类型  

str.upper()                #将字符串字母全部大写

str.lower()                #将字符串字母全部小写

str.split()                 #从左以空格为分隔符切割成为列表

str.rsplit('&' ,N)              #从右以'&'为分隔符切割成为列表 ,切N次

str.replace('old','new' ,N)          #替换字符串内容 ,从左开始替换N个

str.strip('k8s')               #去除字符串前后两端的 :k 8 s 三个字符任意组合,遇到出三个字符外一端停止  (a = 'k8s&dockser&paa8s';print(a.strip('k8s')))

str.endswith('字符串') .startswith('字符串')     #判断字符串是否以一个字符串开头 或 结尾 (a = 'k8s&dockser&paa8s';print(a.endswith('8s')))

str.count('PK')               #查看字符串'PK'字符串的数量 

str[起始索引:终止索引:步长]           

  list列表(有索引,有序,可变,可嵌套,可迭代)

#增
list.append(值)         #末尾追加元素
list.insert(索引:值)       #指定索引增加元素
list.extend(可迭代对象)     #常用于列表的拼接 ,是要是可迭代对象都可以把最小元素 ,插入列表
列表合并也一直直接 + 号不过会生成新的列表对象
#删 list.pop(索引)          #删除列表指定索引数据 del list[0:2]          #切片删除 #改 list[索引] = 值         #按索引改变值 #查 list.sort(reverse=True)     #列表存int可以使用sort排序 ,reverse翻转排序  

  tuple元祖(不可变,可迭代,如果仅一个元素要加逗号)      

#拼接元组
a = (1, 2, 3,) b = ('b', '1', '10') c = a + b print(c)     

  dict字典(存储关系型数据很爽 ,key唯一仅为不可变数据类型str,int等 ,value可以是任意类型数据 ,默认迭代key值)

#增
dict1['key'] = value                   #新增或覆盖
dict1.setdefault('name' ,'quguanwen')       #新增或不该变原值

#删
dict1.pop('key')                  #可删除指定key ,并返回value
del dict1['key']                  #删除指定key

#改
dict1['key'] = value                   #新增或覆盖
dict2.update(dic1)                #dict2字典内容根据dic1改变 ,该修改的修改,该新增新增 ,但不会删除dict2字典内容

#查
dict1.get('key')                  #相较于dict1['key']不会报错
dict1.items()                    #将字典的所有kv以元祖的方式放入列表中 ,可以循环取值 ,解构分别赋值
dict1.values()                  #将字典的所有值放入列表
dict1.keys()                   #将字典的所有key放入列表    

  set集合(存储不可变数据类型 , 无序不重复)

list1 = [1, 2, 3, 1, 21, 2, 1, 3, 4, 1, 2]
set1 = {1, 2, 3, 4}
set2 = {4, 5, 6, 7}

# set集合给list去重
s1 = set(list1)

# set两集合交集
set3 = set1 & set2

# set两集合并集
set3 = set1 | set2


# set两集合差集
set3 = set1 - set2 # 取出set1多与set2的元素

 

9.深浅拷贝

import copy

l1 = [1, 2, 3, [11, 22, 33]]
l2 = l1.copy()                      # 浅拷贝 ,第一层拷贝一人一份 ,第二层还是共用
l3 = l1                               # 赋值 ,完全指向二者指向同一内存地址
l4 = copy.deepcopy(l1)            # 深拷贝 ,完全独立一份
l1[0] = 0
print(l1, id(l1))
print(l2, id(l2))
print(l3, id(l3))
print(l4, id(l4))                 

 

 

 

posted @ 2019-07-09 16:00  屈冠文  阅读(165)  评论(0编辑  收藏  举报