- 博客(31)
- 收藏
- 关注
原创 关于解决本地mysql忘记登录密码的方法
以管理员权限打开命令提示符然后输入:注:此处运行加载后勿关闭以管理员权限打开新的命令提示符然后输入:这样修改密码就完成了输入:输入修改后的密码就可以了
2022-06-21 00:00:02
964
1
原创 二分法、三分法的详解
二分法、三分法的详解这两种方法都是对数据查找的一种高效率方式二分法二分查找是一种算法,也叫折半查找,在某些情况下相比较顺序查找,使用二分法查找的效率更高,但是使用该算法的前提是:查找的数据必须是有序的。如果要查找的元素包含在列表中,二分查找返回其位置;否则就返回null。举一个例子:我随便想一个1~100的数字。你的目标是以最少的次数猜到这个数字。你每次猜后,我会说小了、大了或对了。假设你从1开始依次向上猜,过程是1,2,3,4…这是简单查找,更准确的说是傻找。每次猜测只能排除一个数字。如果我
2021-02-02 17:13:54
4131
原创 互斥锁
互斥锁多线程的优势在于并发性,即可以同时运行多个任务。但是当线程需要使用共享数据时,也可能会由于数据不同步产生“错误情况”,这是由系统的线程调度具有一定的随机性造成的。而互斥锁的作用就是解决数据不同步问题。关于互斥锁,有个经典的“银行取钱”的问题。对于银行取钱有以下几个基本流程:用户输入账号、密码,系统判断用户的账户、密码是否匹配。用户输入取款金额。系统判断账户金额是否大于取款金额。如果余额大于取款金额,则取款成功;如果余额小于取款金额,则取款失败。是不是就这样看上去,这就是日常生活中的取
2021-01-17 17:07:01
233
原创 daemon守护线程
daemon守护线程当程序中拥有多个线程时,主线程执行结束并不会影响子线程继续执行。换句话说,只有程序中所有线程全部执行完毕后,程序才算真正结束。下面程序演示了包含 2 个线程的程序执行流程:import threading#主线程执行如下语句for i in range(5): print(threading.current_thread().getName())#定义线程要调用的方法,*add可接收多个以非关键字方式传入的参数def action(*add): fo
2021-01-15 17:25:09
162
1
原创 python线程的生命周期
python线程的生命周期通过分析线程的执行过程我们得知,当程序中包含多个线程时,CPU不是一直被的特定的线程霸占,而是轮流的执行各个线程。那么CPU在轮换执行线程的过程中,线程都经历了什么呢?线程从创建到消亡的整个过程中,可能会经历5种状态,分别是新建、就绪、运行、阻塞和死亡。下面给个图参考分析:线程的新建和就绪状态:无论是通过Thread类直接实例化对象创建线程,还是通过继承自Thread类的子类实例化创建线程,新建的线程在调用在start()方法之前,不会得到执行,此阶段的线程就处于新建
2021-01-11 09:08:48
276
1
原创 python爬虫和线程的简单知识总结
当心沉浸于某件事后,总觉时间过得好快,一周的时间就这样悄然而过了。接下来对于这周所学的一些知识点简单的总结整理一下:表单的创建对于表单的创建首先需要导入import模块import xlwt # 表单的创建首先需要导入import模块wb = xlwt.work() # 创建一表单sheet = wb.add_sheet('表一') # 工作簿名为表一sheet.write(x, y, '添加的元素') # x是行,y是列,添加的元素是你在(x,y)处所放的元素wb.sav
2021-01-09 17:43:05
146
原创 python创建线程详解
python创建线程详解python主要通过两种方式来创建线程:使用threading模块中的Thread类构造器创建线程。即直接对类threading.Thread进行实例化创建线程,并调用实例化对象的start()方法启动线程。继承 threading 模块中的 Thread 类创建线程类。即用 threading.Thread 派生出一个新的子类,将新建类实例化创建线程,并调用其 start() 方法启动线程。调用Thread类的构造器创建线程Thread 类提供了如下的 init(
2021-01-09 17:34:22
778
1
原创 day17-面向对象的练习
定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积class Rectangle: def __init__(self, width, height): self.width = width self.height = height def perimeter(self): return self.width * 2 + self.height * 2 def area(self): return s..
2020-12-29 19:08:39
265
原创 day16正则表达式练习
利用正则表达式完成下面的操作:1.用户名匹配 要求: 1.用户名只能包含数字 字母 下划线 2.不能以数字开头 3.⻓度在 6 到 16 位范围内'[a-zA-Z][a-zA-Z0-9]{5,15}'密码匹配 要求: 1.不能包含!@#¥%^&*这些特殊符号 2.必须以字母开头 3.⻓度在 6 到 12 位范围内'[a-zA-Z][^!@#¥%^&*]{5,11}'ipv4 格式的 ip 地址匹
2020-12-29 09:20:43
113
原创 day12 有参装饰器的练习
写一个装饰器@tag要求满足如下功能:@tag(name='p')def render(text): # 执行其他操作 return text@tag(name='div')def render2(): return 'abc'print(render('Hello')) # 打印出: <p>Hello</p>print(render2()) # 打印出: <div>abc</div>def tag(..
2020-12-24 09:57:21
77
原创 Python函数的用法详解
Python 中函数的应用非常广泛,我们已经接触过多个函数,比如 input() 、print()、range()、len()、max() 函数等等,这些都是 Python 的内置函数,可以直接使用。除了可以直接使用的内置函数外,Python 还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写、多次调用的目的。举个例子,前面学习了 len() 函数,通过它我们可以直接获得一个字符串的长度。我们不妨设想一下,如果没有 len() 函数,要想获取一个字符串的长度,该如何实现呢?
2020-12-22 19:27:52
202
原创 day11高阶函数的练习
为函数写一个装饰器,在函数执行之后输出 afterdef after(fn): def new_after(*args, **kwargs): fn(*args, **kwargs) print('after') return new_after为函数写一个装饰器,把函数的返回值 +100 然后再返回。def add(fn): def new_add(x, y): return fn(x, y) + 100 r..
2020-12-22 19:03:55
75
原创 day10函数(递归)的练习
写一个匿名函数,判断指定的年是否是闰年year1 = lambda years: '瑞年' if (years % 4 == 0 and years % 100 != 0) or years % 400 == 0 else '平年'print(year1(2000))print(year1(2020))写一个函数将一个指定的列表中的元素逆序( 如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自带的逆序函数)def f(list1:list): new_..
2020-12-21 21:57:17
131
原创 day9-函数作业
编写一个函数,交换指定字典的key和value。 例如:dict1={'a':1, 'b':2, 'c':3} --> dict1={1:'a', 2:'b', 3:'c'} def My_dict(dic): new_dict = [(v, k) for k, v in dic.items()] return new_dictprint(My_dict({'A': 10, 'B': 20})) # 测试编写一个函数,提取指定字符串中所有的字母,然后拼接..
2020-12-18 20:16:21
196
2
原创 day8-字符串相关习题练习
输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)例如: 输入**'abcd1234 ’ ** 输出**‘bd24’**message = input('请输入一串字符:')new_message = [print(message[i], end='') for i in range(len(message)) if i % 2]输入用户名,判断用户名是否合法(用户名长度6~10位)user = input('请注册用户名:')if 6 <= len(u..
2020-12-17 19:31:46
362
原创 day-字典和集合的详解
什么是字典(dict) 字典是容器型数据类型;将{}作为容器的标志,里面多个元素(元素是键值对)用逗号隔开:{键1:值1;键2:值2;键3:值3…} 字典的元素:必须是键值对;键 - 必须是不可变数据,一般用字符串。(功能是对值进行说明)值 - 任何类型的数据都可以,可以重复。(值才是字典真正的想要保存的数据)字典是可变的(支持增删改);字典是无序的(不支持下标) 空字典:d1 = {}print(type(d1)) # <class 'dict'> 键不可变
2020-12-16 19:24:06
179
原创 day7字典和集合的应用练习
1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)student = {'name': 'Tommy', 'age': 18, 'score': 60, 'tel': '123456', 'sex': 'male'}2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)a.统计不及格学生的个数b.打印不及格学生的名字和对应的成绩c.统计未成年学生的个数d.打印手机尾号是8的学生的名字e.打印最高分和对应的学生的名字 f.删
2020-12-16 18:52:10
301
原创 day6元组的解析和使用方法
1.什么是元组(tuple)元组是容器型数据类型:将()作为容器的标志,多个元素用逗号隔开;(元素1,元素2,元素3)元组元素的要求和列表不一样不可变(不支持增删改);有序的(支持下标操作)2.列表中适用于元组的操作1)列表的查操作元组都支持2)列表的相关方法操作全都适用于元组3.元组特有的内容1)单个元素的元组list1 = [1]print(type(list1)) # <class 'list'>tuple1 = (1)print(type(tuple1)) #
2020-12-15 19:40:31
223
1
原创 day06列表作业
1.生成50-300之间可重复的 10个数据 存放于列表中, 保证列表中元素的顺序,对列表进行排重,并对列表使用排序算法进行降序排序例如:随机生成了[70, 88, 91, 70, 107, 234, 91, 177, 282, 197] --- 去重之后 [70, 88, 91, 107, 234, 177, 282, 197] ---- 降序排序 [282, 234, 197, 177, 107, 91, 88, 70]import randomlist1 = [random.rand
2020-12-15 18:26:38
287
3
原创 day5-数字和列表的详解
1.int(整型) - 所有的整数对应的类型表示:所有的整数对应的类型2)转换:int(数据)不是所有的数据都可以转换成整数,只有浮点型、布尔、部分字符串浮点数转换成整数:直接去掉小数部分,保留整数部分布尔转换成整数:False = 0,True = 1字符串转整数 - 弃掉引号后本身就是一个整数的字符串才能转换成整型print(int('abc')) # 报错print(int('10')) # 10print(int('12.5')) # 报错2.float(浮点数
2020-12-14 19:33:21
278
原创 day5-列表相关练习题及解题答案
1.已知一个数字列表,求列表中心元素。2.已知一个数字列表,求所有元素和。3.已知一个数字列表,输出所有奇数下标元素。4.已知一个数字列表,输出所有元素中,值为奇数的元素。5.已知一个数字列表,将所有元素乘二。例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]# 1~5nums = [1, 5, 88, 54, 12, 56, 43, 85, 3]if len(nums) % 2 == 0: # 数据时偶数个是,中心元素有两个 ce
2020-12-14 19:11:09
408
原创 周四答案+分析
1 .根据输入的成绩的范围打印及格 或者不及格。grade = 67if grade >= 60: # 判断grade是否大于或等于60, print('及格') # if条件成立执行,反之不执行else: print('不及格')```2.根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!方法一: if嵌套age = 89if 0 <= age <= 150: if age >= 18:
2020-12-12 15:34:37
623
1
原创 python基础day-04:break、continue详解和位运算
python基础day-04:循环关键字和位运算1.break的用法 break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。 这就好比在操场上跑步,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了 break 语句提前终止了循环。例如:add = "https://mp.csdn.net/console/ar
2020-12-12 10:58:16
214
1
原创 周末作业-循环练习题
判断101-200之间有多少个素数,并输出所有素数。s = 0for i in range(101, 200): for j in range(2, int(i ** 0.5)): if i % j == 0: break else: s += 1print(s)求整数1~100的累加值,但要求跳过所有个位为3的数。sums = 0for i in range(1, 101): if i % 3 == 0:..
2020-12-12 10:32:09
148
原创 三目运算符详解
if a>b:max = a;else:max = b;但是 Python 提供了一种更加简洁的写法,如下所示:max = a if a>b else b这是一种类似于其它编程语言中三目运算符? :的写法。Python 是一种极简主义的编程语言,它没有引入? :这个新的运算符,而是使用已有的 if else 关键字来实现相同的功能。使用 if else 实现三目运算符(条件运算符)的格式如下:exp1 if contion else exp2condition 是判断条件,ex
2020-12-11 09:16:07
1858
原创 day3 分之和循环作业
基础题1.根据输入的成绩的范围打印及格 或者不及格。score = int(input('请输入成绩:'))print('及格'if score > 60 else '不及格')2.根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!。age = int(input('请输入年龄:'))print('未成年'if 0 < age < 18 else ('成年'if 18 <= age < 150 else '不是人'))3.
2020-12-10 20:44:28
53
原创 day 3 分支结构和循环
day 3 分支结构和循环if-elif-else循环结构:for循环(range)、while循环、continue、break、if-elif-else(链式条件)当我们面对的可能性不只两种,需要更多的分支,就用到了链式条件,elif(else if的缩写),elif分支是无限制的,如果有else语句,必须放在条件链的末尾,else不是必须的。当后面的条件是在前面条件不成立的情况下进行。如果有一个以上的条件为真,只有先出现的为真的条件所对应的分支语句会运行。if嵌套与三目运算符if嵌套
2020-12-10 20:31:04
82
原创 day2-运算符
运算符python支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算1.数学运算符:+、-、*、/(除)、//(整除)、%、**、注:/(除法运算)的运算结果是浮点型2.比较运算符:>、<、>=、<=、==、!= (比较运算的结果:False&True)注:python支持表示范围的连写方式注意:所有比较运算符的运算结果都是布尔值 (True、False)num = 10print(0<num<20) # TrueTr
2020-12-10 10:01:20
143
原创 day2-运算符和变量作业
选择题print(100 - 25 * 3 % 4) 应该输出什么? (B)A. 1B. 97C. 25D. 0下列哪种说法是错误的(A)。A. 除字典类型外,所有标准对象均可以⽤于布尔测试B. 空字符串的布尔值是FalseC. 空列表对象的布尔值是FalseD. 值为0的任何数字对象的布尔值是False下列表达式的值为True的是(B)。A. 3>2>2B. 1 and 2 != 1C. not(11 and 0 != 2)D. 10 < 20
2020-12-09 17:46:21
73
原创 day1基础语法
day1基础语法:加注释:# -*- Coding = utf-8 -*-# @time: ${DATE} ${TIME}# Author: 兜兜莫得钱# @File: ${NAME}.py# @software: ${PRODUCT_NAME}Process finished with exit code 0#程序运行结束标志:code为0表示程序正常,非0表示程序异常# 1.注释# 注释就是代码中不参与编译执行的部分(不影响程序功能):在代码中起到注解和说明的作用# 1)单行注
2020-12-08 17:54:43
144
原创 typora的使用方法
1.普通文字内容直接写在文件中,以普通的文字效果显示2.标题在文字前加1~6个#标题1(加一个#变成一级标题)标题2(加2个#变成二级标题)标题3(加3个#变成三级标题)标题4标题5标题63.列表有序列表:内容前加 “数字. ” 数字一般从1开始,序号会自动增加,通过按回车可以撤销自动增加的功能第一步(二级有序) 在按回车键后按tab键在二级下按回车的效果第二步无语列表:内容前加’+‘或者’-’python数据分析人工智能web前端j
2020-12-07 19:05:03
229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人