180道Python面试题(6~10)

6.统计字符串每个单词出现的次数

  • python2

      from collections import Counter
      str='hello world'
      Counter(str)
    

cmd中运行为:
Counter({‘l’: 3, ‘o’: 2, ’ ': 1, ‘e’: 1, ‘d’: 1, ‘h’: 1, ‘r’: 1, ‘w’: 1})

  • python3

      str='hello world'
      {a:str.count(a) for a in set(str.replace(' ',''))} #replace用来将hello world中间的空格替换掉
    

cmd中运行为:

	{'w': 1, 'l': 3, 'o': 2, 'r': 1, 'd': 1, 'h': 1, 'e': 1}

7.用 python 删除文件和用 linux 命令删除文件方法

  • python3删除文件

      import os
      #查看当前目录的绝对路径
      os.path.abspath('.')
      #创建一个文件
      text = open("text.txt","w")
      #在当前目录下创建一个文件夹
      os.mkdir('./text')
      #删除文件之前要先关闭文件
      text.close()
      #删除先前创建的text文件
      os.remove('text.txt')
      #删除先前创建的text文件夹
      os.rmdir('./text')
    

其中

	#递归删除空目录:
	os.removedirs()
	#递归删除目录和文件(类似DOS命令DeleteTree):
	import shutil
	shutil.rmtree()
	#一行搞定 __import__('shutil').rmtree()
  • linux删除文件

      rm file  # 直接删除
      rm -i file   # 删前提示
      rm -f file   # 强制删除
      rm -rf /dir  # 递归删除
      #在删除文件时会碰到Device or Resource is busy的情况,这个时候尝试用下面的方法:
      1)使用ps和kill命令查看并删除相应的进程,时候再执行rm删除操作
      2)lsof命令查看使用该文件并用kill删除,再执行rm操作
      3)使用fuser -kvm /mnt/test命令,再执行rm操作
       -k参数: 缩写kill
       -v参数: 详细输出
       -m参数: 表面指定的路径为挂载点
      4)使用find命令结合-exec命令来删除
      $ find /tmp -type f -exec rm -rf {} \;
      5)使用find命令结合xargs命令来删除
      $ find /tmp -type f | xargs rm -rf
    

8.写一段自定义异常代码

	class TryError(Exception):
	    def __init__(self,ErrorInfo):
	        super().__init__(self) #初始化父类
	        self.errorinfo=ErrorInfo
	    def __str__(self):
	        return self.errorinfo
	
	if __name__ == '__main__':
	    try:
	        raise TryError('抛出异常')
	    except TryError as e:
	        print(e)

9.举例说明异常模块中 try except else finally 的相关意义
python中try/except/else/finally语句的完整格式如下所示:

	try:
 		Normal execution block
	except A:
 		Exception A handle
	except B:
 		Exception B handle
	except:
 		Other exception handle
	else:
 		if no exception,get here
	finally:
 		print("finally")

一个实例

	try:
		print(8/int(input("请输入一个非零整数:")))
	except ZeroDivisionError:
		print("除数不能为0")
	except ValueError:
		print("请重新输入")
	except Exception as reason:
		print("未知类型错误:" % reason)
	else:
		print("well")
	finally:
		print("its ok")

运行结果

	==== RESTART:\try.py===============
	请输入一个非零整数:0
	除数不能为0
	its ok
	==== RESTART: \try.py ==============
	请输入一个非零整数:1
	8.0
	well
	its ok

10.遇到 bug 如何处理
可以使用python自带的异常处理或自定义异常抛出,查找问题可以看看官方文档,或者百度,谷歌


待续…

发布了10 篇原创文章 · 获赞 1 · 访问量 798

猜你喜欢

转载自blog.csdn.net/weixin_40958742/article/details/100100660