# 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)
Python3小技巧汇总
最新推荐文章于 2022-05-03 11:15:56 发布