Python学习总结 自用,Python面试八股文

def __init__(self,...):
    代码块

类的构造方法最少也要有一个 self 参数。self 所表示的都是实际调用该方法的对象。无论是类中的构造函数还是普通的类方法,实际调用它们的谁,则第一个参数 self 就代表谁。相当于Java的this。

类的实例化
创建类对象的过程,又称为类的实例化。类名(参数)。

定义的类只有进行实例化后,才能得到利用。实例化后的类对象可以执行以下操作:

class Dog:
    def __init__(self, name, breed, age):
        self.name = name
        self.breed = breed
        self.age = age

my_dog = Dog('Buddy', 'Golden Retriever', 6)

公有属性:指没有加前缀双下划线__的属性,可以在类内外被访问,也可以被继承和重写。

私有属性:指加了前缀双下划线__的属性,只能在类内被访问和修改,而在类外部无法访问或修改。

实例属性:指定义在 __init__ 方法中,以 self.属性名 的形式定义的属性,每个实例都独立拥有一个自己的实例属性,它们随实例创建和销毁。

静态属性:指在类下直接定义的属性,可以使用类名直接访问,它们是类的属性,每个实例都共享一个静态属性。

class revealAccess:
    def __init__(self, initval = None, name = 'var'):
        self.val = initval
        self.name = name
    def __get__(self, obj, objtype):
        print("Retrieving",self.name)
        return self.val
    def __set__(self, obj, val):
        print("updating",self.name)
        self.val = val
IO处理

Python 提供了内置的文件对象,以及对文件、目录进行操作的内置模块,通过这些技术可以很方便地将数据保存到文件(如文本文件等)中。

在 Windows 上,路径书写使用反斜杠 “” 作为文件夹之间的分隔符,但在 OS X 和 Linux 上,使用正斜杠 “/” 作为它们的路径分隔符。需要两个第一个是转义字符。

对文件的系统级操作功能单一,比较容易实现,可以借助 Python 中的专用模块(os、sys 等),并调用模块中的指定函数来实现。

import os
os.remove("a.txt")

打开文件:使用 open() 函数,该函数会返回一个文件对象;

对已打开文件做读/写操作:读取文件内容可使用read()、readline() 以及 readlines()函数;向文件中写入内容,可以使用 write() 函数。

关闭文件:完成对文件的读/写操作之后,最后需要关闭文件,可以使用close()函数。

如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open()函数实现:

file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])

3. OS

a. 绝对路径三种表达方式

单斜杠 /

双反斜杠 \

在路路径前加上字母 r

b. os.getcwd()

获取当前文件所在的路径

import os
print(os.getcwd())
c. os.chdir(path)

更改当前路径,更改后,默认路径为更改后的路径

os.chdir(r'D:\临时\python试验\pandas')
os.getcwd()
d. os.path.split(path) 将path分割成目录和文件名二元组返回

以路径最后一个’/'为分隔,分隔路径与文件名。若路径中无文件名,则输出路径与空文件名。

import os 
path = '/home/User/Desktop/file.txt'
head_tail = os.path.split(path) 
print("Head of '% s:'" % path, head_tail[0]) 
print("Tail of '% s:'" % path, head_tail[1], "\n") 
  
path = '/home/User/Desktop/'
head_tail = os.path.split(path) 
print("Head of '% s:'" % path, head_tail[0]) 
print("Tail of '% s:'" % path, head_tail[1], "\n") 

path = 'file.txt'
head_tail = os.path.split(path) 
print("Head of '% s:'" % path, head_tail[0]) 
print("Tail of '% s:'" % path, head_tail[1]) 

e. os.path.basename§

获取路径中的最后一个文件夹名字

print(os.path.basename(r'D:\临时\python试验\pandas'))
#pandas

注意,若传入的路径为文件,如 r’D:\临时\python试验\pandas\test.txt’,返回的结果是文件名 test.txt。

