• 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>
  • 相关阅读:
    eclipse中的Invalid text string (xxx).
    在jsp文件中出现Unknown tag (c:out)
    eclipse 界面复原
    ecilpse 纠错插件
    Multiple annotations found at this line:- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    Port 8080 required by Tomcat v9.0 Server at localhost is already in use. The server may already be running in another process, or a system process may be using the port.
    调用第三方https接口
    调用第三方http接口
    创建带值枚举
    spring整合redis之Redis配置文件
  • 原文地址:https://www.cnblogs.com/zqfzqf/p/11436632.html
Copyright © 2020-2023  润新知