10道Python编程面试题,你能顺手写几道?
1.统计在一个队列中的数字,有多少个正数,多少个负数。
1 2 3 4 5 6 7 8 9 10 | a = [ 1 , 3 , 5 , 7 , 9 , 11 , 0 , - 2 , - 4 , - 6 , - 8 , - 10 ] m = 0 #m:统计大于0的数 n = 0 #n:统计小于0的数 for i in a: if i > 0 : m + = 1 elif i < 0 : n + = 1 print ( "大于0的个数:{}" . format (m)) print ( "小于0的个数:{}" . format (n)) |
2.请把字符串"软件测试"里的字符串逐个打印出来。
1 2 3 | str = '测试' for i in str : print (i) |
3.字符串"微信公众号:软件测试",输出为”软件测试小栈:微信公众号"。
1 2 3 4 | str = "微信公众号:软件测试" list_str = list ( str .split( ':' )) list_str.reverse() print ( ":" .join(list_str)) |
4.请把两个列表提取作为字典:
现有2个列表
keys = ['name', 'age', 'city','微信公众号']
values = ['CoCo', 18, 'ShenZhen','I软件测试']]
需要将转换为字典,结果如下:
{'name': 'CoCo', 'age': 18, 'city': 'ShenZhen', '微信公众号': '软件测试'}
1 2 3 4 | keys = [ 'name' , 'age' , 'city' , '微信公众号' ] values = [ 'CoCo' , 18 , 'ShenZhen' , '软件测试' ] dict = dict ( zip (keys, values)) print ( dict ) |
5.Python代码计算1-1000以内能被7整除,除以5余3的整数,并按行打印。
1 2 3 | for i in range ( 1 , 1000 ): if i % 7 = = 0 and i % 5 = = 3 : print (i) |
6.用递归实现数字的阶乘N!,如n=9时,s=9*8*7*6*5*4*3*2*1
1 2 3 4 5 6 | def a(n): if int (n)< = 1 : return 1 else : return n * a(n - 1 ) print (a( 9 )) |
7.合并两个列表,并消除重复的值。
list_1=["CoCo","CiCi","软件测试","520"]
list_2=["520","ITesterA","888",666,"CoCo"]
1 2 3 4 | list_1 = [ "CoCo" , "CiCi" , "软件测试" , "520" ] list_2 = [ "520" , "ITesterA" , "888" , 666 , "CoCo" ] res = set (list_1 + list_2) print (res) |
8.使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和。
1 2 3 4 5 6 7 8 9 10 11 | #从2开始计算 i = 2 #定义一个变量用于保存结果 sum = 0 while i < = 100 : if i % 2 = = 0 : sum = sum + i else : sum = sum - i i + = 1 print ( "2-3+4-5+6...+100=" , sum ) |
9.检查传入列表的长度,如果大于2,那么仅仅保留前两个长度的内容,并将新内容返回。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | def func( * args): """ 检查列表长度,如果大于2,那么保留前两个长度的内容,并将新内容返回s :param args: :return: """ #遍历列表 for i in args: # print(i) #获取长度 len_i = len (i) #判断长度 #如果长度大于2,返回前两个,利用切片[:2] if len_i> 2 : return (i[: 2 ]) #否则,返回i即可 else : return (i) #调用函数,将新内容返回给L L = func([ "CoCo" , "微信公众号:软件测试" , 520 ]) print (L) |
10.将用户输入的所有数字相乘之后对20取余数,用户输入的数字个数不确定。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #定义函数 def func( * args): """ 将用户输入的所有数字相乘之后对20取余数 :param args: :return: """ # 初始积为1 mul = 1 # 遍历所有用户输入的动态参数 for value in args: # 将所有输入的数字相乘 mul * = value print ( "所有数字相乘之后对20取余数,计算结果为:{}" . format (mul % 20 )) while True : try : #从控制台获取用户输入的数字 num = input ( '请输入需要计算的数字(数字之间以英文分隔):' ) #将用户输入的数字以英文逗号进行分割存入list_num list_num = num.split( ',' ) #定义一个空列表new_list_num new_list_num = [] #遍历list_num列表,将值依次存入new_list_num列表 for i in list_num: #强制转换成int类型 new_list_num.append( int (i)) #调用func1方法 带一个*解包 func( * new_list_num) except Exception as e: #如果输入非法(输入小数/字符/中文) print ( "\033[31;1m输入有误,请重新输入!\033[0m" ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?