环境
一、Python环境快速建立
1、官网:http://www.python.org
2、下载:选择DownLoads—>选择版本(3.6.5)进入—>选择操作系统->file:
mac:”macOS 64-bit installer”;
windows:”Windows x86-64 executable installer”
使用IDE工具编码更轻松:Pycharm-CE
3、Pycharm-CE 下载地址:Download PyCharm: Python IDE for Professional Developers by JetBrains
4、验证python是否安装成功:在控制台上输入:python -V;或 python3 -V
理论
一、变量及数据类型
等号是赋值不是等于,是把右边的放到左边的一个名字叫my_int的变量位置中
变量以字母开头,大小写敏感,不能是关键字,字母数字下划线
my_int = 10
1、print(my_int) # 输出到控制台
2、type(my_int) # 显示数据类型
3、dir(my_str) # 查看有哪些方法
4、repr(x) # 将对象 x 转换为表达式字符串
5、eval(str) # 用来计算在字符串中的有效Python表达式,并返回一个对象
6、字符串替换 old为new:str.replace(‘old’,‘new’) 替换指定次数的old为new:str.replace(‘old','new',maxReplaceTimes)
7、 str.join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。s1.join(seq),s1="_"
seq是你要连接的序列
8、格式化:
print('Hi, %s, you have $%d.' % ('linda', 100000000)) print('Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125))
二、基础语法:
1、条件语句
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
2、for循环语句
for iterating_var in sequence:
statements(s)
三、数据处理
列表:以中括号[]开头结尾,数据通过逗号,隔开,使用引号. 主要方法:长度,增删改查(输入某一或几个),反转,排序 book = [“python", "java", "appium", "selenium"] 1 输出book列表中第2个book[1] 2 列表的长度len(book) 3 在后面追加数据book.append 4 删除第3个数据book.pop 5 将数据插入第3位置book.insert(2,” d”) 6在列表后面追加另一个列表book.expand() 7 在列表中找到并删除一个特定项book.remove(“”) 8 将列表顺序反转 book.reverse() 9 将列表排序 book.sort()
字典:{“key”:"value"} 查:通过key来访问对应value->dict.get(“key”) 增:插入key = 改:更新已有key的value = 删:删除一个key —> del
四、函数
1、函数
def functionname( parameters ): #函数注释,功能说明 代码 return value
位置参数
调用函数时根据函数定义的参数位置来传递参数。
关键字参数
用于函数调用,通过“键-值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求
默认参数
用于定义函数,为参数提供默认值,调用函数时可传可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)
不定长参数
定义函数时,有时候我们不确定调用的时候会传递多少个参数(不传参也可以)。此时,可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。
解包参数
*和**,也可以在函数调用的时候使用,称之为解包(unpacking)
位置参数、默认参数、可变参数的混合使用
2、函数调用
在同一模块(module)里面的调用—->函数名
在不同模块的调用—->import
在不同包里的调用—->from 文件(.函数) imort 函数变量*
调用Python自带函数 import os/sys/re…
调用第三方模块的函数 pip install 库名 —>import
例子
1、查找列表中某个值是否在列表中
a = 'f'
b = ['a', 'b', 'c', 'd']
for my in b:
if a == my:
print("找到!")
break
else:
print("没找到!")
2、# 跳过某个字母不输出
for letter in 'Python':
if letter == 'h':
continue
print('当前字母 :', letter)
3、while 循环 将偶数与奇数分开
def while_demo():
numbers = [12, 37, 5, 42, 8, 3]
even = []
odd = []
while len(numbers) > 0:
number = numbers.pop()
if(number % 2 == 0):
even.append(number)
else:
odd.append(number)
return even, odd
4、
把key循环出来
for key in D:
print(key, '=>', D[key])
只循环value
for value in D.values():
print(value)
把key和value都循环出来
for key, value in D.items():
print(key,':',value)
assert D[key] == value
5、
def foo(x, *args, a=4, **kwargs): #使用默认参数时,注意默认参数的位置要在args之后kwargs之前
print(x)
print(a)
print(args)
print(kwargs)
foo(1, (5, 6, 7, 8), {"y": 2, "z": 3})
foo(1, *(5, 6, 7, 8), **{"y": 2, "z": 3}, a=6)
练习
1、多变量一起赋值
a = b = c = 1
print(a,b,c)
a, b, c = 1, 2, "linda"
print(a,b,c)
2、交换数据
x,y =y,x
3、将二个列表分别组合在一起
for a, b in zip(a, b): print(a, b)
4、输入多个相同的只需要乘法
print(str*4)
5、简洁写法:10以内偶数
li = [x for x in range(10) if x%2==0]
6、反转list列表
print(list(reversed(lists)))
7、列表排序
print(list(sorted(lists)))
8、列表中每个元素出现几次
from collections import Counter my_couter = Counter(lists2) print(my_couter.most_common())
9、
快速添加数据的小技巧:
ls = [1,2,3,4]
list1=[i for i in ls if i>2]
tuple1=(2,4,6)
dict1= {x: x**2 for x in tuple1}
dict2= {x: 'item'+str(x**2) for x in tuple1}
set1 = {x for x in 'hello world' if x not in 'low level'}
实战分析:
写一个函数,接受一个参数,如果是文件,就执行这个文件,如果是文件夹,就执行这个文件夹下所有的py文件
def func(path):
# 先判断这个path是文件还是文件夹,isdir isfile
# 如果是文件,.py结尾的
if os.path.isfile(path) and path.endswith('.py'):
# 执行这个文件 :
os.system('python %s'%path) # 模拟了在cmd中执行代码的过程
# 如果是文件夹
elif os.path.isdir(path):
# 查看这个文件夹下的所有内容 listdir
for name in os.listdir(path):
abs_path = os.path.join(path,name)
# 如果是文件 .py结尾的
if abs_path.endswith('.py'):
# 执行这个文件 : os.system('python %s'%abs_path)
os.system('python %s' % abs_path)
课后作业:
-
利用pip, 安装第三方模块requests, 描述你用什么方法来确认安装是成功的。
-
把2.918 转化为整形
-
把10 进制数 18 转化为2进制数
-
用java 替换字符串:”Python is popular” 里面的Python,并 把java 变换成JAVA
-
把列表 [1, 2, 3,4 5,6,7,8]里面的2, 4, 6,8 打印出来
-
创建一个字典,字典的key分别是name, sex, province , 修改原始province 的值 为新值”江苏”
-
Test_str=“Python was created in 1989, Python is using in AI, big data, IOT.” 按下列要求对上面文字做出处理。
• 把上面文字中的所有大写转化为小写
• 把这段话每个单词放到列表里面,不能包含空格。
• 把列表最中间的一个单词打印出来。
2.List1=[“python”, 5,6, 8], list2=[“python”,”5”, 6, 8,10], 对list1和list2做出如下处理:
• 把上面2个list的内容合并成一个
• 利用set���面的方法,对合并后的list, 去除重复元素。最 后输出是还是list =[“python”, 5,6, 8,”5”,10] (顺序可以不一 样) -
实现一个函数,要求对一个列表里面所有数字求和,如果里 面含有非数字的元素。直接跳过。比如[1,2,3] 输出是5, 如果 是[1,2,4,”a”] 输出是7。 并在另外一个包(目录)里面调用这个 函数
-
实现一个不定长参数的函数def flexible(aa, *args, **kwargs):,
把传入的参数和值打印出来。比如传入参数是
flexible(aa, 2, 3, x = 4, y = 5, *[1, 2, 3], **{'a':1,'b': 2})
输出结果:(2, 3, 1, 2, 3),{'a': 1, 'y': 5, 'b': 2, 'x': 4}
面试题:*args, **kwargs 有什么作用
测试工作相关作业
1、通过当前时间和函数名生成测试报告名称,随机字符串(大小写字母和数字)生成测试数据
2、使用logger设置日志,将日志保存到文件。
3、查找/tomcat/log/ 目录下的log文件,如果文件最后修改时间是在1小时之前,把次文件打包压缩,备份到
/home/back/log 目录下
4、在Linux下每隔1分钟检查一下tomcat进程是不是在运行,如果tomcat进程退出了,立即启动tomcat进程
5、搜索目录/home/tools/下所有已test开头,py结尾的文件(包括子目录的), 把文件全路径输出到一个列表里面打印出来
练习代码:
https://github.com/linda883/excise