zoukankan      html  css  js  c++  java
  • python之 网络编程、异常处理、面向对象

    1.网络编程

    from urllib.request import  urlopen
    from urllib.parse import urlencode
    url='http://118.24.3.40/api/user/stu_info'
    # res=urlopen(url) #发get请求
    # print(res.read().decode())
    # data={'username':'****','passwd':'*****'}
    # print(urlencode(data))
    # res=urlopen(url,urlencode(data).encode()) #post请求,不能直接传字典.用urlencode转换为k,v的形式,再转换为二进制的形式
    # print(res.read().decode())#
    上述方法较为复杂,建议用以下方式

    import requests
    # res=requests.get(url,params={'stu_name':'小黑'})#发送get请求。params里放请求参数
    # print(res.json())#json直接将返回结果转换为字典
    # url2='http://118.24.3.40/api/user/login'
    # data={'username':'*****','passwd':'******'}
    # res=requests.post(url2,data=data) #post请求
    # print(res.json())

    # res=requests.post(url2,json=data) data数据为json格式时

    # url3='http://118.24.3.40/api/user/gold_add'
    # data={'stu_id':15,'gold':200}
    # cookies={'******':'abd9a0995f4696e1a60133220b32037a'}
    # res=requests.post(url3,data=data,cookies=cookies)
    # print(res.json())

    # url4='http://118.24.3.40/api/user/all_stu'
    # header={'Referer':'http://api.nnhp.cn/'}
    # res=requests.post(url4,headers=header)
    # print(res.json()) #返回的是字典

    # url5='http://www.nnzhp.cn'
    # res=requests.get(url5)
    # print(res.text) #返回的都是字符串

    # url6='http://qiniuuwmp3.changba.com/1084511584.mp3' 下载文件
    # res=requests.get(url6,verify=False)#verify=False 如果是https的话加上这个
    # print(res.content) #返回的就是2进制的
    # with open('魔鬼中的天使.MP3','wb') as fw: #wb写二进制,下载文件都是用二进制的模式
    # fw.write(res.content)

    # print(res.json()) #必须返回的是json才能用
    # print(res.text) #下载文件的话text就不行了
    # print(res.content) #用来下载文件用的,必须是二进制的
    # print(res.headers) #获取返回的所有header
    # print(res.cookies)#获取返回的所有cooke

    url7='http://118.24.3.40/api.file/file_upload' 上传文件
    data={'file':open('魔鬼中的天使.mp3','rb')}
    res=requests.post(url7,files=data)
    print(res.json())

    print(res.status_code)#获取他的状态码

    2.异常处理
    避免了代码出现异常时出现大量报错,方便调试
    money=1000
    num=input('please enter a num:')
    try: 尝试运行以下代码
    num=float(num)
    res=money/num
    # except ValueError as e: #出现异常了,就走except下面的代码
    # print('出现异常了')
    # print('你输入的价格不合法')
    # print(e)
    # except ZeroDivisionError as e:
    # print('除数不能为0')
    except Exception as e: #可以捕捉到所有的异常,这种方法可以代替所有的异常,即以上两种错误可以用这种方法合并处理
    print('出现异常了')
    print(e)
    else: 当程序没有异常时,运行以下代码
    money-=num
    print('你的余额是%s'%money)
    finally: #无论是否出现错误,都会执行finally的代码
    print('我是finally')
     3.类
    class Person(object):#定义类,这个是新式类,
    类名一般都以大写字母开头
                        nationality 'China' #类属性
                        def __init__(self,name,sex)#构造函数
                                self.name name #实例属性
                                self.sex =sex 绑定属性
                        def __del__(self):#析构函数
                            print('这个是析构函数')
                        def info():#方法
                               print('name is %s sex is %s '%(self.name,self.sex))
                        
                class Person1:#定义类,这个是经典类
                        nationality 'China' #类属性
                        def __init__(self,name,sex)#构造函数
                                self.name name #实例属性
                                self.sex =sex
                        def info():#方法
                               print('name is %s sex is %s '%(self.name,self.sex))
                         
                niuniu Person('牛牛','男'#实例化,因为在上面的构造函数里面指定了必须传name和sex,所以在实例化的时候要把name和sex传进去
                niuniu.info()#调用实例方法
      taotao=Person('涛涛','男') #类名加上括号,实例化
      taotao.money=10000 可以在实例化以后,进行属性绑定
      shangjie=Person('商*',‘女’)
      taotao.gf=shang 此时可以用taotao.gf来操作shang
      print('涛涛女朋友的性别',taotao.gf.sex)
     
  • 相关阅读:
    Golang里边的map变量是什么?
    Golang map的底层实现
    方法和函数的区别
    Golang 对 对象和指针 的理解
    React 部分
    前端开发概述、html、css基础
    服务器核心知识
    常用模块8.7
    2017.8.2迭代器和生成器
    2017.7.18可变/不可变类型,符号运算及其流程控制
  • 原文地址:https://www.cnblogs.com/kuhaha/p/9367359.html
Copyright © 2011-2022 走看看