Python3小技巧汇总

# 1.时间差 - 2位小数格式(四舍五入)
import time

start = time.time()
time.sleep(1.3333)
end = time.time()
print(round(end - start, 2))  # 1.33

# 2.lambda 求字典中测评分数第一名 / 最后一名得姓名 / 排序
score = {'zhangsan': 90, 'lisi': 88, 'wangwu': 99}
print(max(score, key=lambda k: score[k]))  # wangwu
print(min(score, key=lambda k: score[k]))  # lisi

dic = dict(zip(['张三','李四','王五'],[99,88,55]))
print('按key{}'.format(sorted(dic)))
print('按key{}'.format(sorted(dic.items())))
print('按vaue倒排{}'.format(sorted(dic.items(), key=lambda item:item[1])))
print('按vaue正排{}'.format(sorted(dic.items(), key=lambda item:item[1], reverse=True)))


# 3.for break else 示例
for i in range(5):
    if i > 3:
        print("如果被打断则不走else代码块")
        break
else:
    print("没有被打断且已遍历完毕才执行")

# 4.两个变量交换值
al = 1
jd = 2
al, jd = jd, al
print(al, jd)  # 2 1

# 5.列表取反 / 回文
f_list = [i for i in range(5)]
print(f_list[::-1])  # [4, 3, 2, 1, 0]

str = '处处飞花飞处处'
print(str[::-1] == str)	# True

# 6.三元表达式示例
s = 3 if 3 == 3 else 5
print(s)

# 7.列表生成式实现取偶数
even_list = [i for i in range(10) if i % 2 == 0]
print(even_list)  # [0, 2, 4, 6, 8]

# 8.列表重复出现最多、最少
import random
lst = [random.randint(1,5) for i in range(10)]
# 统计列表出现次数最多
print('最多{}'.format(max(set(lst), key=lst.count)))
# 统计列表出现次数最少
print('最少{}'.format(min(set(lst), key=lst.count)))

# 9.文件得读取
with open('train.txt', 'r', encoding='utf-8') as f:
    file = f.readlines()

# 10.文件得写入
with open('train-10000.txt', 'a+', encoding='utf-8') as f:
    for i in range(1):
        f.writelines(file[i])

# 11.sys.args[1]  程序从外部获取参数

# 12.命名空间作用域(局部/全局):名字得查找顺序以定义阶段为准,一层层往外查找

# 13.md5加密
import hashlib

m5 = hashlib.md5()
m5.update('上山打老虎'.encode('utf-8'))
m5_res = m5.hexdigest()
print(m5_res)  # 2ed27d961878f8b6296e2755fc23edbe

# 14.string.join()实现拼接后生成一个新得字符串
lan = ['C', 'Java', 'Python']
now_lan = ' '.join(lan)
print(now_lan)  # C Java Python

# 15.输出列表索引值和元素内容
team = ['国家队', '省队', '市队', '校队']
for index, item in enumerate(team):
    print(index, item)  # 0 国家队

# 16.matplotlib绘制折线图
# from matplotlib import pyplot as plt
# from matplotlib import font_manager
# import random
# # 用来正常显示中文标签
# plt.rcParams['font.sans-serif']=['SimHei']
# # 用来正常显示负号
# # plt.rcParams['axes.unicode_minus']=False
# # 设置x的值
# x = range(0, 120)
# # 设置y的值
# y = [random.randint(20,38) for i in range(120)]
# # 设置窗口大小
# plt.figure(figsize=(20, 8), dpi=80)
# #
# plt.plot(x, y)
# # 设置x坐标
# x_lable = ['10点{}分'.format(i) for i in range(60)]  # 10 - 11点
# x_lable += ['11点{}分'.format(i) for i in range(60)]    # 11点 - 12点
# plt.xticks(list(x)[::10], x_lable[::10], rotation=45)
# # 设置描述信息
# plt.xlabel("时间")
# plt.ylabel("温度 单位(℃)")
# plt.title("10点到12点每分钟的气温变化情况")
# # 显示
# plt.show()

# 17.持续运行3秒
seconds = 3
now_time = time.time()
while now_time + seconds > time.time():
    time.sleep(1)
    print('运行中')

# 18.进程
# from multiprocessing import Process
# def run(name):
#     print(f"{name} is running")
# # 线程定义到主函数中
# if __name__ == '__main__':
#     p_list = []
#     for i in [name for name in ['san', 'si', 'wu']]:
#         p = Process(target=run, args=(i,))
#         p.start()  # 启动线程
#         p_list.append(p)
#         [p.join() for p in p_list]  # 主等子

# # 19.线程
# from threading import Thread
# def play():
#     time.sleep(1)
#     print("playing")
# t_list = []
# for i in range(3):
#     t = Thread(args=play)
#     t.start()
#     t_list.append(t)
#     [t.join() for t in t_list]

# 20.get请求示例
import requests
import json
# res = requests.get(url=url, params=params, headers=headers, timeout=3)
# print(json.loads(res.text))

# 21.post请求示例
# requests.post(url, data=msg.encode("utf-8"), headers=headers, timeout=3)

# 22.无产装饰器示例
import logging


def timmer(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        res = func(*args, **kwargs)
        end = time.time()
        print(end - start)
        return res, end - start

    return wrapper


@timmer  # 语法糖
def eat():
    print('eatting')


eat()

# 23.应用:生成随机验证码  xYz123  大小写字母 + 数字
import random


def make_shuffle_value(size=4):
    """
    生成随机验证码  xYz123  大小写字母 + 数字
    :param size: 生成位数
    :return: 返回对应位数得验证码
    """
    value = ''
    for i in range(size):
        # 65-90 A-Z 97-122 a-z
        str_value = random.choice([chr(random.randint(65, 90)), chr(random.randint(97, 122))])
        int_value = str(random.randint(0, 9))  # 1-9
        value += random.choice([str_value, int_value])
    return value


# 24.进度条
def com_progress(percent):
    """
    进度条
    :param percent: 已完成lenth / 总lenth
    :return: [##################################################] 100%
    """
    if percent > 1:
        percent = 1
    res = int(50 * percent) * '#'
    print('\r[%-50s] %d%%' % (res, int(100 * percent)), end='')


# 25.读取conf.ini配置文件
import configparser
from pathlib import Path


def conig_info(conf_group, confkey):
    """
    读取conf.ini配置文件
    格式:
        [nlp-api]
        seg = model/seg/predict
    :param conf_group:  节点 <-> nlp-api
    :param confkey:  节点-key <-> seg
    :return: 节点-value <-> model/seg/predict
    """
    # 读取config.ini配置文件
    conf = configparser.ConfigParser()
    conf.read(Path.cwd().parent / 'conf/config.ini')
    return conf.get(conf_group, confkey)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值