当前位置: 代码迷 >> 综合 >> Python面试题()
  详细解决方案

Python面试题()

热度:50   发布时间:2024-02-20 13:35:17.0

Python相关的面试编程题

第一题 题目

"""
1.编写程序,已知程序中列表 ll = [2, 546, 73, 11, 66, 235, 73, 5, 89] 封装不同的函数,实现下面功能a.输出列表中所有的质数。(质数是只能被1和它本身整除的数)b.删除列表中的重复元素c.使用已知列表,通过列表生成式生成一个新的列表,其中的元素全部为偶数d.利用冒泡排序的方式对列表中的元素进行降序排序e.请找出列表中任意两个元素相加等于100的元素集合,生成新的列表,例如[(73,27),(95,5)]
"""

 代码以及运行结果

ll = [2, 546, 73, 11, 66, 235, 73, 5, 89]
# a
for num in ll:if num < 2:print("%d不是质数" % num)else:result = Truefor i in range(2, num):if num % i == 0:result = Falsebreakif result:print("%d是质数" % num)else:print("%d不是质数" % num)
"""
打印结果:
2是质数
546不是质数
73是质数
11是质数
66不是质数
235不是质数
73是质数
5是质数
89是质数
"""# b
# 方式一
l2 = list(set(ll))
# 这句代码让sort()方法按照ll列表中索引顺序进行排列。
# 因为set函数会改变列表中的默认的顺序
l2.sort(key=ll.index)
# 方式二
l_2 = []
for num in ll:if num not in l_2:l_2.append(num)
print(l2)
print(l_2)
"""
打印结果:
[2, 546, 73, 11, 66, 235, 5, 89]
[2, 546, 73, 11, 66, 235, 5, 89]
"""# c
l3 = [num for num in ll if num % 2 == 0]
print(l3)
"""
打印结果:
[2, 546, 66]
"""# d
# 冒泡排序:相邻下标对应的元素进行比较
for i in range(0, len(ll) - 1):for j in range(0, len(ll) - i - 1):if ll[j] < ll[j + 1]:ll[j], ll[j + 1] = ll[j + 1], ll[j]print(ll)
"""
打印结果:
[546, 235, 89, 73, 73, 66, 11, 5, 2]
"""# e
l4 = []
for num1 in ll:for num2 in ll:if num1 + num2 == 100:l4.append((num1, num2))
print(l4)
"""
打印结果:
[(89, 11), (11, 89)]
"""

第二题题目

"""
2.已知有字符串 "I wish you have a wonderful tomorrow"a. 统计出字符串中字母 "a" 出现的次数b. 将整个字符串倒序输出c. 判断这个字符串是否对称的d. 将字符串中每一个单词的第一个字母变成大写
"""

 代码以及运行结果

str1 = "I wish you have a wonderful tomorrow"# a
# 方式一
c1 = str1.count("a")
# 方式二
c_1 = 0
for ch in str1:if ch == "a":c_1 += 1
print(c1)
print(c_1)
"""
2
2
"""# b
# 方式一
str2 = str1[::-1]
print(str2)
# 方式二
str_2 = ""
n = len(str1) - 1
while n >= 0:str_2 += str1[n]n -= 1
print(str_2)
# 方式三
list1 = list(str1)
list1.reverse()
str__2 = "".join(list1)
print(str__2)
"""
worromot lufrednow a evah uoy hsiw I
worromot lufrednow a evah uoy hsiw I
worromot lufrednow a evah uoy hsiw I
"""# c
if str1 == str2:print("对称的")
"""不对称所以不打印"""# d
str3 = str1.title()
print(str3)
"""
I Wish You Have A Wonderful Tomorrow
"""

第三题题目

"""
3.在下面字典中找到年龄最大的人,并输出姓名和年龄person = {"li": 18, "wang": 50, "zhang": 20, "sun": 22}
"""

 代码以及运行结果

person = {"li": 18, "wang": 50, "zhang": 20, "sun": 22}max_value = max(person.values())
for name, age in person.items():if age == max_value:print("姓名:%s , 年龄:%d" % (name, age))"""
姓名:wang , 年龄:50
"""

第四题题目

"""
4.设计一个函数,对传入的字符串(假定字符串中只包含小写字母和空格)进行加密加密的规则是a变d , b变e , c变f , ······ , x 变 a , y 变 b , 空格不变,返回加密后的字符串
"""

 代码以及运行结果

def func(str1):# 声明一个空字符串,用于接收加密之后的新字符串result = ""for ch in str1:value = ord(ch)if 97 <= value <= 119:result += chr(value + 3)elif 120 <= value <= 122:result += chr(value - 23)else:result += chr(value)return resultprint(func("abcdjei1535gef"))
"""
defgmhl1535jhi
"""

第五题题目

"""
计算字符串中所有数字的和,已知字符串中都是字母和数字比如传递 "12abc34def54lala" 返回 12+34+54 = 100比如传递 "lov240fdgj354rn235" 返回 240+354+235 = 829
"""

代码以及运行结果

import restr1 = "12abc34def54lala"
# 中括号只能匹配一位数字,大写26个字母和小写26个字母, +:加号至少能够匹配一位
list1 = re.split(r"[a-zA-Z]+", "12abc34def54lala")
for ele in list1:if ele == "":list1.remove("")
print(list1)
totall = 0
for ele in list1:totall += int(ele)
print(totall)
"""
['12', '34', '54']
100
"""

 

  相关解决方案