Python基础网络学习个人笔记2

pickle.dump(内容,文件)  压包 undump解包
pickle.load()  #读
import struct
##tcp头部
struct.pack('>i4sh',7,b'spam',8)  #压包
#网络字节序 高位>低位;;    C+/
i 整数 4个字节  h 为2个字节

赋值 语句  :::::::::::::::
程序--模块---语句---表达式--建立并处理对象
#变量在引用前必须先赋值;;;;;隐式赋值(导入模块、函数、类)
x,*y,z = python
x=p  y= [ytho] z=n
b=a[:]  ;;; c=b.copy()   #复制
x +=1  
可变 :: [] {}


变量:下划线字母开头;;非法:1 $  @ ! 

保留字::  颜色 ::::
False class finally is return None
continue for lambda try True def from
nonlocal while and del global not with
as elif if or yield assert else import pass 
break except in raise    33
#产生迭代器:: yield x ** 2
def f():
    list = range(3)
    for i in list:
        yield  i ** 2
s = f()
for i in s:
print(i)
############################################ 
 L = L.append(4) ##操作返回值append返回值为None ;L为空
 L = None
 排序 : L.sort()  L.reverse()
###################### 
print(1,2,3,sep='')  #sep分隔符
print(1,2,3,end='')  #结尾显示
print(1,2,3,file=open('1.txt','w').read()) #存入文件
flush   清空缓存马上打印 ;;;;;;
print('%s love %s'  %  (a,b))
print('%s:%-.4f,%05d' % ('Result',3.141,32))

import sys 
T = sys.stdout
sys.stdout = open('','a')
print('123')
sys.stdout.close()
sys.stdout = T
print(open('','r').read())
 
sys.stdout.write()


控制语句 ::::::::::::if  elif else


if  :
elif :
else:

*********缩进一样一个语句*********
python3混合支持不了  空格 +Tab
打印文档字符串 : print(qytang.__doc__)
print(square.__doc__)
三元表达式::A = Y if X else Z 

C + C
while  : 应用场景等待 希望事件出现

    break    #强行跳出 不执行else
    continue  #强制进下一次循环
    s = [1:]  print(s,end='')
else:
0-10偶数 :
x = 10
while x:
    x -=1
    if x % 2 != 0:
        continue
    print(x,end='')
    字典  for x,y in d.items():
                     d.keys()   d.values()
+  str  int  bool fool同类型   ,不需要转化

for  遍历可迭代对象::::::数字除外::::
支持  break  continue:::
字典 .key(键):    .values(值):  x,y  .items(键和值)
''' 找到2个清单相同的内容print(list(range(0,10,2)))

i = ['aaa',111,(4,5),2.01]
t = ['bbb',333,111,3.14,(4,5)]
r = []
for a in i:
    for b in t:    # if a in t:
        if a == b:     #r.append(a)
            r.append(a)
print(r)  

#函数  ::::::::::::::::::::
返回值   清单  

def  name(a,b):
    return value
#无return 返回None == L=L.append(4)  返回None操作值 

def s(x,y):
    return x * y      #print(x*y)
s(2,3)  #不显示结果  
print(s(2,3))  #显示结果

#多态::::::::::::::
#给据对象进行随机应变

求交集:

def aaa(x,y):
    r = []
    for i in x:
        if i in y:
            r.append(i)
    return r 
print(aaa(a,b))

A = 1    #外顶头定义全局变量  
#全局变量可以直接引用 ; 修改 需 global
global x  x = 99
#清单 字典 可变   
##不可变对象通过‘值’进行传递
##可变对象{}[]引用通过‘指针’进行传递
传参  ::映射  对应
定义为 默认值
def f(*s)   #一颗星为元组 参数量不确定
f(1,2,,3,,1)      
def f(**s)   #两颗星为字典 传参需映射
f(a=1,b=2)   #传递给函数本地变量

def changer(a,b):   #定义
    a=2
    b[0]='ciso'
X=1
L=[1,3]
changer(X,L)   #传参数func(value)
print(X,L)
#普通传参数func(value) #关键字传参数func(name=value)
 #所有对象封装导一个可迭代对象func(*iterable) #字典对象内func(*dict)
##def func(name=value) #设置默认值
def func(*name) #匹配和收集余下位置的参数到元组
def func(**name) #匹配和收集余下位置的参数到字典  不重复
定义函数
传参******
f(*s)     #参数量一样表示按照位置参数变量可迭代
f(**s)       #字典按照映射关系传递


##模块.py的文件::

实现共享服务 数据:::::#::::##::::::::
1.程序主目录  优先
2环境变量pythonPATH
3标准链接库  site-packags
4 .path  任何.pth文件的内容

from  .  . .python
#模块改变需要重新加载:::
from imp import reload
        reload(module1)
#############

难点须注意::::::::::::::

#在模块顶层指定的所有变量名都会变成其属性;;
if __name__ == "__main__":  独自运行程序./py 时__main__生效;导入时只运行函数部分;;;
模块是对象,并且所有的模块都有个内置属性__name__。
一个模块的name的值取决于如何应用
#1、导入模块不运行main程序:::::::::::::
#不运行main下面程序导入法import一个模块,那么模块name的值通常为模块文件名
#不带路径或者文件扩展名。
#2、直接运行.py 则运行main 
#__name__得值将是一个==特别"__main__"

模块引用 ::同目录下
#module1.py
def q(x): print('welcome to',x)

#from xx.xx.xx.module1 import *
import module1    #from module1 import */q
module1.q('ty')         #q('ty')


x=100
y=[1,2]
def chengfa():
    return x*y
if __name__ = '__mian__':
    print(x)
    print(chengfa(2,3))

#######类 :
1、面向过程::::事 ,自动化脚本。函数、模块
2、面向对象,程序 层次 战略 。
类 (继承 、组合)1重新定制2多重实例3运算符重载
'''开发工资系统:::::::::::::;

