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:代码逻辑语法出错,不能执行
原文地址:https://www.cnblogs.com/jxba/p/8993515.html