• python基础练习题


    # 利用pip, 安装第三方模块requests, 描述你用什么方法来确认安装是成功的。
    print('进入python环境,导入requests模块,导入成功.')

    # 把2.918 转化为整形
    a = 2.918
    print(int(a))

    # 把10 进制数 18 转化为2进制数
    print(bin(18))

    # 用java 替换字符串:”Python is popular” 里面的Python,并 把java 变换成JAVA
    print('Python is popular'.replace('Python','java'.upper()))

    # 把列表 [1, 2, 3,4 5,6,7,8]里面的2, 4, 6,8 打印出来
    list = [1, 2, 3,4,5,6,7,8]
    print([x for x in list if x%2==0])

    # 创建一个字典,字典的key分别是name, sex, province , 修改原始province 的值 为新值”江苏”
    dicts = {'name':'zhangsan', 'sex':'man', 'province':'shanghai'}
    dicts['province'] = 'jiangsu'
    print(dicts)

    Test_str="Python was created in 1989, Python is using in AI, big data, IOT."
    #按下列要求对上面文字做出处理。
    # • 把上面文字中的所有大写转化为小写
    print(Test_str.lower())

    # • 把这段话每个单词放到列表里面,不能包含空格。
    new_str = Test_str.replace(',','').replace(' ','|')
    print(new_str.split('|'))

    # • 把列表最中间的一个单词打印出来。
    print(new_str[int(len(new_str)/2)])

    # 2.List1=[“python”, 5,6, 8], list2=[“python”,”5”, 6, 8,10], 对list1和list2做出如下处理:
    # • 把上面2个list的内容合并成一个
    List1=["python",5,6,8]
    List2=["python","5",6,8,10]
    print(List1+List2)

    # • 利用set里面的方法,对合并后的list, 去除重复元素。最 后输出是还是list =“python”, 5,6, 8,”5”,10
    set1=set(List1+List2).difference()
    print(str(set1))

    # 实现一个函数,要求对一个列表里面所有数字求和,如果里 面含有非数字的元素。直接跳过。比如[1,2,3] 输出是5, 如果 是[1,2,4,”a”] 输出是7。 并在另外一个包(目录)里面调用这个 函数
    def fo(*args):
    sum = 0
    if len(args)>=1:
    for arg in args:
    if type(arg) == int:
    sum = sum+arg
    else:
    continue
    else:
    print("无参数")
    print(sum)

    fo(1,2,3,'qwe')

    # 实现一个不定长参数的函数def flexible(aa, *args, **kwargs):,
    # 把传入的参数和值打印出来。比如传入参数是
    def flexible(*args, **kwargs):
    print(args,kwargs)
    flexible(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 有什么作用
    print('*args, **kwargs主要用于将不定长参数传递给函数。*args将传递的参数打包成元组形式, **kwargs将传递的参数打包成字典形式')
     

    通过当前时间和函数名生成测试报告名称,随机字符串(大小写字母和数字)生成测试数据

    
    
    import random
    import time
    import string

    def generate_report_name(ext='.html'):
    now_time = time.strftime("%Y%m%d_%H%M%S", time.localtime())
    method_name = generate_report_name.__name__
    report_name = "%s_%s%s" % (method_name, now_time, ext)
    return report_name

    def generate_random_data(num=6):
    base_data = string.ascii_uppercase + string.ascii_lowercase + string.digits
    random_data = ''.join(random.SystemRandom().choice(base_data) for _ in range(num))
    return random_data

    print(generate_report_name())
    print(generate_random_data())

    ----------------------------

    
    

    使用logger设置日志,将日志保存到文件。

    
    

    import os, logging
    current_path = os.path.abspath(os.path.dirname(file))
    file_path = os.path.join(current_path, "TestLog.txt")
    file_name = os.path.basename(file).split('.')[0]

    
    

    time_format = logging.Formatter('[%(asctime)s %(name)s_%(levelname)s] %(message)s')
    log_file = logging.FileHandler(file_path)
    log_file.setFormatter(time_format)

    
    

    logger = logging.getLogger(str(file_name))
    logger.setLevel(logging.INFO)
    logger.addHandler(log_file)

    
    

    logger.info("=== info")
    logger.error("=== error")
    logger.warning("=== warning")

    
    

    ----------------------------

    
    

    3、查找/tomcat/log/ 目录下的log文件,如果文件最后修改时间是在1小时之前,把次文件打包压缩,备份到

    
    

    /home/back/log 目录下

    
    

    import os
    import datetime
    import zipfile

    
    

    def zip_log_file(src, dest):
    if not os.path.exists(src) and not os.path.isdir(src):
    print("源路径不存在 或 源路径不是目录")
    return

    
    

    if not os.path.exists(dest):
    os.makedirs(dest)

    
    

    files = list(filter(lambda f: os.path.isfile(f) and f.endswith(".log"), os.listdir(src)))
    if not files:
    print("%s 目录下无 .log 文件" % src)

    
    

    for file in files:
    file_full_path = os.path.join(src, file)
    delay_time = datetime.timedelta(hours=1)
    now_time = datetime.datetime.now()
    modify_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_full_path))
    zip_file_full_path = os.path.join(dest, file + ".zip")
    if modify_time < (now_time - delay_time):
    z = zipfile.ZipFile(zip_file_full_path, 'w', zipfile.ZIP_DEFLATED)
    z.write(file)
    z.close()

    
    

    zip_log_file("/tomcat/log/", "/tomcat/back/log")

    
    

    ----------------------------

    
    

    在Linux下每隔1分钟检查一下tomcat进程是不是在运行,如果tomcat进程退出了,立即启动tomcat进程

    
    

    搜索目录/home/tools/下所有已test开头,py结尾的文件(包括子目录的), 把文件全路径输出到一个列表里面打印出来

    
    

    import os

    
    

    files_list = []

    
    

    def find_files(src):
    if not os.path.exists(src) and not os.path.isdir(src):
    print("源路径不存在 或 源路径不是目录")
    return

    
    

    for f in os.listdir(src):
    if os.path.isfile(f) and f.startswith('test') and f.endswith('.py'):
    full_path = os.path.join(src, f)
    files_list.append(full_path)
    elif os.path.isdir(f):
    son_src = os.path.join(src, f)
    find_files(son_src)

    
    

    find_files("/home/tools/")
    print(files_list)

     

    快速添加数据的小技巧:

    
    
    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)

  • 相关阅读:
    04-JQuery
    03-JavaScript
    02-CSS&JS
    01-HTML
    [LeetCode]Insert Interval
    [shell编程]正则表达式
    [LeetCode]Jump Game II
    [LeetCode]Jump Game
    [LeetCode]Wildcard Matching
    [shell编程]初识sed和gawk
  • 原文地址:https://www.cnblogs.com/1026164853qqcom/p/11215200.html
Copyright © 2020-2023  润新知