返回path的文件名,等同于os.path.split(path)[1]

f. os.path.dirname§

返回path的目录,相当于os.path.split(path)[0]

g. os.path.splitext(path)将路径的文件名{只是名称}和后缀名分开
import os
file_path = "D:/test/data_expand/192.168.1.70_01_20210901163745710_250_150_4...jpg"
filename,extension = os.path.splitext(file_path)
print("filename:",filename)   # D:/test/data_expand/192.168.1.70_01_20210901163745710_250_150_4..
print("extension:",extension) # .jpg

file_path ="D:/test/data_expand/"
filename,extension = os.path.splitext(file_path)
print("filename:",filename)         # D:/test/data_expand/
print("extension:",extension)       # 空文件后缀

h. os.path.join(path,*path)

拼接路径

p1 = r'D:\临时\python试验\pandas'
p2 = r'merge\test.txt'
print(os.path.join(p1,p2))

i. os.path.exists(path)

判断路径是否存在

print(os.path.exists(r'D:\临时\python试验\pandas'))
print(os.path.exists(r'D:\临时\python试验\pandas\3D图.csv'))
#true true
j. os.path.isdir(path, /) 、os.path.isfile(path)

前者判断是否为文件夹内 后者判断是否为文件

r1 = r'D:\临时\python试验\pandas'
r2 = r'D:\临时\python试验\pandas\merge\test.txt'
 
print(os.path.isdir(r1))
print(os.path.isfile(r2))
k. os.listdir(path)

输出path路径下所有的文件及文件夹 不遍历下层

l. os.walk(top, topdown=True, οnerrοr=None, followlinks=False)

循环遍历top路径下所有文件 该路径下层的文件及文件夹

top:路径,顶层路径

topdown:可以理解为加快速度,不用管,默认为True

onerror:当有错误时,可以用定义的函数去输出错误

followlinks:默认为False,意义不大

该函数必须传入路径,返回3个变量值。第一个为文件夹绝对路径,第二个为子文件夹的列表,第三个为根目录下所有文件的列表。先看第一个 (i):

for (i,j,k) in os.walk(r'D:\临时\python试验\pandas'):
    print(i)

i 得到的是该路径下所有文件夹的绝对路径

j 得到的是对应 i 路径下含有的文件夹,每个 i 的路径输出一个列表。[‘merge’]的由来是因为 D:\临时\python试验\pandas下有个merge文件;[]的由来是因为 D:\临时\python试验\pandas\merge下没有文件夹了。

k 得到的是对应 i 路径下含有的文件,每个 i 的路径输出一个列表。这里输出的两个列表的由来,和 j 一样,就不一一解释了。

m. os.scandir(path = none)

加快迭代速度,把需要迭代的内容放在一个迭代对象里,而不是像os.listdir()一样把结果存在列表中(放在列表占用大量内存)

可见返回的是一个可迭代对象,作用是减少内存占用,加快运行速度。除此之外,它还可以访问文件的各种属性。如获取文件/文件夹名,文件/文件夹绝对路径,是否为文件夹,是否为文件,以及属性。

根据属性,还可以提取文件的大小(单位为kb,文件夹大小为0kb)、最近访问时间、最近修改时间、window系统下的创建时间、linux系统下的创建时间等。这里以文件大小 .st_size为例

文件大小 .st_size

最近访问时间 .st_atime

最近修改时间 .st_mtime

window系统下的创建时间 .st_ctime

linux系统下的创建时间 .st_birthtime

for i in os.scandir(r’D:\临时\python试验\pandas’):

print(i.name,i.stat().st_size,‘kb’)

使用os.scandir()方法,它可以列出指定目录下的所有文件夹和文件

n. os.stat(path, *, dir_fd=None, follow_symlinks=True)

获得文件的属性。能获得的属性与上面一样,不再重复。

o. os.mkdir(path, mode=511, *, dir_fd=None)

