Python面试练习题 您所在的位置:网站首页 python中计算斐波那契数列前两项给定长度的数列 Python面试练习题

Python面试练习题

2023-03-27 01:25| 来源: 网络整理| 查看: 265

1,字典 按照key值进行排序。

ll={'name': '$csv{name}', 'base_url': '${get_baseurl(crcindex_url)}','ase':'lal'} f=sorted(ll.items(),key=lambda x:x[0]) print(dict(f))

2,a或b中包含的所有元素(并集) 、a或b中包含的所有元素(并集)、a中包含而集合b中不包含的元素(差集) 、不同时包含a和b的元素

a = [2, 3, 8, 4, 9, 5, 6] b = [2, 5, 6, 10, 17, 11] print(set(a)& set(b)) print(set(a)| set(b)) print(set(a)- set(b)) print(set(a)^ set(b)) {2, 5, 6} {2, 3, 4, 5, 6, 8, 9, 10, 11, 17} {8, 9, 3, 4} {3, 4, 8, 9, 10, 11, 17}

3,有1、2、3、4数字能组成多少互不相同无重复数的三位数?

sum=0 for i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=j and i!=k and j!=k : pass sum+=1 print(f"不重复的三位数有{sum}") 不重复的三位数有24

4,冒泡排序

a = [11, 2, 33, 1, 5, 88, 3] for i in range(0,len(a)): for j in range(i+1,len(a)): if a[i]>a[j]: a[i],a[j]=a[j],a[i] [1, 2, 3, 5, 11, 33, 88]

5,# 课时介绍在以下文本中找出 每行中长度超过5个字母的单词:

a='''Call me Ishmael. Some years ago - never mind how long precisely - having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen, and regulating''' print([[j for j in i.split(' ') if len(j)>5 ]for i in a.split('\n')]) [['Ishmael.', 'precisely', 'having'], ['little', 'purse,', 'nothing', 'particular', 'interest'], ['shore,', 'thought', 'little', 'watery'], ['world.', 'driving', 'spleen,', 'regulating']]

6,有一个数据list dict如下 a = [{"ceshi1": "123456"},{"ceshi2": "123456"}, {"ceshi3": "123456"}]

写入到本地一个txt文件

ceshi1,123456ceshi2,123456ceshi3,123456

a = [ {"ceshi1": "123456"}, {"ceshi2": "123456"}, {"ceshi3": "123456"}, ] with open('text.text','a',encoding='utf-8')as file: for i in a: for j in i.items(): file.write(j[0]+','+j[1]+ '\n')

7, 写一个小程序:控制台输入邮箱地址(格式为 [email protected]),# 程序识别用户名和公司名后,将用户名和公司名输出到控制台。## 要求:# 校验输入内容是否符合规范([email protected]),# 如是进入下一步,如否则抛出提 示"incorrect email format"。# 注意必须以.com 结尾# 4. 可以循环“输入--输出判断结果”这整个过程# 5. 按字母 Q(不区分大小写)退出循环,结束程序

while True: a=input('请输入公司邮箱:') if a=='q' or a =='Q': quit() if 'com' and '@' in a: b=a.split('@') print(f'员工用户名{b[0]}') c=b[1].split('.') print(f'公司名称{c[0]}') else: print('"incorrect email format"')

8,{[{()}]()} 就是一个闭合的字符串 {[{()}]([)]} 这个里面 ([)] 这种就是不闭合,判断字符串是不是闭合的。

lis = '{[{(())}}' l=[] flag=True for i in lis: print(i) if i=='{' or i=='(' or i=='[': l.append(i) elif i=='}': if len(l)==0 or l.pop() !='{': flag=False elif i==')': if len(l)==0 or l.pop() !='(': print(l) flag=False elif i==']': if len(l)==0 or l.pop() !='[': flag=False if len(l)!=0: flag = False print(flag)

9#有一个字符串列表['aababbc', 'badabcab'] 将字符串中的'ab' 移除,比如'aababbc' 移除里面的ab后得到abc 需继续移除ab,得到c, 直到字符串中不会出现连续的ab

ll=['aababbc', 'badabcab'] ls=[] for i in ll: while 'ab' in i: i=i.replace('ab','') ls.append(i) print(ls)

10 这种的字符串“ABCABADCSABBAUYIIYU”找出回文出现的次数

