apt-get和yum的区别
摘要:一、linux系统分类 一般来说linux系统基本上分两大类: RedHat系列:Redhat、Centos、Fedora等Debian系列:Debian、Ubuntu等 RedHat 系列 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数” 包管理工具 yum 支持tar包 Deb
阅读全文
posted @
2022-04-30 15:32
yuminhu
阅读(187)
推荐(0) 编辑
查看系统版本
摘要:适用于RedHat,CentOS cat /etc/redhat-release [root@80 admin]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
阅读全文
posted @
2022-04-30 08:58
yuminhu
阅读(63)
推荐(0) 编辑
解决centos7安装mysqlclient的错误
摘要:基本版本信息 centos7.9 python3.8.6 django3.1.5 安装mysqlclient需要如下错误: [root@145-63 bseip-backend-admin]# pip3 install mysqlclient Looking in indexes: http://m
阅读全文
posted @
2022-04-30 08:39
yuminhu
阅读(2848)
推荐(0) 编辑
pip install mysqlclient 时command ‘gcc‘ failed with exit status 1问题解决
摘要:一、问题描述 在centos7中执行pip install mysqlclient,报如下错误 二、解决 yum install python3-devel mysql-devel
阅读全文
posted @
2022-04-27 14:08
yuminhu
阅读(154)
推荐(0) 编辑
071 用flask实现转发与重定向
摘要:1. 请解释什么是转发与重定向,它们有什么区别 转发:对web用户是透明的,或者说在Web浏览器中的Url是不会变的,在服务器会根据Url去读取特定的资源,并将资源的内容返回给客户端 http://localhost:5000/test.tml 服务端资源对于用户不一定是可访问的 重定向:用户是可见
阅读全文
posted @
2022-04-21 10:43
yuminhu
阅读(904)
推荐(0) 编辑
070 在flask中如何使用动态路由
摘要:1. 静态路由和动态路由有什么区别 路由:Url Path http://localhost/abc/test.html abc/test.html 静态路由:Path与路由函数一一对应 动态路由:多个Path与同一个路由函数对应 http://localhost/abc/test.html htt
阅读全文
posted @
2022-04-21 10:16
yuminhu
阅读(172)
推荐(0) 编辑
069 描述异常捕捉语句中else的作用
摘要:请通过代码说明try...except... else 中else子句的作用 while True: try: x = int(input('请输入x:')) y = int(input('请输入y:')) value = x / y print('x / y is ', value) pass e
阅读全文
posted @
2022-04-21 09:05
yuminhu
阅读(25)
推荐(0) 编辑
068 python是否支持多继承,举例说明
摘要:1. python是否支持多继承,请举例说明 支持多继承 class Calculator: def calculate(self, expression): return eval(expression) class MyPrint: def print(self, msg): print('ms
阅读全文
posted @
2022-04-21 09:00
yuminhu
阅读(38)
推荐(0) 编辑
067 自定义异常类
摘要:用代码描述如何定义异常类、抛出异常类以及捕捉异常类 class MyException(Exception): pass num = 12 try: if num >= 10: raise MyException('抛出异常') print('正常执行代码') except MyException:
阅读全文
posted @
2022-04-21 08:44
yuminhu
阅读(17)
推荐(0) 编辑
066 用多线程从网上下载图像文件
摘要:在urls.txt文件中包含了若干个图像url,一行一个url,请使用多线程下载这些图像文件,并按url出现的顺序保存为0.jpg、1.jpg、2.jpg,依次类推。 from urllib3 import * import threading http = PoolManager() disabl
阅读全文
posted @
2022-04-20 21:06
yuminhu
阅读(30)
推荐(0) 编辑
065 解释什么是信号量,以及如何使用信号量
摘要:信号量:最古老的同步原语之一,是一个计数器。 当资源释放时,计数器就会递增,当申请资源时,计数器就会递减 可以认为信号量代表资源是否可用。 from threading import BoundedSemaphore MAX = 3 semaphore = BoundedSemaphore(MAX)
阅读全文
posted @
2022-04-20 20:54
yuminhu
阅读(305)
推荐(0) 编辑
064 解释什么是线程锁,以及如何使用线程锁
摘要:请解释什么是线程锁,举例说明如何使用线程锁 线程锁:目的是将一段代码锁住,一旦获得锁权限,除非释放线程锁,否则其他任何代码都无法获得锁权限 为什么需要线程锁 由于多线程同时在完成特定的操作时,由于并不是原子操作,所以在完成操作的过程中可能会被打断,去做其他的操作。 可能会产生脏数据 例如:一个线程读
阅读全文
posted @
2022-04-20 19:26
yuminhu
阅读(340)
推荐(0) 编辑
063 了解协程
摘要:1. 请描述什么是协程,举例说明 协程,又称为微线程、纤程,英文名:Coroutine 通过async/await语法进行声明,是编写异步应用的推荐方式 import asyncio async def main(): print('hello') await asyncio.sleep(1) pr
阅读全文
posted @
2022-04-20 16:07
yuminhu
阅读(31)
推荐(0) 编辑
062 在线程中如何创建和使用全局对象
摘要:如何创建和使用在线程内部用的全局对象 import threading import time a = threading.local() a.x = 0 def worker(): for i in range(20): time.sleep((0.01)) a.x += 1 print(thre
阅读全文
posted @
2022-04-20 15:22
yuminhu
阅读(64)
推荐(0) 编辑
061 如何为一个线程函数传递参数
摘要:当运行一个线程函数时,如何为该函数传递参数 import threading # 线程函数 def func1(s, fun): print('正在执行函数func1') fun(s) def ff(s): print(f'ff输出了{s}') t1 = threading.Thread(targe
阅读全文
posted @
2022-04-20 14:37
yuminhu
阅读(94)
推荐(0) 编辑
060 进程之间的通信
摘要:用python创建2个进程,在这两个进程之间如何通信呢? from multiprocessing import Queue, Process import time, random list1 = ['java', 'python', 'javascript'] def write(queue):
阅读全文
posted @
2022-04-20 14:07
yuminhu
阅读(21)
推荐(0) 编辑
037 用正则表达式格式化字符串中所有的浮点数
摘要:用正则表达式擦或者字符串中所有的浮点数,并格式化这些浮点数,保留小数点后2位,最后将格式后的浮点数替换原来的浮点数,同时输出替换后的结果和替换的次数。要求用一条语句实现 import re ''' 1. 表示浮点数的正则表达式 -?\d+(\.\d+)? 2. 格式化浮点数 format 3. 如何
阅读全文
posted @
2022-04-20 11:48
yuminhu
阅读(133)
推荐(0) 编辑
036 用正则表达式查找字符串中所有的Email
摘要:用张泽表达式查找字符串中所有的Email, 并输出这些Email。要求,所有的Email域名必须是.com或.net的。而且不区分大小写。 import re s = '我的Email地址是abc@163.com,你的Email是多少呢?是xyz@122.net吗“或者是ccc@125.org' p
阅读全文
posted @
2022-04-20 11:29
yuminhu
阅读(173)
推荐(0) 编辑
035 用正则表达式分别提取电话号的区号、电话号和分机号
摘要:如何搜索字符串中包含区号和分机号的第一个出现的电话号,并提取电话号中的区号、电话号和分机号。要求如下: 1.区号固定是3位数字 2.电话号至少是7位数字 3. 分机号至少是3位数字 4. 区号、电话号和分机号之间用连字符分割 import re # 正则表达式分组 m = re.search('\d
阅读全文
posted @
2022-04-20 11:19
yuminhu
阅读(687)
推荐(0) 编辑
034 寻找字符串中的手机号
摘要:1. 描述match和search的区别 match用于匹配 search用于搜索 import re m1 = re.match('.*python', 'I love python') print(m1) m2 = re.search('python', 'I love python') pri
阅读全文
posted @
2022-04-20 11:06
yuminhu
阅读(90)
推荐(0) 编辑
033 用正则表达式判断字符串中是否包含日期
摘要:1. match函数的作用 import re print(re.match('hello', 'hello')) print(re.match('.*hello', 'hello')) print(re.match('hello', 'ahello')) <re.Match object; spa
阅读全文
posted @
2022-04-20 10:44
yuminhu
阅读(154)
推荐(0) 编辑
032 连接列表中的分隔符
摘要:1. 如何将列表中的元素(字符串类型的值)连接在一起(首尾相接) a = ['a', 'b', 'c', 'd', 'e'] s = '' print(s.join(a)) s = '+' print(s.join(a)) abcdea+b+c+d+e 2. 字符串的join方法的作用是什么,使用j
阅读全文
posted @
2022-04-19 21:18
yuminhu
阅读(36)
推荐(0) 编辑
031 让字符串居中显示
摘要:1. 如果让字符串居中显示,有哪些方法 center方法 format方法 2. 请使用center方法让字符串居中显示,两侧显示#号 print('<'+'hello'.center(30) + '>') print('<'+'hello'.center(30, '#') + '>') print
阅读全文
posted @
2022-04-19 21:09
yuminhu
阅读(55)
推荐(0) 编辑
030 向字符串的format方式传递参数有几种方式
摘要:1. 字符串的format方法有几种指定参数方式 1. 默认方式(传入的参数与{}一一对应) 2. 命名参数 3. 位置参数 2. 通过代码详细描述 s1 = 'Today is {}, the temperature is {} degrees.' print(s1.format('Saturda
阅读全文
posted @
2022-04-19 21:02
yuminhu
阅读(162)
推荐(0) 编辑
029 python字符串的基本操作
摘要:# 通过索引 s1 = 'hello world' print(s1[0]) print(s1[2]) # 分片 print(s1[6:9]) print(s1[6:]) print(s1[::2]) print(s1[::-1]) # 乘法 s2 = 'xyz' print(10 * s2) pr
阅读全文
posted @
2022-04-19 20:36
yuminhu
阅读(21)
推荐(0) 编辑
028 使用fstring方式格式化字符串
摘要:1. 在python语言种哪些格式化方式可以直接使用变量 fstring方式 2.请用代码描述如何使用fstring格式化字符串 name = 'Bill' age = 20 def getAge(): return 21 s = f"我是{name}, 我今年{age}岁, 明年{getAge()
阅读全文
posted @
2022-04-19 20:03
yuminhu
阅读(106)
推荐(0) 编辑
027 python字符串格式化
摘要:1. 在python语言中有多少种格式化字符串的方法? 1. %格式化 2. 模板字符串 3. 字符串的format方法 4. fstring 2. 请解释什么是模板字符串,如何使用? 通过Template对象封装 $放置一些占位符,并通过substitute方法用实际的值替换这些占位符 from
阅读全文
posted @
2022-04-19 19:40
yuminhu
阅读(27)
推荐(0) 编辑
026 python字典与json字符串如何互转
摘要:d = {'a': 123, 'b': '456', 'c': 'xyz'} print(d) print(type(d)) import json json_str = json.dumps(d) print(json_str) print(type(json_str)) d1 = json.lo
阅读全文
posted @
2022-04-19 19:24
yuminhu
阅读(56)
推荐(0) 编辑
025 将循环参数的列表变成产生器
摘要:如何将[i for i in range(20)]变成产生器 a = [i for i in range(10)] print(a) print(type(a)) # <class 'list'> b = (i for i in range(10)) print(b) print(type(b))
阅读全文
posted @
2022-04-18 00:19
yuminhu
阅读(30)
推荐(0) 编辑
024 对产生器类型的对象使用切片
摘要:我们知道使用分片可以获取列表的部分元素,那么如何使用切片获取产生器类型对象种的部分元素呢? from itertools import islice gen = iter(range(10)) print(type(gen)) # <class 'range_iterator'> for i in
阅读全文
posted @
2022-04-18 00:12
yuminhu
阅读(17)
推荐(0) 编辑
023 字典键值支持哪些数据类型
摘要:1. 有哪些数据类型不能作为字典键值的类型 列表和字典 d = {} d['name'] = 'Bill' d[10] = 20 d[True] = 1 d[12.3] = 20.1 d[(1,2,3)] = [4,5,6] class Person: pass p1 = Person() p2 =
阅读全文
posted @
2022-04-18 00:06
yuminhu
阅读(95)
推荐(0) 编辑
022 用lambda表达式对列表进行排序
摘要:如果列表元素是字典类型,如何利用lambda表达式对列表进行升序降序排列 a = [ {'name': 'Bill', 'age': 40}, {'name': 'Mike', 'age': 12}, {'name': 'John', 'age': 29} ] print(a) print(sort
阅读全文
posted @
2022-04-17 23:52
yuminhu
阅读(175)
推荐(0) 编辑
021 del和pop在删除列表元素上有什么区别
摘要:del 是一个关键字,可以根据索引删除列表元素,但没有返回值 pop 是列表的一个方法,可以根据索引弹出列表元素,并返回该元素,同时删除这个元素 a = [4,3,6,5] print(a) # 关键字、非函数 del a[2] print(a) b = a.pop(1) print(b) prin
阅读全文
posted @
2022-04-17 23:35
yuminhu
阅读(192)
推荐(0) 编辑
020 列表元素是对象,如何排序
摘要:1.如果列表元素是对象,对这样的列表排序有哪些方法? class MyClass: def __init__(self): self.value = 0 my1 = MyClass() my1.value = 20 my2 = MyClass() my2.value = 10 my3 = MyCla
阅读全文
posted @
2022-04-17 21:46
yuminhu
阅读(26)
推荐(0) 编辑
019 排序一个列表
摘要:1 . 对列表排序有哪几种方法 a = [5, 4, 2, 7, 8, 3] a.sort() print(a) # [2, 3, 4, 5, 7, 8] b = [5, 4, 2, 7, 8, 3] c = sorted(b) print(c) # [2, 3, 4, 5, 7, 8] 2. 列表
阅读全文
posted @
2022-04-16 22:13
yuminhu
阅读(13)
推荐(0) 编辑
018 列表和元组的差异
摘要:1. 请详细描述列表与元组的区别,并举例说明 # 4种区别 # 1:语法差异 a = (1,2,3) b = [1,2,3] # 2: 元组是只读的,列表是可读写的 # a[1] = 3 b[1] = 3 # 3.使用tuple函数后,元组仍然为自身,而使用list函数后,会复制一个新列表 copy
阅读全文
posted @
2022-04-16 22:06
yuminhu
阅读(27)
推荐(0) 编辑
017 将两个列表或元组合并成一个字典
摘要:如何将两个列表或元组合并成一个字典,形式如下: a = ["a", "b"] b=[1, 2] 合并后:{'a': 1, 'b': 2} a = ["a", "b"] b = [1, 2] print(dict(zip(a,b))) # {'a': 1, 'b': 2} fields = ('id'
阅读全文
posted @
2022-04-16 21:57
yuminhu
阅读(451)
推荐(0) 编辑
016 快速调换字典中的key和value
摘要:1.如何快速调换字典中的key和value d = {'a': 1, 'b': 2} print({v: k for k,v in d.items()}) # {1: 'a', 2: 'b'} 2.如何用循环快速生成一个从0到100的列表 a = [i for i in range(101)] pr
阅读全文
posted @
2022-04-16 21:45
yuminhu
阅读(100)
推荐(0) 编辑
015 单星和双星运算符的作用
摘要:1. 单星(*)和双星(**)运算符的作用,请举例说明 # 单星(*) # 以元组形式导入 # 可变参数 # 如果可变参数不是最后一个参数,那么为可变参数后面的形参指定参数值,必须用命名参数 def fun1(param1, *param2, x): print('param1:', param1)
阅读全文
posted @
2022-04-16 21:12
yuminhu
阅读(73)
推荐(0) 编辑
014 乱序列表元素有哪些方式
摘要:1 . 编写一个函数(不要使用python模块的函数),打乱列表元素的顺序 import random a = [1,2,3,4,5,6,7,8,9, 0] def random_list1(a): for i in range(0, 100): index1 = random.randint(0,
阅读全文
posted @
2022-04-16 20:42
yuminhu
阅读(50)
推荐(0) 编辑
103 生成器
摘要:1、生成器与yield 若函数体包含yield关键字,再调用函数,并不会执行函数体代码,只是得到的返回值即生成器对象 def my_range(start,stop,step=1): while start < stop: yield start start += step g = my_range
阅读全文
posted @
2022-04-03 22:44
yuminhu
阅读(14)
推荐(0) 编辑
102 迭代器
摘要:1、迭代器介绍 迭代器即用来迭代取值的工具,而迭代是重复反馈过程的活动。其目的通常是为了逼近所需的目标或结果,每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值,单纯的重复并不是迭代 goods=['mac','lenovo','acer','dell','sony'
阅读全文
posted @
2022-04-03 22:21
yuminhu
阅读(3)
推荐(0) 编辑
101 装饰器
摘要:一、引言 软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着对象一旦设计完成,就可以独立完成其工作,而不要对其进行修改。 软件包含的所有功能的源代码以及调用方式,都应该避免修改。否则一旦
阅读全文
posted @
2022-04-03 14:13
yuminhu
阅读(28)
推荐(0) 编辑
100 python垃圾回收机制
摘要:一、引入 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应该将其占用的内存给回收掉,那什么样的变量值是没有用的呢? 单从逻辑层面分析,我们定义变量将变量值存起来的目的是为了以后取出
阅读全文
posted @
2022-04-02 22:19
yuminhu
阅读(24)
推荐(0) 编辑