Python面试
1字符串大小写转换
upper() 所有字母大写
lower()所有字母小写
title() 每个单词首字母大写
s1=‘hello’
print(s1)
print(s1.capitalize()) # Hello
s1=s1[0:1]+s1[1].upper()+s1[2:] # hEllo
2.文件I/O操作
with open(‘文件路径’,‘选项’) as f 把打开的文件赋值给变量f
f.read().dencode(‘utf-8’)
f.readline()
f.readlines() 全部读入,按行返回列表
f.write 字符串的形式覆盖写入
f.writelines 以列表为单位写入
3json处理
encoding 把一个python对象编码转换成Json字符串
decoding 把Json格式的字符串解码成Python对象
json.dumps() 返回一个str对象encodedjson
json.loads()讲encodedjson进行decode,得到原始数据
json.dumps(dict1,ensure_ascii=False)
4可变和不可变数据类型
不可变数据类型:数值型,string,tuple
可变数据类型:list,dict
5 sort排序
sorted 从大到小排序
sort 从小到大排序
6统计文章中出现频率最高的单词
collections模块
from collections import Counter
import re
with open(“this.txt”, “r”, encoding=“utf-8”) as fd:
word_list = [] # 存放所有单词,全部小写,并去除,.!等后缀,并去除空格字符串
word_dict = {} # 保留{word: count}键值对
for line in fd.readlines():
for word in line.strip().split(" “):
word_list.append(re.sub(r”[.|!|,]", “”, word.lower()))
word_sets = list(set(word_list)) # 确保唯一
word_dict = {word: word_list.count(word) for word in word_sets if word}
result = sorted(word_dict.items(), key=lambda d: d[1], reverse=True)[:10]
print(result)
7lambda表达式
适用于多个参数,一个返回值的情况
8函数的传值到底是值传递还是引用传递,
要分情况:
不可变参数用值传递:像整数和字符串这样的不可变对象,是通过拷贝进行传递的,因为你无论如何都不可能在原处改变不可变对象
可变参数是引用传递的: 比如像列表,字典这样的对象是通过引用传递、和 C 语言里面的用指针传递数组很相似,可变对象能在函数内部改变。