str1='ABCABADCSABBAUYIIYU' b=[] for i in range(2,len(str1)+1): for j in range(len(str1)-i+1): a=str1[j:j+i] if a==a[::-1]: b.append(a) print(b) ['BB', 'II', 'ABA', 'ABBA', 'YIIY', 'UYIIYU']

11 判断字符串是不是回文a='abcba'

print(a == a[::-1]) reversed 翻转迭代器 print(a=="".join(reversed(a)))

12字符串切割成list

a = 'hello_word_ceae' print(a.split("_",1))

13,字符串拼接

aa=['hello', 'word','ceae'] print("_".join(aa)) 以下划线进行拼接。 print(os.path.join(os.getcwd(),'cesjo'))拼接当前地址。

14 字符串替换

aa='hello_word_ceae' print(aa.replace('_',"-",1))

15 九九乘法表

for i in range(1,10): for j in range(1,i+1): print('%s*%s=%-2s' %(j,i,j*i),end=' ') print()

16#找出单词welocme在字符串'hello,welcome to my word.'中出现的位置,找不到返回1str='hello,welcome to my word.'

if 'welcom' in str: print(str.index('welcom')) else: print(-1) 一行代码解决 print(str.index('welcom') if '1welcom' in str else -1)

17#输入一个字符串,输出M个只出现N次的字符,如字符串gbgkkdehh中,找出第二个只出现一次的字符输出结果B

from collections import Counter a="gbgkkdehh" b=Counter(a) li=[] for key,vale in dict(b).items(): if vale==2: li.append(key) print(li) 列表推到式 print([i for i,j in dict(Counter(a)).items() if j==2])

18# 输出指定字符串A在字符串B中第一次出现的位。

A = "hello" B = "hi how are you hello world, hello yoyo !" print(B.index(A)) #查找第二次所在位置 print(B.find(A,B.find(A)+1)) #从右往左查询 print(B.rfind(A))

19 #输入一个姓名,判断是否姓王

a=input('请输入姓名:') if a.startswith('王'): print('是以王开头') else: print('不是以王开头') print(['是以王开头' if a.startswith('王') else '不是以王开头'])

20 # 课时介绍如何判断一个字符串是不是纯数字组成

a='123456' b='asdfs' try: int(b) print('是纯数字') except: print('是字符串') #第二种方法如果是数字返回ture负责返回flase print(b.isdigit())

21 # 字符串 a = " welcome to my world "首尾空格去掉

a = " !welcome to my worlda " print(a.strip()) #strip去除首位空格 print(a.strip(" ")) print(a.lstrip("!")) #去除左边的“!” print(a.rstrip(a)) #去除右边空格 b=a.split(' ')# 去除字符串内的空格 print(''.join(b)) print(a.replace(' ',''))

22,#字符串去重后排序

a='absdsdfkldfdfdg' l=[] for i in a: if i not in l: l.append(i) print("".join(sorted(l))) #循环去重 print(''.join(sorted(set(a)))) #set去重

23,#s = "ajldjlajfdljfddd",去重保留原来的顺序,输出"ajldf

s = "ajldjlajfdljfddd" print(''.join(sorted(set(s),key= lambda x :s.index(x))))

24 #打印出图案(菱形):

a=7 b=(a+1)//2 ls=[1,3,5,7,5,3,1] c=[2*i+1 for i in range(b)]+[2*i-1 for i in range(b-1,0,-1) ] print(c) for i in c: d=(a-i)//2 print(d*" ",'*'*i)

25 #如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。# 例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数## 那么问题来了,求1000以内的水仙花数(3位数)

for i in range(100,1000): if i==sum([int(j)**3 for j in str(i)]): print(i)

26# 如果一个正整数等于除它本身之外其他所有除数之和,就称之为完全数。# 例如:6是完全数,因为6 = 1+2+3;# 下一个完全数是28 = 14+7+4+2+1。# 求1000以下的完全数

for a in range(2,1000): ll=[] for i in range(1,a): if a%i==0: ll.append(i) if sum(ll)==a: print(a) for b in range(2,1000): if sum([i for i in range(1,b) if b%i==0])==b: print(b)

27,# 求数字1+2+3+4+5+……+100 之和

i=1 sum=0 while i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有