创建路径,只能创建一层

p. os.makedirs(name, mode=511, exist_ok=False)

创建路径,可以创建多层

q. os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

重命名 移动文件或文件夹

src:原文件路径

dst:重命名/移动后的文件路径

r. os.remove(path, *, dir_fd=None)

删除文件

s. 获取桌面的路径

os.path.expanduser(“~”) 获取电脑用户名及路径

user = os.path.expanduser("~")
desktop = os.path.join(user,'Desktop')
print(user)
print(desktop)

4. 字符串处理

切片: s[start: end: step]每step个字符切取一个字符拼接为字符串

字符串的重复s * n 或n * s

a. strip

它的作用是去除字符串两端的空白字符(例如空格、制表符、换行符)。

line = "  hello world!  "
line = line.strip()
print(line)  # 输出 "hello world!"
b. capitalize 首字母大写
s = 'alexWUsir'
s4_1 = s.capitalize()  #首字母大写
print(s4_1)   #Alexwusir
c. upper全部大写
s = 'alexWUsir'
s4_2 = s.upper() #全部大写
print(s4_2)   #ALEXWUSIR
d. lower全部小写
s = 'alexWUsir'
s4_3 = s.lower() #全部小写
print(s4_3)   #alexwusir
e. swapcase()大小写互换
s = 'alexWUsir'
s4_4 = s.swapcase() #大小写互换
print(s4_4)   #ALEXwuSIR
f. center居中(用空白/其他字符填充)
#center(self, width, fillchar=None)s = 'alexWUsir'
s5_1 = s.center(20,'%')  #用%填充
s5_2 = s.center(15,'*')  #用*填充
s5_3 = s.center(20)      #空白填充
print(s5_1)     #%%%%%alexWUsir%%%%%%
print(s5_2) 
  #***alexWUsir***
print(s5_3)   #     alexWUsir
g. find查找

s.find通过元素找索引,找到返回索引,找不到返回-1

s.index通过元素找索引,找到返回索引,找不到返回error

s = 'alexWUsir'
s8_11 = s.find('W')
s8_12 = s.index('W')
s8_21 = s.find('WU')
s8_22 = s.index('WU')
s8_31 = s.find('A')
s8_32 = s.index('A')
print(s8_11,type(s8_12))     
 #4 <class 'int'>
​
print(s8_21 ,type(s8_22))    
 #4 <class 'int'>
​
print(s8_31 ,type(s8_32))     
#报错:ValueError: substring not found----未找到子字符串
h. count计算字符串中某字符/字符串的个数
s = 'alexaa wusirl'
s10 = s.count('a')
print('此字符串中有' + s10 + '个a')   
#报错:TypeError: must be str, not int
​
print('此字符串中有' + str(s10) + '个a')    
#此字符串中有3个a
i. split 分割:用空格(默认)/固定字符分割字符串(相当于str—>list)
s = 'hello baby'
s1 = 'bb:aaa:g:ggg'
s11_1 = s.split()
print(s11_1)    #['hello', 'baby']
s11_2 = s1.split(':')
print(s11_2)   #['bb', 'aaa', 'g', 'ggg']
j. format 格式化输出

格式化字符串 用大括号{}标明被替换的字符串

1.按照{}的顺序依次匹配括号中的值
s = "{} is a {}".format('Tom', 'Boy')
print(s) # Tom is a Boy

s1 = "{} is a {}".format('Tom')
# 抛出异常, Replacement index 1 out of range for positional args tuple
print(s1)
2.通过索引的方式去匹配参数
s = "{0} is a {1}".format('Tom', 'Boy')
print(s) # Tom is a Boy