class 员工():
    def __init__(self,姓名,部门,薪水):  #初始化
        self.姓名 = 姓名 
        self.部门 = 部门
        self.薪水 = 薪水
    def  涨工资(self,增加薪水):
        self.薪水 += 增加薪水
    def 涨工资比例(self,增加比例):
        self.薪水 = int(self.薪水 * (1+增加比例)
    def __str__(self):   #内置函数协助__str__ 打印显示,并非内存位置
        return "姓名: %s, 薪水: %s" % (self.姓名,self.薪水)
    def 打印详细属性(self):
        attr = []
        attr.append('职位 = %s' % self.__class__.__name__)  #打印实例的名字  员工
        for x in sorted(self.__dict__.keys()):
            attr.append('%s = %s' % (x,getattr(self,x)))
        attr_str = ','.join(attr)
        print(attr_str)
'''


多线程thread   多进程 process ::::::::::::
进程 ==车间   独立空间
线程 == 工人  共享空间加锁

一个进程包含多个线程

#多进程::::::multiprocessing

import multiprocessing  #进程模块
import time 
import os

proceses = {}
x =1
y =2
z =3
exit_code = {}
for i in range(1,2):
    m = multiprocessing.Process(target='函数',args=(x,y,z))
    m.start()  # 进程独立出函数作用给函数传3个参数   启动进程::
    proceses[(x,y,z)] = m
    exit_code[(x,y,z)] = 66
    time.sleep(1)
    x +=1  y+=1 z+=1
print(proceses)


#什么时候结束 判断 ==0

while True:  #等什么时候结束
    ALLDONE = 0
    time.sleep(1)
    os.system('clear')  #清屏 1 s
    print('=' * 40)
    for a,b in proceses.items():  #提取建 b键值=进程
        if b.exitcode == 0:    #进程的属性值退出码
            exit_code[a] = 0
            print_string = '%-20s 计算结束' % str(a)
            print(print_string)
         else:
            print_string = '%-20s 计算ing' % str(a)
            print(print_string)
     for value in exit_code.values():   #提取所有的退出码相加
        ALLDONE +=value
     if ALLDONE == 0:
        os.system('clear')
        print('全部计算结束')
        break 


#产生一个进程:multiprocessing.Process()
#开始进程            t.start()  

#异常处理::::::try /   except:::
try:

except name: 
except (name1,name2): 
except name as var:   #方便打印 
else:
finally:   #总是执行

except Exception:  #除了系统退出事件之外的所有异常错误
except IndexError:  #索引错误,TypeError整数不能被索引str  int整数不支持索引
except TypeError as e:
    if re.match(".*'int' object is not subscriptable", str(e)):
        print('整数对象是不支持索引')
    elif re.match(".*string indices must be integers", str(e)):
        print('索引必须是整数对象')
    else:
        print('其他索引错误',e)
finally:
    print()

文件异常处理:::::  

try :    2excep Exception as e:    3 finally:
1、变量未定义异常:NameError
2、语法错误:SyntaxError
3、语法代码没有对齐:IndentationError
4、字典索引错误:KeyError
5、调用者不期望的值类型错误:ValueError
6、访问一个对象没有的树形:AttributeError
7、无法打开文件:IOError
8、无法引入模块包:ImportError
9、下表索引超出:IndexError
10、未被设置的全局变量:UnboundLocalError
11、传入对象类型不符:TypeError

# 学习语言就是要不断练习

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值