2023年最新Python面试题(1)之基础篇精选
- 1.统计字符串中字符出现的次数
- 2.获取字典key值键中小写字母对应键值对
- 3.将字典中key变小写
- 4.更改字典value值
- 5.将cookies变成字典形式
- 6.有如下字符串username把它转换成为UserName
- 7.分别求出奇数和偶数把奇数偶数存放在对应存放奇数偶数的列表中
- 8.分析以下数据
- 9.去重后将元素放入新的列表
- 10.将列表转成字典,value值为None
- 11.两个字典合并
- 12. 字符串替换
- 13.把字符串转换为字典
- 14.通过for循环来完成99乘法表
- 15.列表去重
- 16.如何不通过循环,输出1到10
- 17.使用函数,输出1到10
- 18.如何对单词反转
- 19.两个列表如何合并成字典
- 20.统计字符串s='I love abc'中,每个元素出现的次数
- 21.有一个学生分数的字典 d={"stu1":10, "stu2":20, "stu3":30} ,请按分数进行排序(从大到小)
- 22.列表l =[1,2,3,5,6]转字符串
- 23.判断一个字符串中的括号是不是成对出现的
- 24.返回字符串中第一个不重复的字母和位置
- 25.求一个数字列表里,相邻两数乘积最高的值,两个数分别是多少?
- 26.通过函数完成def sum(n): 用传形参赋予实参的方法来实现 5的累加之和 0+1+2+3+4+5=结果
- 27.实现简单ATM查询余额
- 28.把网址后面地址转换成字典内的值
- 29.求阶乘 求10的阶乘(递归函数完成)
- 30.用字典方式实现登录注册
1.统计字符串中字符出现的次数
有这样的字符串:a=‘helloworld’ 统计字符串中字符出现的次数
from collections import Counter
a='hello'
print(Counter(a))
2.获取字典key值键中小写字母对应键值对
d={‘a’:10,‘F’:20,‘D’:‘B2’,‘D’:‘555’,‘e’:‘123’}字典中key值是小写字母的键值对
d={'a':10,'F':20,'D':'B2','D':'555','e':'123'}
for key,value in d.items():
if key.islower()==True :
dict.update({key: value})
print(key,value)
3.将字典中key变小写
d={‘a’:10,‘F’:20,‘D’:‘B2’,‘D’:‘555’,‘e’:‘123’}字典中所有的key变为小写 结果:
d={'a':10,'F':20,'D':'B2','D':'555','e':'123'}
dc = {}
for key,value in d.items():
dc[key.lower()]=value
print(dc)
4.更改字典value值
将d={‘a’:10,‘F’:20,‘D’:‘B2’,‘D’:‘555’,‘e’:‘123’}字典中所有的的value统一赋值为’error’ 结果:
d={'a':10,'F':20,'D':'B2','D':'555','e':'123'}
for key in d:
d[key]='error'
print(d)
5.将cookies变成字典形式
cookies="JSESSIONID=abcMktGLRGjLtdhBk7OVw;first_login_flag=1;ln_uact=55883008898;wp_fold=0"字符串转换成字典的形式 结果
cookies="JSESSIONID=abcMktGLRGjLtdhBk7OVw;first_login_flag=1;ln_uact=55883008898;wp_fold=0"
dc = {cookies.split('=')[0]:cookies.split('=')[1] for cookies in cookies.split(';')}
print(dc)
6.有如下字符串username把它转换成为UserName
第一种写法
s='username'
print(s.replace(s,'UserName'))
第二种写法
s='username'
print(s[0:4].capitalize()+s[4:].capitalize())
第三种写法
s='username'
s1=''
for i in s:
if i=='u' or i=='n':
s1+=i.upper()
else:
s1+=i
print(s1)
7.分别求出奇数和偶数把奇数偶数存放在对应存放奇数偶数的列表中
sum_1=[]
sum_2=[]
for i in range(101):
if i%2==0:
sum_2.append(i)
else:
sum_1.append(i)
print(sum_1)
print(sum_2)
8.分析以下数据
1 1 2 3 5 8 13 21来实现此结果输出结果是
l=[]
for i in range(8):
if i==0 or i==1:
l.append(1)
else:
l.append(l[i-2]+l[i-1])
print(l)
9.去重后将元素放入新的列表
1=[1,1,4,2,2,5,6,9]实现把元素去重后返回一个新的列表结果是:
[1,1,4,2,2,5,6,9]
l1=[]
for i in l:
if i not in l1:
l1.append(i)
print(l1)
10.将列表转成字典,value值为None
l=[‘a’,‘b’,‘c’]
l=['a','b','c']
d1={}
for i in l:
d1[i]='None'
print(d1)
11.两个字典合并
l=[‘abc’,‘bb1’,‘c3’] l1=[1,2,3]
把这两个列表转换为字典结果
l=['a','b','c']
l1=[1,2,3]
d={}
c = dict(zip(l,l1))
print(c)
12. 字符串替换
a=‘I LOVE YOU’ 实现输出结果
a='I LOVE YOU'
ab=a.replace('YOU','2023')
print(ab)
13.把字符串转换为字典
a=‘A1:1|A2:2|A3:3’ 结果
第一种:
a='A1:1|A2:2|A3:3'
d={}
d1=a.split('|')
for i in d1 :
s1 = i.split(':')
d.setdefault(s1[0],s1[1])
print(d)
14.通过for循环来完成99乘法表
for x in range(1,10):
for y in range(1,x+1):
print('%d*%d=%d' % (x,y,x*y))
15.列表去重
l = [4, 2, 1, 3, 4, 2, 5, 9, 3, 2, 2, 2,9,9,9],去除列表中的重复元素
第一种
l = [4, 2, 1, 3, 4, 2, 5, 9, 3, 2, 2, 2,9,9,9]
b1 = set(l)
print(b1)
第二种:
l = [4, 2, 1, 3, 4, 2, 5, 9, 3, 2, 2, 2,9,9,9]
l1 = []
for i in l:
if i not in l1:
l1.append(i)
print(l1)
16.如何不通过循环,输出1到10
def prints(n):
if (n > 0):
prints(n-1)
print(n)
if __name__ == '__main__':
prints(10)
17.使用函数,输出1到10
def a1():
for i in range(1,11):
print(i)
if __name__ == '__main__':
a1()
18.如何对单词反转
a=‘ABC’
a='ABC'
a2 = sorted(a,reverse=True)
print(a)
a3 = ''.join(a2)
print(a3)
19.两个列表如何合并成字典
第一种:
l1=['wang','li','wt','kkke']
l2=[10,20,30,40]
l3= dict(zip(l1,l2))
print(l3)
第二种:
l1=['wang','li','wt','kkke']
l2=[10,20,30,40]
l3={}
for i in range(len(l1)):
l3[l1[i]]=l2[i]
print(l3)
20.统计字符串s='I love abc’中,每个元素出现的次数
from collections import Counter
s='I love abc'
print(Counter(s))
21.有一个学生分数的字典 d={“stu1”:10, “stu2”:20, “stu3”:30} ,请按分数进行排序(从大到小)
import operator;
d={"stu1":50, "stu2":20, "stu3":30}
d1=sorted(d.items(),key=operator.itemgetter(1),reverse=True)
print(d1)
22.列表l =[1,2,3,5,6]转字符串
l =[1,2,3,5,6]
l1 = [str(i) for i in l]
l2 = ''.join(l1)
print(l2)
23.判断一个字符串中的括号是不是成对出现的
s = “256{}{}{111{555}}{{}}{}{}”
s1 = "{}{}"
if s.count(s1)!=0:
print('yes')
else:
print('no')
24.返回字符串中第一个不重复的字母和位置
a=‘aaabbbccckdkdkdeitrugalgfklafdcv,zcv.,mhkaghf’
def first_char(str):
d = {}
for i in range(len(str)):
if str[i] in d:
d[str[i]] += 1
else:
d[str[i]] = 1
for i in range(len(str)):
if d[str[i]] == 1:
return '第一个不重复的字符串是{},索引是{}'.format(str[i], i)
return "None"
if __name__ == '__main__':
s1 = 'aaabbbccckdkdkdeitrugalgfklafdcv,zcv.,mhkaghf'
res = first_char(s1)
print(res)
25.求一个数字列表里,相邻两数乘积最高的值,两个数分别是多少?
l = [10,5,1,2,3,4,5,6,7,8,9]
def mu(list):
l1 =[]
for i in range(1,len(list)):
j = i-1
mut = list[i]*list[j]
l1.append((mut,list[i],list[j]))
return max(l1)
mut,left,right = mu(l)
print(mut,left,right)
26.通过函数完成def sum(n): 用传形参赋予实参的方法来实现 5的累加之和 0+1+2+3+4+5=结果
def sum(n):
j = 0
for i in range(0,n):
j=j+i
print(j)
sum(5)
27.实现简单ATM查询余额
有一查询余额的系统,帐号:user1 密码:123456 验证码:1234
登录成功,查询您的余额是:您的余额是10万元
输入错误,返回请重新输入
a = input('请输入账号')
if a =='user1':
b = input('请输入密码')
if b =='123456':
c = input('请输入验证码')
if c=='1234':
print('您的余额是10万元')
else:
print('输入错误,返回请重新输入')
28.把网址后面地址转换成字典内的值
url=“http://www.abc.com?page_size=30&page_index=31&user_id=2023”
def funadd():
url="http://www.abc.com?page_size=30&page_index=31&user_id=2023"
sp=url.split('?')
del sp[0]
d={}
for i in sp:
s1=i.split('&')
for j in s1:
s2=j.split('=')
d.setdefault(s2[0],s2[1])
print(d)
funadd()
29.求阶乘 求10的阶乘(递归函数完成)
第一种:
def d(n):
a =1
for i in range(1,n):
a=a*i
print('%d!=%d'%(i,a))
d(11)
第二种:
import math
def d(n):
print('%d!=%d'%(n-1,math.factorial(n)))
d(11)
30.用字典方式实现登录注册
data ={'root1':'123456','admin':'1234'}
def login():
username=input('请输入账号')
if not data.__contains__(username):
print('请先注册')
reg()
else:
userpwd=input('输入密码')
if userpwd==data[username]:
print('登录成功')
else:
print('密码错误')
def register():
zcname=input('请输入账号:')
if data.__contains__(zcname):
print('账号已经注册')
logjump()
else:
rgpwd1=input('输入密码:')
rgpwd2=input('再次确认密码:')
if rgpwd1==rgpwd2:
print('两次的密码一致,注册成功')
data.setdefault(zcname,rgpwd2)
print(data)
logjump()
else:
print('密码不一致,重新注册')
register()
if __name__ == "__main__":
login()