s1 = "{1} is a {2}".format('Tom', 'Lily', 'Girl')
print(s1) # Lily is a Girl
3.通过参数名来匹配参数
s = "{name} is a {sex}".format(name='Tom', sex='Boy')
print(s) # Tom is a Boy
4.如果参数已经确定,可以直接利用{}进行格式化引用。
name = 'Tom'
sex = 'Girl'
# 以f开头表示在字符串中支持大括号内的python表达式   此用法3.6之后支持
s = f"{name} is a {sex}"
print(s) # Tom is a Boy
k. replace 字符串的替换
s13_1 = '小明,哈喽你好,我是小明'
s13_2 = s13_1.replace('小明','张三')
s13_3 = s13_1.replace('小明','张三',1)
l. is系列
s14 = ''print(s14.isdigit())   #是否由数字组成
print(s14.isalpha())   #是否由字母组成
print(s14.isalnum())   #是否由字母或数字组成
s14_1 = 'zxcs'
s14_2 = '123546'
s14_3 = 'c1d21c4'
print('----------s14_1----------')
print(s14_1.isdigit())   #False
print(s14_1.isalpha())   #True
print(s14_1.isalnum())   #True
print('----------s14_2----------')
print(s14_2.isdigit())  #True
print(s14_2.isalpha())   #False
print(s14_2.isalnum())   #True
print('----------s14_3----------')
print(s14_3.isdigit())   #False
print(s14_3.isalpha())   #False
print(s14_3.isalnum())   #True

判断字符串是否全部是空格
s14_4 = ' n  '
s14_5 = ''
s14_6 = '   '
print(s14_4.isspace())  #False:有除空格外的其他字符
print(s14_5.isspace())  #False:空
print(s14_6.isspace())  #True:全是空格

m. for
s = 'xiaomingnihao'
for i in s:
    print(i)

#举例:

s = 'ddddddeafsdfdsafsfff'
if 'sf' in s:
    print('非法')
print('------------------------')
if 'esffff' not in s:
    print('合法')

5. 操作文件

a. with open

用来打开本地文件,会在使用完毕后自动关闭文件

with open(file="你要打开的路径名(或保存内容的地址)",mode="r/w/a",encoding="utf-8") as f:
    data=f.read/write()
    print(data)

mode

‘r’ —— 只读模式,要求目标文件必须存在。

‘w’ —— 只写模式,如果目标文件已存在,将会截断目标文件并覆盖其内容;如果目标文件不存在,则新建之。

‘a’ —— 追加模式,只写打开目标文件,如果目标文件已存在,写入的内容追加到源文件的结尾;如果目标文件不存在,则创建之。

‘r+’ —— 读写模式,要求目标文件必须存在,此时写入,并不会截断源文件,而是替换源文件中相应位置的内容。

‘w+’ —— 读写模式,如果目标文件已存在,将会截断目标文件并覆盖其内容;如果目标文件不存在,则新建之。

‘a+’ —— 追加模式,读写打开目标文件,如果目标文件已存在,写入的内容追加到源文件的结尾;如果目标文件不存在,则创建之。

上面的6中文件打开模式,还可以与’b’,‘t’相结合,组成类似’rb’、'wt’这样的形式,'b’代表二进制模式,'t’代表文本模式。默认情况下,Python以文本模式打开目标文件。

file对象的属性:

