zoukankan      html  css  js  c++  java
  • Python 基础

    一、前言

      一如既往,开始前先唠叨几句,这两年有点满足于现状了,最近出去找虐了,发现自己的技术有点渣,可以用几个不够来概括:不够扎实,不够深入,不够系统化。好了,啰嗦完了,学习的热情又上来了,计划用一个月的时间把同事遗留给我的书看完,哈哈。

    二、如何学好自动化测试

    1、编程语言

    我选用Python哈

    2、Selenium/appium API

    Selenium(WebDriver)和appium API提供了操作web/app的类和方法,我们用这些方法就可以操作web页面上的元素或APP上面的控件

    3、单元测试框架

    单元测试框架是用例定义测试用例、组织和运行测试用例的,是编写自动化测试用例的基础。

    三、Python基础

    1、打印和注释

    Python不区分单引号和双引号,都可以用来表示一个字符串,注释的话,# 单行注释     ''' 多行注释

    Python提供了print()方法来打印信息,以下是例子说明

    # 定义name和age变量
    name = "tom"
    age = 18
    # 用连接符(+)进行拼接,因为age是整型,要通过str()方法将整型转换成字符串
    print ("名字是:"+name+",年龄是:"+str(age))
    # 用格式符(%s %d)进行替换,其中%s用于指定字符串,%d(data)用于指定数字,如果不确定数据类型 可以用%r
    print("名字是:%s, 年龄是:%d" %(name,age))
    # 用格式化函数format进行格式化,这是比较常用的
    print("名字是:{},年龄是:{}".format(name,age))

    2、分支与循环

    2.1 if 语句

    a =2 
    b = 3
    if a>b:
        print("a大于b")
    else:
        print("a小于b")

    2.2 for 语句

    # 循环遍历列表
    zoons = ["monkey","horse","bear"]
    for zoon in zoons:
        print(zoon)
    # 打印1-10之间的奇数, 格式:range(start,end[,step]) ,在range()函数中,start表示起始位置,ens表示结束位置,step表示每次循环的步长
    # 运行的结果为1 3 5 7 9
    for i in range(1,10,2):
        print(i)
    

    3、列表、元组与字典

    3.1 列表

    列表即list,也称数组,用[]表示,例子说明如下

    # 定义列表
    lists = [1,2,3,4,5]
    # 打印列表
    print(lists)
    # 打印列表中的第1个元素和最后一个元素,结果为1 5
    print(lists[0],lists[-1])
    # 修改列表中的第5个元素为s , 结果为[1, 2, 3, 4, 's']
    lists[4] = "s"
    print(lists)
    # 在列表末尾添加元素和删除列表的第一个元素, 结果为[2, 3, 4, 's', 'a']
    lists.append("a")
    lists.pop(0)
    print(lists)

    3.2 元组

    元组与列表类似,使用()表示,元组与列表的区别在于:列表是可变的,即可以追加、删除和修改其中的元素,而元组是不可变的,因为元组不提供append()方法来追加元素,所以当不确定元素个数时建议使用列表,当提前知道元素数量时使用元组,因为元素的位置很重要。例子说明如下

    # 定义元组
    tup1 = (1,2,3,"c","d")
    tup2 = (7,8,9)
    # 查看元组,第一个打印结果是1   第二个打印结果是(7, 8)
    print(tup1[0])
    print(tup2[0:2])

    3.3 字典

     字典用{}表示,每个元素由key和value组成,Python规定一个字典中的key必须是独一无二的,value可以相同,例子说明如下

    # 定义字典
    dicts = {"usernama":"xiaoming","password":"12345"}
    # 打印字典中的所有key,keys()方法返回字典key的列表,结果是  dict_keys(['usernama', 'password'])
    print(dicts.keys())
    # 打印字典中的所有value,values()方法返回字典value的列表,结果是dict_values(['xiaoming', '12345'])
    print(dicts.values())
    # 打印字典以列表方法返回,items()方法将所有的字典元素以列表形式返回,结果是dict_items([('usernama', 'xiaoming'), ('password', '12345')])
    print(dicts.items())
    '''循环打印字典key和value,
    结果是key的值为:'usernama'
    value的值为:'xiaoming'
    key的值为:'password'
    value的值为:'12345'
    '''
    for k,v in dicts.items():
        print("key的值为:%r" %k)
        print("value的值为:%r" %v)
    # 删除key是password的项,结果是dict_items([('usernama', 'xiaoming')])
    dicts.pop("password")
    print(dicts.items())
    

    4、函数、类和方法

    4.1 函数

    用def关键字来定义函数,例子说明如下

    # 例子1:定义add()函数,函数接收a,b两个参数
    def add(a,b):
        return a+b
    # 调用add()函数,并打印:通常add()函数不会直接打印结果,而是通过将return关键字返回,所以需要使用变量c接收add()函数的返回值
    c = add(1,4)
    print(c) # 结果是 5
    
    # 例子2:如果调用时不传参数,那add()函数会使用默认参数进行计算,否则计算参数的值,c的结果是11,c1的结果是6
    def add(a=1,b=5):
        return a+b
    c = add(4,7)
    c1 = add()
    print(c)
    print(c1)
    

    4.2 类和方法

    在面向对象编程的世界里,一切皆为对象,抽象的一组对象就是类。比如汽车是一个类,而小明家的凯迪拉克就是一个具体的对象。用class关键字来创建类。

    # 定义Myclass 类
    class MyClass(object):
        def say(self,name):
            return "hello," + name
    # 调用MyClass类,结果是hello,GP
    mc = MyClass()
    print(mc.say("GP"))
    

    5、模组

    模组,也称为类库或模块。Python有自己的标准模块和第三方库,比如要用时间有关的功能,可以调用python标准模块time,如果要实现web自动化测试,可以调用python第三方库selenium。

    5.1 调用模块

    # 1: 通过import关键字调用time模块
    import time
    # 2: 直接导入ctime()函数
    from time import ctime
    # 3:直接导入time模块下多个函数或所有函数,使用时也是不用加time前缀
    from time import ctime, sleep
    from time import *  # 一般不推荐这种做法
    # 4:对导入的函数重命名,作用:若与自己定义的函数重名时可以采用这种
    from time import ctime as nowtime
    # 1: 调用time模块下的ctime()函数用于获得当前时间,结果是Sat May  1 06:49:35 2021
    print(time.ctime())
    # 2: 若是直接导入某函数,则可以不用告诉python,ctime()是time模块提供的,直接用即可
    print(ctime())

    5.2 自定义模块

    除了调用python标准模块和第三方库外,还可以自己创建模块。

    目录project创建两个文件:a.py ,test.py

    a.py文件中创建add()函数

    def add(a,b):
        return a+b
    

    test.py文件想调用a.py文件中的add()函数,可以这么写,如下,这就实现了跨文件的函数导入

    # 导入a.py 文件中的add函数
    from a import add
    print(add(4,5))

    5.3 跨目录调用文件

     试了好久,没调用成功,后面成功后再更新。

  • 相关阅读:
    「BZOJ1061」 [Noi2008]志愿者招募
    [POJ 2891] Strange Way to Express Integers (扩展中国剩余定理)
    扩展中国剩余定理学习笔记
    扩展欧几里得算法+推论
    SPOJ16607 IE1
    [Luogu P4124] [CQOI2016]手机号码 (数位DP)
    [UOJ 275/BZOJ4737] 【清华集训2016】组合数问题 (LUCAS定理的运用+数位DP)
    一些很妙的网站
    [Luogu P3157][CQOI2011]动态逆序对 (树套树)
    [Luogu P3203] [HNOI2010]弹飞绵羊 (LCT维护链的长度)
  • 原文地址:https://www.cnblogs.com/Chilam007/p/14719908.html
Copyright © 2011-2022 走看看