异常处理(Error)
1、提前预防
如果错误发生的条件是可预知的,我们需要用if进行处理
AGE = 10
while True: # 规定下面的if为true时,条件满足
age = input('>>:').strip()
if age.isdigit(): # 只有在age为字符串形式的整数时,下列代码才不会出错,该条件是可预知的
age = int(age)
if age == AGE:
print('you got it')
break
2、之后预防
如果错误发生的条件是不可预知的,这需要用到try...except
'''
try:
代码块
except # 异常类型:
执行条件:try中一旦检测到异常,就执行这个位置的逻辑
'''
'''
try: # 尝试
print(1 / 1) # 有错误就跳过,没有错误就执行
except ZeroDivisionError: # 错误被跳过了(捕捉了)
pass # 啥也不做
'''
try:
key = input('输入一个key获取字典中的值')
dic = {'a': 1}
q = dic[key] # KeyError
print(q)
except Exception as e: # Exception万能异常 # 把错误信息输入出来,同时一般把该错误记录到日志中
#logging.info(e) -> 程序员看(记录日志)
print('你输入有问题') # -》 用户看
leetcode
两数之和
1、更换解释器,更换背景色
2、分析题目(需求)
3、实在想不出看评论区(解题思路),多做就好了
4、需要问题用纸笔画
字符串内置方法
内置方法:即自带的方法
只有字符串才能只用,聊表不能用
1、索引取值
print(s[0])
2、切片
print(s[0:4])
3、成员运算
print('nick' in s)
print('nick1' in s)
4、for循环
s = 'nick handsome'
for i in s: # n i c k h a
print(i)
5、len()
print(len(s))
6、strip()默认去掉两端空格
s = '**** ni ck '
print(s)
print(s.strip()) # 去空格
print(s.strip('*')) # 去*
print(s.strip('n* ')) # 去 和*和n
7.lstrip()/rstrip(): 左端/右端
s = '**nick**'
print(s.lstrip('*'))
print(s.rstrip('*'))
8.startswith()/endswith(): 以...开头/以...结尾
s = 'nick'
print(s.startswith('nick'))
print(s.endswith('k'))
9.find()/index() : 获取某一个元素的索引位置
s = 'nick'
print(s.find('a')) # 找不到返回-1
# print(s.index('a')) # 找不到报错
10.join() : 把列表内的元素拼接出来
print('*'.join(['a', 'b', 'c']))
11.split(): 切割
s = 'a*b*c'
print(s.split('*')) # 以*为切割符号,切割字符串
12.center/ljust/rjust : 打印更美观,居中/居左/居右
print(s.center(50, '-'))
print(s.ljust(50, '-'))
print(s.rjust(50, '-'))
13.isdigit()/isalpha()
s = 'a'
print(s.isdigit()) # 是否为纯数字
print(s.isalpha()) # 是否为纯字母
14.count(): 计数
s = 'nick nick'
print(s.count('nick'))
selenium基本使用
什么是selenium?
是一个自动化测试工具。
为什么要使用selenium?
优点:通过它可以驱动浏览器,跳过登录滑动验证
缺点:爬虫效率低
怎么使用selenium?
- 安装驱动:http://npm.taobao.org/mirrors/chromedriver/2.38/
安装请求库:pip install selenium
- html标签查找:
- 通过属性查找
- 优先使用(主要用前两个)
- id:值是唯一的
- class:值可以有多个
- name:值得input里面拥有的唯一属性
- element:查找第一个
elements:查找所有