file.readline()读文件中一行内容 调用一次读一行
file.readlines()返回一个列表,文件中的每一行都是列表中的一个数据
f.closed只读属性,判断f.close()是否已经调用过。
f.encoding只读属性,文件的encoding格式
f.mode只读属性,显示调用open()打开文件时指定的mode
f.name只读属性,显示调用open()文件时的指定名称
f.softspace只读的布尔属性,供print语句记录自己的状态,file对象自身并不修改或使用该属性。
f.close()关闭已经打开的file对象,所有的file对象,完成读写操作后,都应该关闭
f.read(size = -1)读取文件内容,以字符串的形式返回。 size < 0 —— 一直读到文件结尾; size > 0 —— 读取 size 字节的内容直到文件结尾,如果到了文件末尾仍未满 size 字节,则返回全文。 size = 0 —— size = 0 或读取时当前文件的位置在文末,都会返回一个空字符串。 省略时表示一次性读完整个文件
f.readline(size = -1)读取1行,直到遇见’\n’或读满size字节,以字符串的形式返回。 size >= 0,读取的内容不超过size字节,如果没有读够 size 字节就到本行结尾,则停止读取,返回本行。 size < 0,读取当前一行的全部内容,直到遇到 ‘\n’ 或文件结尾。 省略时表示读取当前一行的全部内容
f.readlines()读取多行,返回一个list,每一行作为 list 中的一个字符串。最后一个字符串可能不以 “ \n ”结尾。
f.next()file对象是可迭代的,每次迭代返回文件中的一行。
f.seek(pos, how = 0)将当前文件的位置设置到距离参考点pos字节的位置,参数 how 决定参照点的位置: how = 0,参照点是文件开头,这是默认情形,对应于 os.SEEK_SET how = 1,参考点是当前位置,对应于os.SEEK_CUR how = 2,参考点是文末,对应于os.SEEK_END
f.write(s)将字符串 s 写入到文件中
f.writelines(lst)参数lst是一个可迭代对象,将其中的字符串内容全部写到 f 中,该函数不会自动添加 ‘\n’ !
b. 遍历指定类型文件

可以指定文件夹包含某个字符,可以使用 find 方法或者 __contains__ 方法:

    # 包含 返回 True/False
    path.__contains__("xxx")
    # 查找 如果包含子字符串返回开始的索引值,否则返回-1
    path.find("xxx") >= 0

如果只需要遍历相关的文件夹只需要在遍历 fileList 时对 path 进行限制,例如只遍历 shell,python,java文件可以这样设置:

path.endswith('.sh') or path.endswith('.py') or path.endswith('.java')   
c. 替换文件内容
def replaceFileByTarget(path, target, new):
    with open(path, 'r') as f:
        text = f.read().replace(target, new)
        open(path, 'w').write(text)
    print("修改成功: {}".format(path))
 
fileList = getFile(rootDir)
for i in fileList:
    replaceFileByTarget(i, "hello", "HELLO")
d. 将数据写入excel

1.需要安装openpyxl

import openpyxl

# 创建一个新的Excel工作簿
workbook = openpyxl.Workbook()

# 获取默认的工作表
sheet = workbook.active

# 写入数据
sheet['A1'] = '姓名'
sheet['B1'] = '年龄'

# 添加一行数据
sheet.append(['Alice', 25])

# 保存工作簿
workbook.save('example.xlsx')

6. argparse 命令行

argparse是一个Python模块

用途是:命令行选项、参数和子命令解释

add_argument的参数

ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

6.1 name or flags
#1.导入包
import argparse

#2.创建解释器
parse = argparse.ArgumentParser(description="描述")
# python argparseTest.py -h 执行-h 时将会出现描述信息

#3.调用add_argument 添加需要的参数
#ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

