zoukankan      html  css  js  c++  java
  • day07

    异常处理

    异常处理:处理异常(报错:Error)

    try:#尝试
        print(1/1)#有错误就跳过,没错误就执行
    except ZeroDivisionError:#错误被跳过了(捕捉了)
        pass#啥也不做
    
    dic = {'a': 1}
    key=input('输入一个key获取字典中的值')
    try:#尝试
    	dic=['a':1]
    	dic[key]#KeyError
    	1/0
    	lt=[1,2,3]
    	lt['a']
    except ZeroDivisionError:#错误被跳过了,智能捕捉ZeroDivisionError,其他错误无法捕捉
    	print('捕捉到了ZeroDivisionError这个错误')
    except KeyError:
    	print('捕捉到了KeyError这个错误')
    	
    
    try:#尝试
    	dic=['a':1]
    	dic[key]#KeyError
    except Exception as e:#Exception万能异常,把错误信息输入出来,同时一般把该错误记录到日志中
        print(e)
        #logging.info(e)->程序员看
        print('你输入有问题')->用户看
    #预运行(类似于把代码抽离到另外一个文件中运行,这样的运行对文件不会造成任何影响),能不用则不用
        
    

    力扣

    1.更换解释器,更换背景色

    2.分析题目

    '''
    给定一个整数数组(列表) nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
    
    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
    
    示例1:
    
    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]
    '''
    # 需求1:你在该数组中找出和为目标值的那 两个 整数
    # 需求2:并返回他们的数组下标(索引)
    # 一脸懵逼:你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
    for i in range(len(nums)):
        for j in range(i+1,len(nums)):
            if nums[i]+nums[j]==target:
                print(i,j)
                
                
    for i in range(len(nums)):
        sub=target-nums[i]
        if sub in nums:
            res=nums.index(sub)
            id res!=i
            print(i,res)
            break
    

    字符串内置方法

    s = 'nick handsome'
    

    索引取值

    print(s[0])

    切片

    print(s[0:4])

    成员运算

    print('nick' in s)

    print('nike1' in s)

    for循环

    for i in s:#n i c k h a n d s o m e

    ​ print(i)

    len()

    print(len(s))

    接下来讲的都是字符串.出来的方法

    s='***   ni  ck  '
    print(s)
    

    strip() 默认去掉两端空格

    print(s.strip()) #去空格

    print(s.strip('')) #去

    print(s.strip('n* ')) #去空格 * n

    lstrip()/rstrip() 去左端/右端

    s='**nick**'
    print(s.lstrip('*'))
    print(s.rstrip('*'))
    

    startswith()/endswith() 以 开头/以 结尾

    s='nick'
    print(s.startswith('nick'))
    print(s.endswith(k))
    

    find()/index() 获取某一个元素的索引位置

    s='nick'
    print(s.find('a'))#找不到返回-1
    print(s.index('a'))#找不到报错
    

    join() 把列表内的元素拼接出来

    print('*'.join(['a','b','c']))
    

    split() 切割

    s='a*b*x*c'
    print(s.split('*'))#以*为切割符号,切割字符串
    

    center/ljust/rjust 打印更美观,居中/居左/居右

    print(s.center(50,'_'))
    print(s.ljust(50,'_'))
    print(s.rjust(50,'_'))
    

    isdigit()/isalpha()

    s='a'
    print(s.isdigit())#是否为纯数字
    print(s.isalpha())#是否为纯字母
    

    count() 计数

    s='nick nick'
    print(s.count('nick'))
    

    ctrl+alt+l-->让他符合pep8标准

    from selenium import webdriver  # 用来驱动浏览器的
    from selenium.webdriver import ActionChains  # 破解滑动验证码的时候用的 可以拖动图片
    from selenium.webdriver.common.by import By  # 按照什么方式查找,
    By.ID,By.CSS_SELECTORfrom selenium.webdriver.common.keys import Keys  # 键盘按键操作
    from selenium.webdriver.support import expected_conditions as EC  # 和下面WebDriverWait一起用的
    from selenium.webdriver.support.wait import WebDriverWait  # 等待页面加载某些元素
    import time
    # 1.通过selenium的webdriver加载驱动
    # webdriver.Chrome('驱动绝对路径')driver = webdriver.Chrome(r'C:UsersoldboyDesktopchromedriver.exe')
    # 获取异常
    try:    
        # 等待浏览器数据加载10秒    
        driver.implicitly_wait(10)    
        driver.get(      'https://www.baidu.com/'    )    
        input_tag = driver.find_element_by_id('kw')    
        input_tag.send_keys('小泽老师')    
        # 查找百度一下按钮    
        submit_tag = driver.f
        ind_element_by_id('su')   
        submit_tag.click()    
        # 等待10秒    
        time.sleep(10)
        # 无论try发生了什么,最后都会关闭driver驱动
    finally:    
    	driver.close()
    

    今日内容:
    测试:
    黑盒测试:
    对用户所能看到的界面进行测试。

        白盒测试:
            对软件的性能进行测试。
    
        手动测试:
            人为去检测bug。
    
        自动化测试:
            通过代码写好的自动化测试脚本检测bug。
    
    
    selenium请求库:
        1.什么是selenium?
            - 是一个自动化测试工具。
    
        2.为什么要使用selenium?
            - 优点:
                - 通过它可以驱动浏览器,跳过登录滑动验证
    
            - 缺点:
                爬虫效率低
    
        3.怎么使用selenium?
            - 安装驱动
                - http://npm.taobao.org/mirrors/chromedriver/2.38/
    
            - 安装selenium请求库
                - pip3 install selenium
    
            - html标签查找
               - 通过属性查找
               - 优先使用:
                    id: 值是唯一
                    class: 值可以有多个
    
                    name: 值的input里面拥有的唯一属性
    
            - element:查找第一个
            - elements:查找所有
    
            - css_selector属性选择器查找
            id: #p-price  class: .p-price
            <div id="p-price">
            <div class="p-price">
                <strong class="J_45269140635" data-done="1">
                    <em>¥</em>
                    <i>238.00</i>
                </strong>
            </div>
  • 相关阅读:
    java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)
    浅谈HTTP中Get与Post的区别
    浅谈HTTP中Get与Post的区别
    图文混排
    Algorithm: quick sort implemented in python 算法导论 快速排序
    algorithm: heap sort in python 算法导论 堆排序
    Leetcode OJ : Compare Version Numbers Python solution
    Python 同时for遍历多个列表
    Leetcode OJ : Repeated DNA Sequences hash python solution
    Leetcode OJ : Triangle 动态规划 python solution
  • 原文地址:https://www.cnblogs.com/zqfzqf/p/11436632.html
Copyright © 2011-2022 走看看