点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍,小窗口回复“资源”、“测试工具包”领取测试资源。
本文3152字,阅读约需8分钟
Hi,大家好。站在九月的尾巴,即将迎来十月,今天分享10道Python常见面试题,如果想要获取更多面试题,可以在后台回复“面试顺利”进行解锁,如需本文源代码可在后台回复“py0923”。
要求:用多种Python方法实现交换两个变量的值,如:a=20,b=30,交换后:a=30,b=20。
方法一:使用第三方临时变量
运行结果如下:
要求:输入三个整数x,y,z,将这三个数由小到大输出。
方法一:使用列表排序
运行结果如下:
方法二:利用三个变量
运行结果如下:
方法三:依次比较大小
运行结果如下:
方法四:列表的sort方法排序
运行结果如下:
要求:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?并打印输出符合条件的三位数。
代码实现如下:
运行结果如下:
要求:将一个列表的数据复制到另一个列表中。
方法一:列表的copy方法
方法二:列表的切片
运行结果如下:
要求:判断101-200之间有多少个素数,并输出所有素数。
分析:
1.素数: 只能被1和本身整除的数。所以需要一个变量从1到本身;
2.数据变化的范围是从101-200 所以需要使用循环;
3.判断: 如果有一个非1和本身的数被整除则跳出循环,判断下一个数字;
4.如果循环完成,都只有1和本身能被整除说明符合条件,计数器+1
方法一:使用while循环
方法二:使用for循环
运行结果如下:
要求:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
方法一:使用for循环
#!/usr/bin/python3# @Software:PyCharm# @微信公众号:ITester软件测试小栈#方法一:使用for循环 或while循环s = input("请输入一个字符串:").strip()letters = 0 #统计字母space = 0 #统计空白字符digit = 0 #统计数字other = 0 #统计字符for i in s: if i.isalpha(): # 判断是否是字母 letters += 1 elif i.isspace(): # 判断是否是空白字符 space += 1 elif i.isdigit(): # 判断是否是数字 digit += 1 else: other += 1print(f'char = {letters},space = {space},digit = {digit},others = {other}')
方法二:使用正则表达式
运行结果如下:
要求:Python多种方法实现打印斐波拉契数列。
分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、55……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。
方法一:使用函数
方法二:使用递归
方法三:输出指定个数的斐波拉契数列
方法四:使用生成器的方式实现
方法五:类实现内部魔法方法
#!/usr/bin/python3# @Software:PyCharm# @微信公众号:ITester软件测试小栈#方法五: 类实现内部魔法方法class fib_5(object): """斐波那契数列迭代器""" def __init__(self, n): """ :param n:int 指 生成数列的个数 """ self.n = n # 保存当前生成到的数据列的第几个数据,生成器中性质,记录位置,下一个位置的数据 self.current = 0 # 两个初始值 self.a = 0 self.b = 1 def __next__(self): """当使用next()函数调用时,就会获取下一个数""" if self.current < self.n: self.a, self.b = self.b, self.a + self.b self.current += 1 return self.a else: raise StopIteration def __iter__(self): """迭代器的__iter__ 返回自身即可""" return selfif __name__ == '__main__': fib = fib_5(10) for num in fib: print(num)
运行结果如下:
要求:打印出100-999之间所有的"水仙花数。
分析:所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1³+5³+3³。
代码实现如下:
运行结果如下:
要求:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可;
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步;
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
方法一:使用循环
方法二:使用递归
运行结果如下:
要求:Python实现找出1000以内的所有完数。
分析:一个数如果恰好等于它的因子之和,这个数就称为"完数",例如6=1+2+3。
代码实现如下:
运行结果如下:
如果想要获取本文完整代码可在ITester软件测试小栈微信公众号后台回复“py0923”,代码结构如下所示:
更多系列文章
敬请期待
我是CoCo,计算机科学与技术专业,深漂大厂互联网民工(女),坐标深圳。5年工作经验,3年持续输出技术文。ITester软件测试小栈(ID:ITestingA),专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍,愿我们在更高处相逢。喜欢记得星标⭐我,每周及时获得最新推送,第三方转载请注明出处。
想获取更多最新干货内容
快来星标 置顶 关注我
留言与评论(共有 0 条评论) “” |