#3.1 name or flags 命名:前面没有--或者-  flags:前面有-- 或 -
parse.add_argument('-ob','--openbook')
parse.add_argument('animal')
#参数解释
# -ob 代表短选项,在命令行输入 -ob 和 --openbook 的效果是一样的,作用是简化参数输入 ob只是简写,需要通过解析后的参数拿到值的话必须使用--


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/5e38a2afde4455c55d9eb704f3c292e6.png)
![img](https://img-blog.csdnimg.cn/img_convert/130ebb43e5edd3722290431be17cce81.png)
![](https://img-blog.csdnimg.cn/img_convert/46506ae54be168b93cf63939786134ca.png)
![](https://img-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)
![](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png) 
![](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)**
![img](https://img-blog.csdnimg.cn/img_convert/3428309c380043398bfbf6f262a110eb.png)



做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。



别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。

我先来介绍一下这些东西怎么用,文末抱走。

* * *



**(1)Python所有方向的学习路线(新版)**

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。



最近我才对这些路线做了一下新的更新,知识体系更全面了。



![在这里插入图片描述](https://img-blog.csdnimg.cn/8fc093dcfa1f476694c574db1242c05b.png)



**(2)Python学习视频**



包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。



![在这里插入图片描述](https://img-blog.csdnimg.cn/d66e3ad5592f4cdcb197de0dc0438ec5.png#pic_center)



**(3)100多个练手项目**

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。



![在这里插入图片描述](https://img-blog.csdnimg.cn/f5aeb4050ab547cf90b1a028d1aacb1d.png#pic_center)



**(4)200多本电子书**  

  

这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。



基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。



**(5)Python知识点汇总**

知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。



![在这里插入图片描述](https://img-blog.csdnimg.cn/c741a91b05a542ba9dc8abf2f2f4b1af.png)



**(6)其他资料**



还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。



![在这里插入图片描述](https://img-blog.csdnimg.cn/9fa77af248b84885a6ec779b2ead064d.png)

**这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。**




**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
![img](https://img-blog.csdnimg.cn/img_convert/d8c249aea499f302b29add96498c2783.png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/f5aeb4050ab547cf90b1a028d1aacb1d.png#pic_center)



**(4)200多本电子书**  

  

这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。



基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。



**(5)Python知识点汇总**

知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。



![在这里插入图片描述](https://img-blog.csdnimg.cn/c741a91b05a542ba9dc8abf2f2f4b1af.png)



**(6)其他资料**



还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。



![在这里插入图片描述](https://img-blog.csdnimg.cn/9fa77af248b84885a6ec779b2ead064d.png)

**这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。**




**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中...(img-xZBsylB5-1712921751266)]

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python八股文是指对于算法工程师来说,在面试或考试中常被问到的一些Python知识点和面试题目总结。下面是一些常见的Python八股文知识点: 1. Python的内存管理以及垃圾回收机制:Python使用引用计数来管理内存,并通过垃圾回收机制来处理循环引用的情况。 2. Python中的pass有什么作用:pass是一个空语句,用于占位,不做任何操作。 3. Python的strip:strip函数用于去除字符串两端的空白字符。 4. Python多线程中的IO型操作:在Python中,由于全局解释器锁(GIL)的存在,多线程并不能真正实现并行执行。对于IO型操作,多线程可以提高效率。 5. Python如何进行数据类型转换:可以使用int()、float()、str()等函数进行数据类型转换。 6. Python中的单下划线_和双下划线__:单下划线_是一个惯例,表示一个私有属性或方法,双下划线__是用于名称修饰,以避免名称冲突。 7. Python中的self、cls、@staticmethod、@classmethod:self是指实例本身,cls是指类本身,@staticmethod表示静态方法,@classmethod表示类方法。 8. Python中的super函数:super函数用于调用父类的方法。 9. Python中的特殊方法(魔法函数):特殊方法是以双下划线开头和结尾的方法,用于实现对象的特殊行为,比如__init__()用于初始化对象。 10. Python中的\_\_new\_\_()和\_\_init\_\_()和\_\_call\_\_()[1:\_\_new\_\_()用于创建对象,\_\_init\_\_()用于初始化对象,\_\_call\_\_()用于使对象可调用。 11. UTF-8和GBK的区别:UTF-8是一种可变长度的Unicode编码,支持多种语言,而GBK是用于中文字符的编码。 12. Python中的zip()函数:zip函数用于将多个可迭代对象打包成一个元组的列表。 以上是一些常见的Python八股文知识点,掌握了这些知识可以帮助你在面试或考试中更好地回答相关问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [python 知识点/面试题目总结八股文)算法工程师必备](https://blog.csdn.net/CSSDCC/article/details/127050797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Python八股文](https://blog.csdn.net/weixin_43570470/article/details/127726404)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值