• python学习小记


    一。python入门小计

    最近研究npm npm是基于python的依赖工具 小小研究python 并记录

    #-------- 《一》 变量定义
    # -*- coding: GBK -*-
    #############>>>>>普通变量
    sex="男"
    # 单引号和双引号是等价的 三个双引号 表示 可以换行书写字符串 或者 使用  
    myinstro="""你好
       我的同胞"""
    myName="廖
            敏"
    age=12
    #print打印多个变量不换行  多个print之间自动换行
    print(sex,myinstro,myName,age)	
    
    #--------《二》字符串处理
    # *-*  coding:UTF-8 *-*
    str="hello 第一次接触Python"
    #1>返回总长度   
    print(len(str));  
    #2>截取字符串 表示从1开始到3结束 不包括3的字符串
    print(str[1:3])
    print(str[1:])  #表示截取从1开始的后面所有字符串
    print(str[1])  #表示获取索引位置1的字符
    #3>获取一个字符串b在另一个字符串abc中的的位置 索引从1开始  
    print(str.index("P"))
    #4>切割字符串  比如通过 :切割 abc:bcd  
    print(str.split(" "))
    #5>去除空格  左边和右边空格
    print(str.strip(),str.lstrip(),str.rstrip())
    #6>转换大写  输出BCD  
    print(str.upper())
    #7>转换小写  输出bcd  
    print(str.lower())
    #8替换字符串 定义一个变量  将test变量的值中的yy替换成p  
    print(str.replace("P","p"))
    #--------《三》类型转换
    # *-*  coding:UTF-8 *-*
    i=10
    #获取变量i的类型
    print(type(i))
    #判断i是否为int类型
    print(type(i)==int)
    #判断i是否为int类型的实例 存在继承关系为true
    print(isinstance(i,int))
    stri="123"
    #字符串转换为int类型  第二个参数表示进制 默认10进制
    print(int(stri,10)+4)
    #将数字转换为字符串
    print(repr(10)+"10")
    print(str(10)+"10")
    #import用于导入其他的py文件定义的函数 导入了之后就可以用 time.方法名调用了  可以使用 dir(time) 查看time下所有的属性和方法
    import time
    curtime=time.localtime();
    #将时间格式修改为 yyyy-MM-dd hh:mm:ss格式 转换为字符串
    bztime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    print(curtime)
    print(bztime)
    
    #--------《四》数组
    myhobby=["篮球","足球"]
    print(myhobby[0]);
    #获取数组从0开始到第2个元素 不包括第二个 也就是 0,1
    print(myhobby[0:2]);
    # in 判断值是否存在于数组中  not in是反义
    print("排球是否在数组中:","排球" in myhobby)
    # +号用于追加元素	
    cherryHobby=myhobby+["排球"]
    print(cherryHobby);
    # count统计某个元素出现的次数  len获取数组长度
    print(cherryHobby.count("排球"),len(cherryHobby))
    # 删除某个匹配的元素
    cherryHobby.remove("排球")
    print(cherryHobby);
    #############>>>>>字典
    mykey={'userName':'jiaozi','mysex':'男'}
    print(mykey["userName"])
    #判断key是否在字典中  keys获取所有的键集合
    print('userName' in mykey,mykey.keys());
    #清除变量 后面就不能使用了
    del mykey
    
    
    #--------《五》流程控制
    # *-*  coding:UTF-8 *-*
    #if语句所有的块语句都是通过缩进来判断是否属于同一个if 同一个代码块缩进必须一致 比如同一个if中的两句必须缩进相同 否则报错
    sal=input("请输入您的薪水: ")
    if int(sal)>5000 :
    	print("高新")
    elif int(sal)<=5000 and int(sal)>=3000:
    	print("薪水一般")
    else:
    	print("低薪")
    
    # *-*  coding:UTF-8 *-*	
    #循环语句  continue和break表示继续和中断 end=""表示不换行	else可以不要
    i=1
    while i<=9:
    	print(i,end="")
    	i=i+1
    else:
    	print("循环结束后会执行")
    	
    # for 循环 for in循环
    arr=["碧血剑","笑傲江湖"]
    for a in arr:
    	print(a)
    # for循环数字1到9 使用range函数
    for a in range(1,9):
    	print(a,end=" ")
    	
    # 使用pass空指令 不加pass报错 为了保证程序的正确性
    for a in range(1,9):
           pass
    	   
    #迭代器 iter 只有两个元素 第三次next出现运行时异常 需要处理
    it=iter(arr);
    print(next(it),next(it))   
    
    #异常处理 try:  except:  except可以指定异常类型 比如except Exception:自定义异常 具体参考 http://www.runoob.com/python3/python3-errors-execptions.html
    it=iter(arr);
    while True:
    	try:
    		print(next(it),end=" ");
    	except:
    	   break;
    		
    #--------《六》方法
    # *-*  coding:UTF-8 *-*
    def add(p1,p2):
    	print(p1+p2)
    #使用return返回值	可以给参数指定默认值 有了默认值可以不传
    def add1(p1=0,p2=0):
    	return p1+p2
    #调用函数
    add(12,34)
    result=add1(11,22)
    print(result)
    
    #定义不定长的参数类似于java 中的...
    def syso(* arr):
    	for a in arr:
    		print(a)
    
    syso(1,2,3)		
    #定义匿名函数使用lambda表达式
    sum=lambda p1,p2:p1+p2
    print(sum(13,3))
    #--------《七》流输入和输出(文件操作)
    # *-*  coding:UTF-8 *-*
    import sys
    
    ######>>>>>文本文件读取
    #写入文本内容到文件  a表示追加 w表示写入  r表示读取 b表示2进制
    file=open("c:/py.txt","a")
    file.write("你好
    ") #插入一行文本并换行
    tt=["123","234","345"]
    file.writelines(tt);#writelines用于写入一个字符串的序列也就是列表
    file.close(); #关闭流
    #打印出该对象所有的方法和属性
    print(dir(file))
    #closed是否关闭连接  name获取文件名 mode获取操作模式
    print("文件是否关闭:"+str(file.closed))
    #从文件中读取内容
    file=open("c:/py.txt","r")
    print("读取所有内容:"+file.read())
    #上面读取了一次就不能在读了 必须将读取指针指向第一个字符才能重新开始读
    file.seek(0);
    print("读取前两个字符:"+file.read(4))  #这里换行也是一个字符  
    file.seek(0);
    print("读取一行:"+file.readline())  #读取一行数据
    file.close()
    #重命名文件和删除文件 mkdir创建目录 rmdir删除目录
    import os
    os.rename("c:/py.txt","c:/py1.txt")
    os.remove("c:/py1.txt")
    
    ######>>>>>二进制文件读取
    
    #a表示追加 b表示二进制  这里可以使用writelines将序列写入到文件中 其实就是序列化
    import pickle
    file=open("c:/pyobj.txt","wb")
    p={"id":1,"name":"zs"}
    p1=["jiaozi","cherry"]
    pickle.dump(p,file)
    pickle.dump(p1,file)
    file.close()
    
    #读取序列化数据
    file=open("c:/pyobj.txt","rb")
    p=pickle.load(file);
    p1=pickle.load(file);
    print(str(p))
    print(str(p1))
    file.close()
    
    
    #--------《八》面向对象+多线程+socket编程+正则
    # *-*  coding:UTF-8 *-*
    class Animal:   
       
    	vname = 1
    	#双下划綫开头表示属性或者方法是私有的
    	__master=""
    	# __init__是构造方法 第一个参数是当前实例本身
    	def __init__(self,vname,master):
    		self.vname=vname
    		self.__master=master
    	def eat(self,something):
    		print(self.vname+"【主人:"+self.__master+"】正在吃"+something,end="")
    ani=Animal("来福","饺子")		
    print(ani.vname)
    print(ani.eat("狗粮"))
    #print(ani.__master) 该语句报错 私有属性不能直接外部访问
    
    #继承
    class Dog(Animal):
    	def __init__(self,vname):
    		Animal.vname=vname;
    	#重写父类的方法
    	def eat(self,something):
    		print("狗狗"+self.vname+"正在吃:"+something)
    
    
    dog=Dog("旺财")
    dog.eat("小强")		
    
    #面向对象高级		
    ###>>>>1.多线程
    import threading
    class MyThread(threading.Thread):
    	def run(self):
    		print("线程启动")
    
    myThread=MyThread()
    myThread.start()
    #同步
    myThread.join()
    print("后面执行")
    ###>>>2.网络编程socket
    #服务端代码
    import socket
    serversocket=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    serversocket.bind(("localhost",9898))
    #允许同时访问的客户端socket个数
    serversocket.listen(2)
    while True:
        # addr表示客户端的ip和端口
    	clientSocket,addr=serversocket.accept();
    	msg='欢迎访问菜鸟教程!'+ "
    "
    	clientSocket.send(msg.encode('gbk'))
    	clientSocket.close()
    	break
    serversocket.close()	
    
    #客户端代码 也可以使用telnet localhost 9898来当做客户端测试
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(("localhost",9898))
    msg = s.recv(1024)
    s.close()
    print (msg.decode('gbk'))
    # *-*  coding:UTF-8 *-*
    ###>>>3.正则表达式
    import re
    myEmail="lixin@12.com"
    if re.match(".+@.+",myEmail):
    	print("满足邮件格式")
    ###>>>4.http网络请求
    import urllib.request
    #tt返回的就是个流对象
    tt=urllib.request.urlopen("http://www.runoob.com/python3/python3-stdlib.html")
    print(str(tt.read()).encode("UTF-8"))
    
    

    二 python安装库

     pip是python库安装工具  cenos下安装该库 

    yum -y install python-pip.noarch
    比如 我这里安装redis的库

    pip install redis
    查看安装的信息
    pip show redis
    测试

    import redis
    sex="boy"
    r=redis.Redis("localhost",6379)
    r.set("sex",sex)




  • 相关阅读:
    docker参数--restart=always的作用
    docker参数expose使用
    Linux主机添加路由和端口转发
    docker自动开启端口转发功能
    【Tips】【UE】总结自己常用的UltraEdit使用技巧
    浅谈I2C总线
    I2C总线简介(很经典)
    ECN
    视频编码未来简史
    爬虫与反爬虫
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331207.html
Copyright © 2020-2023  润新知