![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python基础
weixin_38892128
这个作者很懒,什么都没留下…
展开
-
json和pickle
json:用于列表和字典的数据存储和传输,无法处理集合# 把一个一个字典放文件里,再读出来import jsondic = {'k1':'v1', 'k2':'v2'}str_dic = json.dumps(dic)f = open('a.txt','a')f.write(str_dic + '\n')f.write(str_dic + '\n')f.write(str_dic + '\n')f.close()f = open('a.txt','r')for lin原创 2020-08-30 16:54:11 · 143 阅读 · 0 评论 -
python 微信红包算法
红包总额m,分给n个人,每人最少1分,随机分配import randomimport mathdef red_packet(res_money, res_num): res = [] while res_num > 1: min = 1 # 红包最小值1分钱 max = res_money/res_num*2 # 红包最大值限定平均...原创 2020-04-12 15:59:30 · 1745 阅读 · 0 评论 -
数据结构-单链表-python
__author__ = 'hp'class Node: """节点""" def __init__(self, item): self.item = item self.next = Noneclass SingleLinkedList: """单链表""" def __init__(self, node=None): ...原创 2020-01-30 21:31:05 · 108 阅读 · 0 评论 -
栈的应用:括号匹配
# -*- coding: UTF-8 -*-def bracket_match(s): stack = [] left = ['(','[','{'] d = { '(':')', '[':']', '{':'}' } for i in s: if i in left: stack.append(i) else: if len(stack) == 0: ...原创 2020-01-29 17:02:07 · 239 阅读 · 0 评论 -
一些python算法题
# 今日头条测试开发面试编程题:123456789隔三个字符反转成321654987def reverse_by_3(s): s1 = '' while True: first = s[:3] s1 += first[::-1] s = s[3:] if len(s)<3: s1 ...原创 2020-01-20 10:20:02 · 196 阅读 · 0 评论 -
python 正则表达式 re
正则表达写法:re.compile(r’表达式’)包含变量的正则表达式写法re.compile(r’表达式’+变量+’表达式’)re.compile(r’表达式(%s)表达式’ %变量)原创 2020-01-15 15:05:58 · 107 阅读 · 0 评论 -
python之pymysql模块(mysql数据库操作)
import pymysql# 连接数据库conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='12345678', db='test')# 游标默认返回元组# cursor = conn.cursor()# 游标设置为字典,fetch返回字典格式cursor = conn.cursor(...原创 2019-12-17 18:46:34 · 114 阅读 · 0 评论 -
sql注入的例子
import pymysqldb = pymysql.connect(host='localhost', port=3306, user='root', passwd='1234', db='test')cursor = db.cursor()username = '"随便" or 1=1 -- 'password = '随便'# 下面这两种拼接方式都可能被注入sql,导致会...原创 2019-12-16 18:48:56 · 152 阅读 · 0 评论 -
python 日志应用实例
import loggingdef get_logger(): # 创建日志对象 log_obj = logging.getLogger('日志') # 设置日志水平 log_obj.setLevel(logging.DEBUG) # 创建控制台句柄 sh = logging.StreamHandler() # 创建文件句柄 ...原创 2019-12-15 14:40:23 · 173 阅读 · 0 评论 -
python 日志基础 logging模块
屏幕输出日志import logginglogging.debug('debug')logging.info('info')logging.warning('warning')logging.error('error')logging.critical('critical')文件输出日志import logginglogging.basicConfig(#日志水平 ...原创 2019-12-15 14:22:02 · 90 阅读 · 0 评论 -
python 登录装饰器
account = { 'username':'test', 'password':'123'}# 如果要在局部函数里改这个全局变量的值,要用globallog_status = { 'username':None, 'isLogin':False}# 登录装饰器def login(auth_type): """ :param aut...原创 2019-12-10 22:13:16 · 756 阅读 · 0 评论 -
变量作用域
在函数内修改全局变量,需要在函数里面定义global,否则只是创建了一个局部变量a = Falsedef f(): if not a: a = True #这里相当于创建了另一个局部变量 a,而不是修改全局变量 a print(a)正确应该是这样:a = Falsedef f(): global a # 引用全局变量 if ...原创 2019-12-10 16:11:43 · 85 阅读 · 0 评论 -
python 三级菜单 - 增删改查
#!/usr/bin/env python3menu = { "中国计量大学":{ "机电学院":{ "机械设计":"张三", "自动化":"李四", "测控":"王五" }, "理学院":{ "物理":"A", "数学...原创 2019-12-10 15:57:05 · 785 阅读 · 0 评论 -
python 装饰器
无参数的装饰器,记住return原函数def wrapper(f): def inner(*args, **kwargs): print('调用前') result = f(*args, **kwargs) print('调用后') return result # 注意要return 原函数 return inne...原创 2019-12-10 15:56:32 · 105 阅读 · 0 评论 -
python作业:简单登录接口+读取文件
登录.py#!/usr/bin/env python3# 作业1:编写登陆接口## (1)输入用户名密码## (2)认证成功后显示欢迎信息import jsonimport osdef get_account(): """ 获取文件里的登录账号 :return: 账号的字典格式 """ file_path = 'account.txt...原创 2019-12-09 16:22:02 · 252 阅读 · 0 评论 -
udp 聊天 - 多线程
用户A#!/usr/bin/env python3# coding:utf-8import socketimport threadingdef recv_msg(udp_server_socket): """接受消息""" while True: #recvfrom recv_data, new_client_addr = udp_se...原创 2019-11-27 17:58:07 · 115 阅读 · 0 评论 -
TCP 三次握手,四次挥手
三次握手第一次,client向server发起连接请求,同步位SYN=1,序列号seq=x第二次,server收到数据,给client返回一个确认报文,ACK=1,确认号ack=x+1,SYN=1,序列号seq=y第三次,client收到数据,给server返回,ACK=1,确认号ack=y+1,序列号seq=x+1四次挥手假设Client端发起中断连接请求,也就是发送FIN报文。S...原创 2019-11-18 18:48:19 · 147 阅读 · 0 评论 -
re 正则匹配分组
# 匹配分组# | 匹配左右# (ab) 将括号中字符作为一个分组# \num 引用分组num匹配到的字符串# (?P<name>) (?P=name) 分组起名name# 匹配html标签# \num 引用分组num匹配到的字符串html = '<h1>hello</h1>'res = re.search(r'^<(\w+)>...原创 2019-11-18 00:22:24 · 1089 阅读 · 0 评论 -
python写一个http服务器
import socketimport redef main(): # 1. 创建socket http_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2. 绑定地址 http_server_socket.bind(('', 7890)) # 3. 监听 ...原创 2019-11-17 21:18:04 · 710 阅读 · 1 评论 -
tcp服务器文件下载
客户端import socketdef main(): # 1. 创建socket tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2. 连接服务器 server_address = ('127.0.0.1', 7890) tcp_client_soc...原创 2019-11-16 23:42:25 · 365 阅读 · 0 评论 -
tcp socket通信
tcp客户端import socketdef main(): # 1. 创建套接字 tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 2. 连接服务器 tcp_socket.connect(('127.0.0.1',7890)) # 3. 发送信息 send_da...原创 2019-11-16 16:29:31 · 127 阅读 · 0 评论 -
python random 随机
import randome = random.random() #[0,1)a = random.randint(1,5) #[1,5]b = random.randrange(1,5) #[1,5]c = random.uniform(1,5.1)d = random.choice([1,2,3]) # 随机取列表值print(a,b,c,d,e)f = [1,2,3,4,...原创 2019-11-14 20:22:24 · 225 阅读 · 0 评论 -
python 列表和字典推导式
列表推导l = [x*x for x in range(10) if x%2 == 0]字典推导dic = {k:k*k for k in l}dic2 = {v:k for k, v in dic.items()}原创 2019-11-14 20:06:50 · 100 阅读 · 0 评论 -
购物车作业 - 列表
product_list =[ ['iphone', 5800], ['mac', 9000], ['coffee',30], ['book', 80], ['bike',1500], ['clothes',400]]cart = []salary = 20000while True: print('商品列表:') fo...原创 2019-11-02 23:59:33 · 269 阅读 · 0 评论 -
Python学习 - 创建对象,分配空间,返回引用__new__方法
# coding:utf-8# 创建对象时,__new__方法分配空间,并且返回对象引用。__init__方法初始化class MusicPlayer(object): # 重写new方法,一定要返回内存地址 def __new__(cls, *args, **kwargs): # 1. 自动调用new print '创建对象,分配空间'...原创 2019-01-22 13:49:29 · 484 阅读 · 0 评论 -
Python学习 - 静态方法
# coding:utf-8# 静态方法,既不访问类属性,也不访问实例属性# 修饰符为 @staticmethodclass Dog(object): @staticmethod def run(): print 'running ...'# 类名直接调用静态方法Dog.run()...原创 2019-01-20 00:48:02 · 109 阅读 · 0 评论 -
Python 学习 - 类方法
# coding:utf-8# 类方法开头为@classmethod# 参数为cls,调用类属性class Tool: count = 0 @classmethod def show_tool_count(cls): print '工具数量 %d' % cls.count def __init__(self, name): ...原创 2019-01-20 00:47:50 · 117 阅读 · 0 评论 -
Python学习 - 类属性
类属性是用来记录和类相关的特征,而不是对象的特征# coding:utf-8class Tool(object): # 类属性 count = 0 def __init__(self,name): self.name = name Tool.count += 1tool1 = Tool('斧头')tool2 = Tool(...原创 2019-01-18 20:48:06 · 171 阅读 · 3 评论 -
Python 学习 - 经典类和新式类
经典类,不继承object基类,多继承的查找顺序是从左侧深入继承树再往右查找新式类,继承object基类,多继承的查找顺序是从左往右水平查找,再深入继承树# coding: utf-8class A: def test(self): print 'This is A'class B(A): passclass C(A): def tes...原创 2019-01-18 19:56:54 · 148 阅读 · 0 评论 -
Python 学习 - 子类可以通过父类的公有方法,从而调用私有方法
# coding:utf-8class Parent: def __test(self): print '父类私有方法' def test(self): print '父类共有方法' # 调用私有方法 self.__test()class Son(Parent): pass...原创 2019-01-18 19:22:45 · 983 阅读 · 0 评论 -
python学习 - 重写父类的方法
# coding:utf-8class Animal: """动物类""" def __init__(self): pass def eat(self): print 'eat' def drink(self): print 'drink' def run(self): print...原创 2019-01-18 16:17:45 · 402 阅读 · 0 评论 -
Python 学习 - 类继承的传递
# coding:utf-8 class Animal: """动物类""" def __init__(self): pass def eat(self): print 'eat' def drink(self): print 'drink' def run(self): print...原创 2019-01-18 16:04:18 · 346 阅读 · 0 评论 -
Python学习 - 类的继承
# coding:utf-8class Animal: """动物类""" def __init__(self): pass def eat(self): print 'eat' def drink(self): print 'drink' def run(self): print '...原创 2019-01-18 13:35:35 · 275 阅读 · 0 评论 -
python 学习 - 单例:让类创建无论多少个对象,最后永远只产生一个实例
# coding:utf-8# 单例:让类创建无论多少个对象,最后永远只产生一个实例# 创建对象时,__new__方法分配空间,并且返回对象引用。__init__方法初始化class MusicPlayer(object): instance = None def __new__(cls, *args, **kwargs): """重写new方法,一...原创 2019-01-22 15:38:18 · 1000 阅读 · 0 评论 -
Python学习 - 单次执行初始化init
# coding:utf-8# 单例:让类创建无论多少个对象,最后永远只产生一个实例# 单次执行初始化initclass MusicPlayer(object): instance = None def __new__(cls, *args, **kwargs): """重写new方法,一定要返回内存地址""" if cls.inst...原创 2019-01-22 15:48:28 · 563 阅读 · 0 评论 -
Python学习 - 异常 - 基础
# coding:utf-8age_str = raw_input('Input your age: ')try: age = int(age_str) print ageexcept: print '输入的不是整数'原创 2019-01-22 16:00:30 · 100 阅读 · 0 评论 -
mysql启动错误 ERROR! The server quit without updating PID file (/usr/local/mysql/data/appledeMacBook-Air
ERROR! The server quit without updating PID file (/usr/local/mysql/data/appledeMacBook-Air.local.pid)解决办法:查找mysql进程ps -ef | grep mysql杀死进程kill -9 pid问题解决原创 2019-08-11 00:54:18 · 6437 阅读 · 0 评论 -
itertools的函数combinations, permutations
permutation是随机有放回抽样combination是随机无放回抽样from itertools import combinations, permutationsprint list(combinations([1,2,3],2))-->[(1, 2), (1, 3), (2, 3)]print list(permutations([1,2,3], 2)) -->[(...原创 2019-05-27 19:10:15 · 712 阅读 · 0 评论 -
itertools combinations函数
https://www.hackerrank.com/challenges/iterables-and-iterators/problemproblemThe itertools module standardizes a core set of fast, memory efficient tools that are useful by themselves or in combinati...原创 2019-05-26 22:28:43 · 5958 阅读 · 0 评论 -
python 运算 - 除法
1. / 浮点除法4/2 == 2.03. // 整除除法4//2 == 24. % 余数除法4%2 == 0原创 2019-05-25 23:21:59 · 4846 阅读 · 0 评论