线上第九期 python 语言基础课程-1-0424

环境

一、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)

课后作业:

  1. 利用pip, 安装第三方模块requests, 描述你用什么方法来确认安装是成功的。

  2. 把2.918 转化为整形

  3. 把10 进制数 18 转化为2进制数

  4. 用java 替换字符串:”Python is popular” 里面的Python,并 把java 变换成JAVA

  5. 把列表 [1, 2, 3,4 5,6,7,8]里面的2, 4, 6,8 打印出来

  6. 创建一个字典,字典的key分别是name, sex, province , 修改原始province 的值 为新值”江苏”

  7. 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] (顺序可以不一 样)

  8. 实现一个函数,要求对一个列表里面所有数字求和,如果里 面含有非数字的元素。直接跳过。比如[1,2,3] 输出是5, 如果 是[1,2,4,”a”] 输出是7。 并在另外一个包(目录)里面调用这个 函数

  9. 实现一个不定长参数的函数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

虚拟环境:

https://testerhome.com/topics/18860