zoukankan      html  css  js  c++  java
  • selenium2学习:python3基础

    1.1     执行

     1.2     Print

    name = "Maya"
    age = 31
    print ("Hello, %s, you are %d" %(name,age))
    name = "Maya"
    
    age = 31
    
    print ("Hello, %s, you are %d" %(name,age))

    %d:数字;%s:字符;%r:未知类型

    打印内容和变量之间用空格隔开,且多个变量在一个%()里面

    1.3     注释

     

    1.4     分支与循环

    1.4.1      If语句

    1.4.1.1       数值判断

    等于 ==

    不等于!=

    a = 2

    b = 3

    if a > b:

        print ('a>b')

    else:

        print ("ab")

     

    c = 2

    d = 3

    if c == d:

        print ('c=d')

    else:

        print ("c!=d")

     

    1.4.1.2       布尔判断

     

    1.4.1.3       If…elif…else

     

    1.4.2      In

    e = "Maya J 你好哇"

    if "你好" in e:

        print ("这是问好的意思")

    else:

        print ("我也不知道什么意思")

     

    1.4.3      For

     

    1.4.4      While

    1.4.4.1       猜数字

     

    import random
    secret = random.randint(1,99)
    #print(secret)
    guess = 0
    tries = 0
    print ('Hello, I am Maya, and I have a secret!')
    print ('It is a number from 1 to 99. I will get you 6 tries. ')
    
    while guess != secret and tries < 6:
        guess = int(input('Guess it please:'))
        if guess < secret:
            print ('too low, please higher。')
        elif guess > secret:
            print ('too high, please lower。')
        tries = tries + 1
        print('tries is,', tries)
    if guess == secret:
       print ('yoyoyo, you are so clever, you got it! congratulations!')
    else:
       print ('Oh, I am sorry, you are failed. The secret number was:',secret)

    另一种写法如下:

    import random
    secret = random.randint(1,99)
    print(secret) #打印出随机数方便测试代码
    tries = 1     #默认次数为1
    print ('Hello, I am Maya, and I have a secret!')
    print ('It is a number from 1 to 99. I will get you 6 tries.')
    
    guess = int(input('Guess it please:'))   #输入随机数
    print('tries is,', tries)                 #打印出猜的次数,方便测试代码
    if guess == secret:
        print ('yoyoyo, you are so clever, you got it! congratulations!')
    else:
        while guess != secret and tries < 6:
            if guess < secret:
                guess= int(input('too low, please be higher:'))   #重新输入
            elif guess > secret:
                guess= int(input('too high, please be lower:'))   #重新输入
    
            tries = tries + 1
            print ('tries is,', tries)
         #6次都没有猜对后,告诉其答案
        print ('Oh, I am sorry, you are failed. The secret number was:',secret)
    
    
    
            
            

    以上两种都没有对输入内容超限后做判断:

    import random
    secret = random.randint(1,99)
    print(secret) #打印出随机数方便测试代码
    tries = 1     #默认次数为1
    print ('Hello, I am Maya, and I have a secret!')
    print ('It is a number from 1 to 99. I will get you 6 tries.')
    
    guess = int(input('Guess it please:'))       #输入随机数
    if guess in range(1,100):                     #判断输入内容是否在范围内
        print('tries is,', tries)                 #打印出猜的次数,方便测试代码
        if guess == secret:
            print ('yoyoyo, you are so clever, you got it! congratulations!')
        else:
            while guess != secret and tries < 6:
                if guess < secret:
                    guess= int(input('too low, please be higher:'))   #重新输入
                elif guess > secret:
                    guess= int(input('too high, please be lower:'))   #重新输入
    
                tries = tries + 1
                print ('tries is,', tries)
             #6次都没有猜对后,告诉其答案
            print ('Oh, I am sorry, you are failed. The secret number was:',secret)
    else:
        print("wrong!")
    
    
            
            

    1.5     数组

    a = [1,2,3]

    a.append(‘c’) 则a = [1,2,3,c]

     

    1.6     字典

    {key:”value”}

    https://www.cnblogs.com/zhenwei66/p/6593747.html

    字典换行列出

    stu0 = {

        'num1':'Tom',

        'num2':'Lucy',

        'num3':'Sam',

    }

     

     

    1.7     Zip

    通过zip方法合并两个list为dictionary

     

    #字典换行编写
    stu0 = {
        'num1':'Tom',
        'num2':'Lucy',
        'num3':'Sam',
    }
    print(stu0.items())       #items(返回由“键值对组成元素“的列表)
    
    
    #字典常用方法
    stu = {'name':'Maya','sex':'Female','age':'31','hobby':'swim'}
    print(stu.keys())         #keys(获取字典所有的key)
    print(stu.values())       #values(获取字典所有的value)
    print(stu.get('age'))     #get(指定key,获取对应的值)
    print(stu.copy())         #copy(拷贝字典)
    
    stu.update({'age':'27'})  #update(更新)
    print(stu)
    
    b = stu.popitem()         
    print(b,stu)              #popitem(随机获取某个键值对,并在字典中删除)
    
    print(stu.clear())        #clear(清空字典内容)
    
    
    #生成字典:fromkeys(指定一个列表,把列表中的值作为字典的key,生成一个字典)
    name = ['tom','lucy','sam']
    print(dict.fromkeys(name))
    print(dict.fromkeys(name,'W'))
    
    
    # 通过zip方法合并两个list为dictionary
    keys = ['a','b','c']
    values = ['1','2','3']
    for key,value in zip (keys,values):
        print (key,value)

    1.8     函数

    def Madd (a=1,b=2):

        return a + b

     

     如果调用该函数时,不传参则按默认参数,如传参,则按传参后的计算。

    1.9     类和方法

    一切皆为对象,抽象的一组对象就是类。例如:汽车就是类,Maya的牧马人汽车就是一个具体的对象。

    https://www.cnblogs.com/QI1125/archive/2017/09/18/7545537.html

    1.9.1      类定义

    类定义语法格式如下:

    class ClassName:

        <statement-1>

        .    .

        .

        <statement-N>

    1.9.2      类对象

    创建一个类之后,可以通过类名访问、改变其属性、方法

    1.9.3      实例对象

    类实例化后,可以使用其属性,可以动态的为实例对象添加属性(类似javascript)而不影响类对象。

    1.9.4      类的属性

    可以使用点(.)来访问对象的属性,也可以使用以下函数的方式来访问属性:

    • getattr(obj, name[, default]) : 访问对象的属性
    • hasattr(obj,name) : 检查是否存在一个属性
    • setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性
    • delattr(obj, name) : 删除属性
    • __dict__ : 类的属性(包含一个字典,由类的数据属性组成)
    • __doc__ :类的文档字符串
    • __name__: 类名
    • __module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
    • __bases__ : 类的所有父类构成元素(包含了以个由所有父类组成的元组)

    1.9.4.1       Python内置类属性

    #定义类
    class Person:
        "Person类"
        def __init__(self, name, age, gender):
            print('进入Person的初始化')
            self.name = name
            self.age = age
            self.gender = gender
            print('离开Person的初始化')
        def getName(self):
            print(self.name)
    p = Person('ice', 18, '')
    print(p.name)  # ice
    print(p.age)  # 18
    print(p.gender)  #
    print(hasattr(p, 'weight'))  # False
    # 为p添加weight属性
    p.weight = '70kg'
    print(hasattr(p, 'weight'))  # True
    print(getattr(p, 'name'))  # ice
    print(p.__dict__)  # {'name': 'ice', 'age': 18, 'gender': '男', 'weight': '70kg'}
    print(Person.__name__)  # Person
    print(Person.__doc__)  # Person类
    print(Person.__dict__)  # {'__module__': '__main__', '__doc__': 'Person类', '__init__': <function Person.__init__ at 0x000001A526EF37B8>, 'getName': <function Person.getName at 0x000001A526EF3840>, '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>}
    print(Person.__mro__)  # (<class '__main__.Person'>, <class 'object'>)
    print(Person.__bases__)  # (<class 'object'>,)
    print(Person.__module__)  # __main__

     1.9.5      定义类例子

    创建类时,默认object为所有类的基类,方法的第一个参数必须时存在的,一般习惯为self,但调用的时候不需为self传值。

    一般在创建类时,会首先声明初始化方法_init__。

    class A():
        def __init__(self, a, b):
            self.a = int(a)
            self.b = int(b)
    
        def add(self):
            return self.a + self.b
        
    c = A('7',8)
    print(c.add())

     

    注:换行要注意,如下图(c在classA中了)则报错:

     

    1.9.6      类的继承

    class A():
        def add(self,a,b):
            return a + b
    
    class B(A):
        def sub(self,a,b):
            return a - b
    
    print (B().add(6,4))   # 10

     

    print (B().add(6,4))   # 10

     

    1.10 模组

    Python的第三方类库或框架模块默认存放在:Python36Libsite-packages。

    通过import或from…import…引用模块。

    • time模块:时间功能
    • os模块:文件和文件夹相关功能
    • selenium:web自动化

    1.10.1  time

    import time                   #引用time模块
    print (time.ctime())
    
    
    from time import ctime        #仅仅引用time模块的ctime方法
    print (ctime())
    
    
    print ('引用time模块的所有方法')
    from time import *            #引用time模块的所有方法
    print ('ctime(): %s' %(ctime())) 
    print (ctime())  
    print ('休眠2秒')             #休眠2秒
    sleep(2)
    print (ctime())
     
    print (time.ctime())          #错误示例:引用time模块的所有方法直接写方法即可

     

    1.10.2  模块调用

     

     

    • count.py调用同一目录下的pub.py中的add

    from pub import add

    • count.py调用同一目录下另一文件夹module下的pub

    from module import pub

    • count.py调用同一目录下另一文件夹module下的pub.py中的add

    from module.pub import add

    例如:文件目录如下:

    add-sub含model文件夹和test.py文件。其中model下有count.py和new_count.py。

    -model

    ---count.py

    ---new_count.py

    - test.py

    count.py

    class A():
        def add (self,a,b):
            return a + b

     

     

    new_count.py

    from .count import A      #相对于该文件的文件夹去找count
    
    class B(A):
        def sub (self,a,b):
            return a - b
    
    result = B().add(2,5)
    
    print (result)

     

     

    test.py

    import sys
    sys.path.append('./module')   #将module加入环境变量path下
    from module import new_count      
    test = new_count.B()
    test.add(2,5)   #结果为7

     

    1.11 异常

    Python用异常对象(exception object来表示异常情况。遇到错误后,会引发异常。如果异常对象未被处理或捕捉,程序会用所谓的回溯(Traceback,一种错误信息)终止执行。Python提供try..except..语句来接收这个异常。

      在python中所有的异常都继承Exception,所以我们可以使用它来接收所有的异常。

    1.11.1  接收异常

     

    1.11.2  打印出异常原因

    try:

        print (a)

    except BaseException as msg:

        print('异常啦,原因是:%s' %msg)

     

    1.11.3  是否异常均被执行

    try:
        a = 8
        print (a)
    except BaseException as msg:
        print('异常啦,原因是:%s' %msg)
    else:
        print('没有异常哟~')
    finally:
        print('永远被执行')

     

     

    1.11.4  常见异常

    • BaseException:新的所有异常类的基类
    • Exception:所有异常类的基类,但继承BaseException 类
    • FileNotFoundError:试图打开一个不存在的文件或目录
    • AssertionError:assert 语句失败
    • AttributeError:试图访问一个对象没有属性
    • IOError:输入输出异常,基本是无法打开文件
    • NameError:使用一个还未赋值对象的变量
    • IndexError:当一个序列超出了范围
    • IndentationError:语法错误,代码没有正确的对齐
    • KeyboardInterrupt:Ctrl+C 被按下,程序被强行终止
    • TypeError:传入的对象类型与要求不符
    • SyntaxError Python:代码逻辑语法出错,不能执行
  • 相关阅读:
    java实现操作系统磁盘寻道先来先服务算法
    专业素养:发布文件,别忘了给出校验信息
    vue系列教程-08vue的动画和过渡效果
    vue系列教程-07vue动态绑定样式
    vue系列教程-06vue的事件处理
    vue系列教程-05vue常用指令
    vue系列教程-04vue数据处理和页面渲染
    vue系列教程-03vuejs的结构和生命周期
    vue系列教程-01第一个vue程序
    vue系列教程-02什么是mvvm和spa
  • 原文地址:https://www.cnblogs.com/jxba/p/8993515.html
Copyright © 2011-2022 走看看