2024年最新2024Python架构面试指南,Python基础练习题,含答案解析,网易和阿里的面试难度

收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



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

由于文件比较多,这里只是将部分目录截图出来

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

正文

星号先递增值5个,然后再递减至5个

可以考虑使用一个标志来控制星号的增加加和减少

字符串可以使用乘法 ‘*’*5 表示 星号重复5次

#初始要打印的星号个数

num = 1

设置一个标志,如果true 表示要星号增加

flag = True

星号小于0的时候退出循环

while num>0:

打印星星

print(“*”*num)

如果星号已经到5,更改flag,下次循环要开始减少星星

if num==5:

flag = False

如果flag 为true 说明星号是递增,

if flag:

num+=1

flag为false 说明星号开始递减

else:

num-=1

9.答案解析:

考察for range的用法

pstr = “abcdef”

for s in pstr:

print(s)

10.答案解析:

a = “abcd”

方法一 使用while逆向遍历

获取字符串最大的下标

index = len(a)-1

while lg>0:

print(a[index])

下标递减

index-=1

方法二使用切片

a = [::-1]

print(a)

11.答案解析:

考察列表遍历,考察整数转字符串,考虑字符串拼接

l = [1,2,3,4]

定义空字符串用于拼接字符串

result = “”

遍历列表元素

for num in l:

把整数转成字符串然后拼接到result

result+=str(num)

打印结果

print(result)

12.答案解析:

考察列表遍历,以及列表元组值修改

遍历可以使用for range 或者while,但是涉及到修改需要使用下标,所以采用while 加下标的方式

l = [1,2,3,4,5,6]

定义下标, 初始为0

index = 0

循环遍历列表元素,直至到最后一个值

while index<len(l):

判断如果是偶数,对这个元素加1

if l[index]%2==0:

l[index]+=1

下标向后移动

index+=1

13.答案解析:

考察元组遍历,列表元素添加,列表元素判断,元组元素统计

test = (“a”,“b”,“c”,“a”,“c”)

定义列表用于存储统计结果

result = []

for s in test:

统计元素个数

cnt = test.count(s)

把统计结果拼接成(‘a’,1)这样的格式

tmp = (s,cnt)

判断这个元素是否已统计过,如果已经在结果中说明这个元素就统计过了 继续下一个元素

if tmp in result:

continue

else:

result.append(tmp)

打印统计结果

print(result)

14.答案解析:

考察input方法,考察enumerate方法,以及字符串格式化, 考察while循环

定义一个列表用于存储所有的用户信息

users = []

定义循环因子

i = 0

while i<3:

name = input("请输入姓名: ")

age 整数记得要转化

age = int(input(“请输入年龄”))

把用户信息构造成字典,添加到列表中

users.append({“name”:name,‘age’:age})

遍历打印用户信息,因为要打印编号,可以考虑使用enumerate

注意: enumerate 方法返回的是元素,我们需要用2个变量接收,一个是编号,一个是元素

for thnum,user in enumerate(users,start=1):

使用f-string快速格式化

print(f"{thnum} {user[‘name’]} {user[‘age’]}")

如果还没学习enumerate,可以使用一个变量来表示序号

定义序号起始为1

thnum = 1

for user in users:

print(f"{thnum} {user[‘name’]} {user[‘age’]}")

记得把序号加1

thnum+=1

15.答案解析:

1. 要想提取数字字符,我们需要遍历字符串

2. 需要知道如何判断一个字符是否是数字,数字是有0123456789 中的字符构成,如果字符在这里面是不是就表示这个是数字呢

3. 把是数字的字符拼接到一起

test = “aAsmr3idd4bgs7Dlsf9eAF”

定义一个变量接收数字字符

result = “”

for s in test:

如果s在后面的字符串中说明这个字符是数字字符

if s in “0123456789”:

把数字字符添拼接到结果中

result+=s

打印结果

print(result)

16.答案解析:

1. 因为要处理每个字符,所以需要遍历字符

2. 如果判断一个字符是不是英文字母,我们字符串本身就有方法可以判断 isalpha 方法

3. 把英文单词拼接到一起就是我们要的

msg = “hel@#KaTeX parse error: Undefined control sequence: \nhon at position 8: lo pyt \̲n̲h̲o̲n̲ ̲ni\t hao%

保存结果

result = “”

循环遍历字符

for s in msg:

判断当前字符是否是字母

if s.isalpha():

把字符添加到结果中

result+=s

打印最后的结果

print(result)

17.答案解析:

#1. 因为要查找位置,所以要遍历字符串

#2. 因为要查找多个字符,所以需要使用切边提取固定的字符

