python面试题总结_2019(有解释答案) --2

                                                       

目录

21. 将"hello world"转换为首字母大写"Hello World"

22. 如何检测字符串中只含有数字?

23. 将字符串"ilovechina"进行反转

24. Python 中的字符串格式化方式你知道哪些?

25. 有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉

26. 获取字符串”123456“最后的两个字符。

27. 怎样将字符串s转换为小写?

28. 单引号、双引号、三引号的区别?

29. a = "你好     中国  ",去除多余空格只留一个空格。

30. 已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程

31. 如何实现 "1,2,3" 变成 ["1","2","3"]

32. 给定两个 list,A 和 B,找出相同元素和不同元素

33. [[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]

34. 合并列表[1,5,7,9]和[2,2,6,8]

35. 如何打乱一个列表的元素?

36. 字典操作中 del 和 pop 有什么区别

37.按照字典的内的年龄排序

38. 请合并下面两个字典 a = {"A":1,"B":2},b = {"C":3,"D":4}

39. 如何使用生成式的方式生成一个字典,写一段功能代码

40. 如何把元组("a","b")和元组(1,2),变为字典{"a":1,"b":2}

41. Python 常用的数据结构的类型及其特性?

42. 如何将元组("A","B")和元组(1,2),合并成字典{"A":1,"B":2}

43. Python 里面如何实现 tuple 和 list 的转换?

44. 我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?

45. 请将[i for i in range(3)]改成生成器

46. a="hello"和 b="你好"编码成 bytes 类型

47. 下面的代码输出结果是什么?

48. 下面的代码输出的结果是什么?

49. li = [


                                                         ****************基本语法****************

21. 将"hello world"转换为首字母大写"Hello World"

name = “hell world”

name_1 = name.capitable()

 

22. 如何检测字符串中只含有数字?

print(“1234”.isnumeric())

 

23. 将字符串"ilovechina"进行反转

(1)使用字符串切片 result = s[::-1]

(2)result = ”ilovechina”.reverse()

(3)使用出栈,pop

(4)for循环或者递归函数

 

24. Python 中的字符串格式化方式你知道哪些?

(1)用%实现,%s字符串, %d整数, %f浮点数,平时print常用

(2) 格式化字符串的函数 str.format()

格式化字符串的函数 str.format(),它增强了字符串格式化的功能。str中包含占位符,text中是要填充的内容

基本语法是通过 {} 和 : 来代替以前的 % 。

优点:format 函数可以接受不限个参数,位置可以不按顺序。

使用'{}'占位符

使用'{0}','{1}'形式的占位符

使用'{name}'形式的占位符

example:使用'{name} # 设置指定位置

info= '亲爱的{user}你好!你{month}月的花费是{huafei},余额是{balance}'

info = info.format(user='xiaoming',month=10,huafei=50.0,balance=29.29)

print info

example:使用'{0}','{1}'形式的占位符:# 设置指定位置

info1= '亲爱的{0}你好!你{1}月的花费是{2},余额是{3}'

info1 = info1.format('xiaoming',2,50.0,29.29)

print info1

example:使用{}占位符:# 不设置指定位置,按默认顺序

a = "{} {}".format("hello", "world")

print a

 

25. 有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉

(1) strip():把头和尾的空格去掉,lstrip():把左边的空格去掉,rstrip():把右边的空格去掉

(2)replace(’c1’,’c2’):把字符串中的c1替换成c2,用(’ ’,’’)去掉空格

(3)split():对字符串用空格切片

 

26. 获取字符串”123456“最后的两个字符。

result = “123456”[-2:]

 

27. 怎样将字符串s转换为小写?

capitalize() 首字母大写,其余全部小写

upper() 全转换成大写
lower() 全转换成小写

将字符串转成小写操作:result = s.lower()

 

28. 单引号、双引号、三引号的区别?

单引号中需要转义,双引号,三引号不需要转义;

三引号可以包含双引号、单引号,双引号可以包含单引号;

三引号可以多行写,单引号双引号需要换行符\

 

29. a = "你好     中国  ",去除多余空格只留一个空格。

result = ‘ ’.join(a.split())

 

30. 已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程

(1)for循环

result = []

for i in range(len(AList)):

       if AList[i] not in result:

              result.append(AList[i])

print(result)

(2)用set和sort方法

new_s = list(set(AList)) 

new_s.sort(key= AList.index)

(3) fromkeys生成一个字典,keys返回字典的键值,这里利用了键值不能重复的性质

result = a.fromkeys(s).keys()

(4)reduce方法

result = reduce(lambda x,y:x if y in x else x + [y], [[],] + s)

 

31. 如何实现 "1,2,3" 变成 ["1","2","3"]

result = list(“1,2,3”.split(‘,’))

 

32. 给定两个 list,A 和 B,找出相同元素和不同元素

(1)for循环直接实现

same =[]

usame= []

for i in a:

       if i in b:

              same.append(i)

       else:

              usame.append(i)

for i in b:

       if I not in a:

              usame.append(i)

(2)set实现: set() 函数创建一个无序不重复元素集,称为集合,是数据类型的一种,有集合的性质,可进行关系测试,删除重复数据,还可以计算交集(&)、差集(-)、并集(|)等

same = set(a)&set(b)

usame = set(a)^set(b)

 

33. [[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]

import numpy as np

result = np.arange([[1,2],[3,4],[5,6]]).flatten()

 

34. 合并列表[1,5,7,9]和[2,2,6,8]

a = [1,5,7,9]

b = [2,2,6,8]

(1)result = a + b

(2)a+=b

(3)a.extend(b)

这里不能用append,list.append(object) 向列表中添加一个对象object,list.extend(sequence) 把一个序列seq的内容添加到列表中,

a.append(b)后是这样的[1,5,7,9,[2,2,6,8]]

 

35. 如何打乱一个列表的元素?

from ramdom import shuffle

shuffle(mylist)

 

 

                                                               ****************字典操作****************

36. 字典操作中 del 和 pop 有什么区别

remove是根据元素删除;

del是根据索引删除;也可以根据索引删除指定范围的值,del a[1,4],del a表示删除整个列表;

pop()会弹出列表末尾的元素,也可以通过索引的方式删除列表指定的元素;

 

37.按照字典的内的年龄排序

dict01 = [{'name':'alice', 'age':38},
    {'name':'bob', 'age':18},
    {'name':'Carl', 'age':28},]

首先明确dict01不是dict而是list数据类型;

(1)

import operator

result = sorted(dict01, key=operator.itemgetter(’age’), reverse = ‘False’)

(2)

result = sorted(dict01, key=lambda dict01:dict01['age'])

注:因为用word编辑的原因,本文的所有的单双引号应该是不能直接移植运行程序,请注意修改再运行

 

38. 请合并下面两个字典 a = {"A":1,"B":2},b = {"C":3,"D":4}

(1)dict(a, **b)或者dict(**a, **b)

(2)result = a.copy()  

z.update(y)

 

39. 如何使用生成式的方式生成一个字典,写一段功能代码

创建字典还是改写字典?

创建字典:

dict0 = {}

dict1 = {‘data’:1, ’weight’:2, ’bias’:3}

dict2 = dict(data = 1,weight = 2, bias = 3)

dict3 = dict(zip([‘data’,’weight’,’bias’],[1,2,3]))

按照要求修改字典(例如key修改成大写,value不变):

dict4 = ({k.upper():v for k, v in dict2.items()})

 

40. 如何把元组("a","b")和元组(1,2),变为字典{"a":1,"b":2}

见39,dict3方法

 

                                              ****************综合特性****************

41. Python 常用的数据结构的类型及其特性?

与19略重复

python中常见的数据结构有元组(tuple)、列表(list)、字典(dic)、集合(set)

1、元组用小括号表示()

2、列表用中括号表示 [ ]

3、字典用大括号表示 { }

4、集合用关键字set()来表示

5、字符串用“  ”或者‘  ’表示

6、数值型数据直接用本身表示即可,不需要添加任何修饰

相互之间的区别和特点为元组和字典中的键、字符串、整型和浮点型为不可变类型,也就是说不能对其进行修改;而列表和集合为可变类型,可以直接对其进行修改。同时因为列表和集合为可变类型,因此不能作为字典中的键。

 

42. 如何将元组("A","B")和元组(1,2),合并成字典{"A":1,"B":2}

见40

 

43. Python 里面如何实现 tuple 和 list 的转换?

result = list(tuple)

result = tuple(list)

 

44. 我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?

生成器是特殊的迭代器,使用了yield的迭代器就叫生成器

(1)

import itertools

def count(n):

       while True:

              yield n

              n+=1

result = count(0)

for r in itertools.islice(result,5,10):

       print(r)

(2)

import itertools

generator_1 = (x*2 for x in range(10))

for i in itertools.islice(generator_1,5,8):

       print(i)

 

45. 请将[i for i in range(3)]改成生成器

result = (i for i in range(3))

 

46. a="hello"和 b="你好"编码成 bytes 类型

result_01 = a.encode(‘utf-8’)

result_02 = b.encode(‘uft-8’)

result_02的显示是一串字符,如果想再显示成‘你好’可以result_02.encode(‘utf-8’)

 

47. 下面的代码输出结果是什么?

a = (1,2,3,[4,5,6,7],8)
a[2] = 2

结果:TypeError: 'tuple' object does not support item assignment

 

48. 下面的代码输出的结果是什么?

a = (1,2,3,[4,5,6,7],8)
a[5] = 2

结果:TypeError: 'tuple' object does not support item assignment

 

49. li = [lambda :x for x in range(10)] li中元素是什么类型?

print(type(li))

print(type(li(0)))

<class 'list'>

<class 'function'>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值