1.为什么import 调用的模块 在pycharm中 会有红色的波浪线?
是因为该模块为第三方库,你未导入,进行导入就可以了,一般用pip指令导入比较方便
2.为什么用import 调用模块有的’import’显示灰色,有的显示高亮?
灰色是表示没有用到这个模块里的任何一个东西,可以把这一行去掉的。
1.运行报错:
1 | driver = webdriver.chrome() |
解决方案:浏览器的名称需要大写,即Chrome和Firefox
2.selenium中安装chrome浏览器驱动(chomedriver)
1.下载对应版本的chromedriver 下载地址:点这里
选择需要的浏览器驱动版本,点击**notes.txt**可以查看当前版本支持的浏览器版本,确定是否下载。
2.解压复制chromedriver.exe到chrome浏览器的安装目录(C:\Program Files (x86)\Google\Chrome\Application)
如果找不到此文件夹就将此文件解压到和你py文件同一个文件夹下,正常启动即可。
3.启动脚本,浏览器正常打开
使用格式 driver = webdriver.Chrome()
4.try -except 异常处理:
1 | try: |
1 | 关键字 关键字说明 |
常用异常名:
1 | 异常名 描述 |
5.try-finally:异常处理
1.无论try语句中是否抛出异常,finally中的语句一定会被执行
1 |
|
不论try中写文件的过程中是否有异常,finally中关闭文件的操作一定会执行。由于finally的这个特性,finally经常被用来做 一些清理工作。
2.try块中包含break、continue或者return语句的,在离开try块之前,finally中的语句也会被执行。
1 | def func1(): |
1 | 运行结果为: |
再例如:
1 | def func2(): |
1 | 运行结果为: |
try中抛出的异常是IOError类型的,而except中定位的是IndexError类型的,try中抛出的异常没有被捕获到,所以except中 的语句没有被执行,但不论异常有没有被捕获,finally还是会执行,最终函数返回了finally中的返回值3。
这里还可以看到另外一个问题。try中抛出的异常没有被捕获到,按理说当finally执行完毕后,应该被再次抛出,但finally里 执行了return,导致异常被丢失。
可以看到在finally中使用return会导致很多问题。实际应用中,不推荐在finally中使用return返回。
6.def函数中的一些问题
1.返回值问题:
返回个数:(不涉及*args和**kwargs参数)
0:返回None
1:返回object
=>2:返回tuple
2.形参与实参问题:
问题1:
1
2
3
4 > > > > > > def text1(x,y):
> > > > > > print(x,y)
> > > > > > print(1,2)
> > > > > >
输出结果为:1,2
如果这样赋值:text1(y=1,x=2)#与形参顺序无关
则输出结果为:2,1
即如果你不指定赋值,它会默认与形参一一对应
你也可以 text1(1,y=2),但不可以text1(x=1,2)或text1(y=1,2).
问题2:
1 | def text2(x,y=2): |
你可以给形参赋个初值
你就可以这样调用text2(1),输出结果为:1,2
因为你给y形参已赋初值,如果你调用时未给y赋值,它会默认y=2
如果你这样调用 text2(1,3),则输出结果为:1,3.
问题3:
问题1与问题2都是传参个数必须与形参个数相等
接下来写一种个数不用相等的方式
1 | #*args:把N个位置参数转化为元组的形式 |
1 | def text4(x,*args): |
另一种方式:#**kwargs:把N个关键字参数转化为字典的形式
1 | def text5(**kwargs): |
注意:args和kwargs都必须放在最后