#3. 把查找到的位置保存到结果列表中

#4. 题目要求是个元组所以再转化成元组

src: 原始字符串,dst: 要查找的字符串

def findall(src,dst):

获取字符长度,用去截取字符

lg = len(dst)

保存查找的下标

res = []

#遍历字符通过下标

for index in range(lg):

截取与dst相同的字符如果相等说明 位置ok

if src[index:index+lg]==dst:

把当前位置添加到结果集中

res.append(index)

把结果转化成元组返回

return tuple(res)

s = “helloworldhellopythonhelloc++hellojava”

print(findall(s))

18.答案解析:

def sum_test(n):

保存结果

sum = 0

循环因子

i = 1

#循环累加

while i<=n:

累加结果

sum+=i

增加循环因子

i+=1

print(sum)

num = 10

sun_test(num)

19.答案解析:

考察不定长参数定义,与传递,以及遍历求大小值

def max_min(*args):

定义最大、最小值,把元素的第一个值作为最大值与最小值,然后与后面的其他值比较

max = args[0]

min = args[0]

for num in args:

如果max 小于num 那么max更新为num

if max<num:

max = num

如果min 大于num说明num小,则更新min

if min>num:

min = num

return max,min

max,min = max_min(5,2,7,1,7,8,9,10)

print(f’max = {max},min = {min}')

20.答案解析:

src 源文件路径,dst目标文件路

def copy(src,dst):

打开src文件

读的方式打开src

fr = open(src,‘r’)

写的方式打开dst

fw = open(dst,‘w’)

把src的内容写入到dst中

fw.write(fr.read())

关闭文件

fr.close()

fw.close()

print(‘文件拷贝完成’)

copy(“1.txt”,‘2.txt’)

21.答案解析:

文件分为2类一个是文件一个是目录

处理的时候需要判断是文件还会目录

import os

#file_dir 要重命名那个文件夹下面的文件

def rename(file_dir):

获取当前文件下面的所有文件【包含目录和文件】

files = os.listdir(file_dir)

遍历获取所有文件与目录

for file in files:

拼接获取完整的文件路径

filename = os.path.join(file_dir,file)

判断如果是文件则重命名

if os.path.isfile(filename):

获取完成的新的文件路径名字

new_name = os.path.join(file_dir,“new_”+file)

os.rename(filename,new_name)

else: # 如果不是文件说明是个目录

#如果是目录则递归调用继续 对子目录中的文件进行重命名

rename(filename)

测试

rename(‘D:\test’)

22.答案解析:

1.我们要区分是水果,需要有一个水果类型

2. 颜色和价格是对象属性

3. 魔法方法__str__ 便于格式化打印对象

class Fruit():

def init(self, fruit_type):

创建的时候指定创建什么类型的水果

self.type = fruit_type

self.color = None

self.price = None

设置颜色

def Set_color(self,color):

self.color = color

设置价格

def Set_price(self,price):

self.price = price

def str(self):

if self.color is None or  self.price is None:

return “水果价格和颜色没有设置!”

else:

return f’{self.type}: color–{self.color} price–{self.price}元 ’

创建苹果

apple = Fruit(“苹果”)

apple.Set_color(‘red’)

apple.Set_price(5)

print(apple)

… 其他自己创建

23.答案解析:

1. 电脑类,为了区别种类我们需要有一个 电脑类型type

2. 电脑能播放电影,有play方法,电影因为不属于电脑的,所以我们可以把电影当成参数传递

class Computer():

def init(self,ctype):

初始化电脑的类型,例如联想

self.type = ctype

播放电影的行为

def play(self,film):

print(f"{self.type} 播放了 {film}!")

levoe = Computer(“联想”)

levoe.play(“猫和老鼠”)

其他电脑自己创建

24.答案解析:

class Person():

def init(self, name,age):

创建的时候指定创建什么类型的水果

self.name = name

私有属性

self.__age = age

获取年龄,因为年龄是私有属性所以要提供对象的方法获取

def Get_age(self):

return self.__age

设置年龄,因为年龄是私有属性所以要提供对象的方法进行修改

def Set_age(self,age):

self.__age = age

重新__str__ 便于打印格式化

def str(self):

return f’name: {self.name}, age:{self.__age}’

测试代码

laowang = Person(‘laowang’,50)

print(laowang)

laowang.Set_age(60)

print(laowang.Get_age())

print(laowang)

25.答案解析

无参数,返回用户校验后的面

def input_password():

password = input("请输入密码: ")

if len(password)<8:

如果密码长度小于8位 抛出异常

一、Python所有方向的学习路线

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

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-WGbJHubK-1713796731023)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值