IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python相关岗位算法面试题总结(持续更新) -> 正文阅读

[Python知识库]python相关岗位算法面试题总结(持续更新)

在这里插入图片描述

一、统计字符串中出现最多的字符并输出

def fun_dict(list):
    dt = {}
    for item in list:
        if item not in dt:
            dt[item] = 1
        else:
            dt[item] += 1
    return dt


def fun_list(str):
    lt = []
    for item in str:
        lt.append(item)
    return fun_dict(lt)


str1 = "aaaccccdef"
print(fun_list(str1))

执行结果:
{‘a’: 3, ‘c’: 4, ‘d’: 1, ‘e’: 1, ‘f’: 1}

二、输出 9*9 乘法口诀表

def fun_9():
    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={}".format(i,j,i*j),end="\t")
        print()

fun_9()
1*1=1	
2*1=2	2*2=4	
3*1=3	3*2=6	3*3=9	
4*1=4	4*2=8	4*3=12	4*4=16	
5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	
6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	
7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	
8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	
9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81	

三、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

def fun_str():
    s=input('请输入字符串:')
    letters,space,digit,others=0,0,0,0
    for c in s:
        if c.isalpha():
            letters+=1
        elif c.isspace():
            space+=1
        elif c.isdigit():
            digit+=1
        else:
            others+=1
    print('英文字母={},空格={},数字={},其他字符={}'.format(letters,space,digit,others))

fun_str()

请输入字符串:werwe34534 e564
英文字母=6,空格=2,数字=8,其他字符=0

四、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),

#求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字
def fun_a():
    '''
    2+22+222+2222+22222
    可以理解为:
    20000 + 2*2000 + 3*200 + 4*20 + 5*2
    也就是:
    1*2*10^4 + 2*2*10^3 + 3*2*10^2 + 4*2*10^1 + 5*2*10^0
    所以简单迭代就可以出结果
    '''
    a=2
    t=5
    num=0
    for i in range(1,t+1):
        num+=i*a*(10**(t-i))
    print(num)

fun_a()

五、题目025:求1+2!+3!+…+20!的和

def fun_tm():

    s=0
    t=1
    for n in range(1,21):
        t=t*n
        s=s+t
    print(s)
fun_tm()

六、利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

def fun_output(s,l):
    if l==0:
        return
    print(s[l-1])
    fun_output(s,l-1)

def fun_tm1():
    s=input('请输入字符串:')
    l=len(s)
    fun_output(s,l)

fun_tm1()

七、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

def tm_2():
    num=12321
    s=str(num)
    for i in range(len(s)//2):
        if s[i]!=s[-i-1]:
            print(False)
            break
    else:
        print(True)

tm_2()

八、求100之内的素数。

def tm036():
    '''
    素数就是质数
    '''
    arr = [2]
    for i in range(3,100):
        for j in arr:
            if i%j==0:
                break
        else:
            arr.append(i)
    print(arr)

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

九、有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

def tm_3():
    a=[1,4,6,8,9,23,24,55,88]
    b=99
    for i in a:
        if b<i:
            a.insert(a.index(i),b)
            break
    else:
        a.append(b)
    print(a)

tm_3()

十、取一个整数a从右端开始的4-7位

写的时候注意一下python切片是[-7:-4)左闭右开的,不包含[-4]的,所以要写成-3才能取到

def num():
    a=123456
    b=str(a)

    print(b[-3:-1])
num()

十一、输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

def fun_tm(list):
    max_a=max(list)
    i=list.index(max_a)
    list[0],list[i]=list[i],list[0]
    print(list)

    min_b=min(list)
    j=list.index(min_b)
    list[-1],list[j]=list[j],list[-1]
    print(list)

lt=[7,2,3,6,8,5,4]
fun_tm(lt)

十二、从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。

def fun_tm():

    while True:
        c=input("请输入字符:")
        if c=="#":
            break
        else:
            with open('1.log', 'a') as f:
                f.write(c)

fun_tm()

十三、有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中

def fun_tm1():
    with open('1.log',r) as f:
        a=f.read()
    with open('2.log',r) as f:
        b=f.read()
    with open('3.log',a) as f:
        f.write(a+b)

fun_tm1()

十四、找到年龄最大的人,并输出。

person = {"li":18,"wang":50,"zhang":20,"sun":22}
def fun_tm4():
    dt=sorted(person.items(),key=lambda x:x[1],reverse=True)
    person1={}
    for i in dt:
        person1[i[0]]=i[1]
    print(person1)
fun_tm4()

十五、写一个函数比较两个列表是否相等

l1=[1,2,3]
l2=[2,3,1]
l3=[1,4,3]

def fun_t1(l1,l2):
    lt=[]
    for i in l1:
        if i in l2:
            lt.append(i)

    if len(lt)==len(l2):
        print(True)
    else:
        print(False)
fun_t1(l1,l3)

十六、查找字符串中的重复和非重复子字符串

def fun_s(s):
    li=[]
    li1=[]
    for i in s:
        if s.count(i)>1:
            li.append(i)
        else:
            li1.append(i)
    print(li)
    print(li1)

s='wertyt'
fun_s(s)

十七、给定文件的路径,返回文件名及所在目录

import os
def test():
    path=os.path.dirname(os.path.dirname(__file__))
    filename=os.path.basename(path)
    docname=os.path.dirname(path)
    return filename,docname
print(test())

十八、单例模式

class One_Bject:
    obj=None

    def __new__(cls, *args, **kwargs):
        if obj is not None:
            cls.obj=super().__new__(cls)
        return cls.obj

if __name__ == '__main__':
    obj=One_Bject
    obj1=One_Bject
    print(id(obj))
    print(id(obj1))

执行结果:

2371821596192
2371821596192

十九:写一个函数统计传入的列表中每个数字出现的次数并返回对应的字典。

方法一:

def fun(list):
    dic={}
    for i in list:
        if i not in dic:
            dic[i]=1
        else:
            dic[i]+=1
    print(dic)
fun([12,3,4,5,3,2])

方法二:

def fun1(list):
    dic={}
    for index,item in enumerate(list):
        dic[item]=dic.get(item,0)+1
    print(dic)
fun1([12,3,4,5,3,2])

二十、使用Python代码实现遍历一个文件夹的操作。

g = os.walk('D:\second_hand_car\SecondHand_list_query')
for path, dir_list, file_list in g:
    for dir_name in dir_list:
        print(os.path.join(path,dir_name))
    for file_name in file_list:
        print(os.path.join(path,file_name))

二十一、给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ? n/2 ? 的元素。

例如输入:[1,2,3,3,3]输出3
例如输入:[1,2,3]输出False

def tm_2(s):

    for i in s:
        if s.count(i)>len(s)*0.5:
            print(i)
            break
    else:
        print(False)

s=[2,1,2,1]
tm_2(s)

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:19:02  更:2022-07-17 16:22:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:39:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码