python基础(16面试题附答案一)

python系列文章目录

python基础(01变量&数据类型&运算符)
python基础(02序列共性)
python基础(03列表和元组)
python基础(04字符串&字典)
python基础(05集合set)
python基础(06控制语句)
python基础(07函数)
python基础(08类和对象)
python基础(09闭包&装饰器)
python基础(10异常处理)
python基础(11文件读取)
python基础(12迭代器&生成器)
python基础(13魔法方法介绍)
python基础(14内置函数介绍)
python基础(15多线程编程介绍)


一、面试题附答案一

1、难度等级 I
如何实现 “1,2,3” 变成 [‘1’,‘2’,‘3’]

a='1,2,3'
print(a.split(','))

2、难度等级 I
1:计算整型50乘以10再除以5的商并使用print输出。
2:判断整型8是否大于10的结果并使用print输出。
3:计算整型30除以2得到的余数并使用print输出
4:使用字符串乘法实现 把字符串”我爱我的祖国”创建三遍并拼接起来最终使用print输出。

print(50*10/5)
print(8>10)
print(30%2)
print("我爱我的祖国"*3)

3、难度等级 II
将列表[[‘a’,‘b’,‘c’],[‘d’,‘e’,‘f’],[‘g’,‘h’]]中的元素依次展开
得到 一个新的列表 [‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’]

#方法一:分别获取每个元素,相加
a=[['a','b','c'],['d','e','f'],['g','h']]
b=a[0]
c=a[1]
d=a[2]
print(b+c+d)
#方法二:定义一个空列表,使用extend()添加
f=[]
f.extend(b)
f.extend(c)
f.extend(d)
print(f)

#方法三:和方法二一致
s1=[]
s=[['a','b','c'],['d','e','f'],['g','h']]
for item in s:
    s1.extend(item)
print(s1)

4、难度等级 II
熟悉 列表的 sort() 方法中的key 和 reverse 参数的使用,并做demo

list=[4,2,9,1,5]
#降序
list.sort(reverse=True)
print(list)
#默认升序
list.sort()
print(list)

5、难度等级 III
将一个英文语句以单词为单位逆序排放,如 “i am a boy” 逆序排放后 “boy a am i”

a='i am a boy'         #定义一个字符串
b=a.split()            #默认按照空格分割成list
b.reverse()          #反向存放
print(' '.join(b))     #再按照空格拼接转化成str

6、难度等级 III
假设今天的上课时间为5678秒,编程计算今天上课时间是多少时,多少分,多少秒,以“xx时xx分xx秒”的形式表示出来。

num=5678
h=5678//(60*60)
m=(5678%(60*60))//60
s=5678%60
print(f'{h}{m}{s}秒')

7、难度等级 I
有如下变量 x = " zhoU" 实现如下功能:
移除x 变量对应值的两边的空格
判断x变量对应的值是否以 ‘zh’ 开头
判断x变量对应的值是否以 ‘U’ 结尾
将x变量对应的值 中的 “o” 替换为x
将 x 变量对应的值根据 “h” 分割,并输出结果
输出 x 变量对应的值中 “U” 所在索引位置
输出 x 变量中索引为2 和 3 的字符

x = " zhoU"
#去除两边的空格
x=x.strip()
print(x)
#判断是否zh开头
print(x.startswith('zh'))
#判断是否U结尾
print(x.endswith('U'))
#0替换为x
print(x.replace('o','x'))
#根据h分割
print(x.split('h'))
#输出 x 变量对应的值中 “U” 所在索引位置
print(x.find("U"))
#输出 x 变量中索引为2 和 3 的字符
print(x[2],x[3])

8、难度等级 II
通过分片创一个与原列表实现反转的列表

a=[1,2,3,4,5,6]
print(a[5::-1])       #方式1
print(a[5:-7:-1])     #方式2
print(a[-1::-1])      #方式3
print(a[-1:-7:-1])    #方式4
print(a[::-1])        #方式5

9、难度等级 I
列表一次性追加多个值,用多种方法实现

#方法一:切片插入
a=[9,0,4,5]
a[4:4]=[9,9,9]
print(a)

#方法二:extend()
a.extend([6,6,6])
print(a)

#方法三:相加
b=[1,2]
print(a+b)

10、输入字符串,将字符串的开头和结尾变成’+',产生一个新的字符串

#方式一、字符串替换replace()函数
a="abcdefg"
a=a.replace('a','+')
a=a.replace('g','+')
print(a)
#方式二:切片 前6个元素加一个'+','+'再加后6个字符
a="abcdefg"
a=a[:6]+'+'
a='+'+a[1:]
print(a)

11.难度I 字典内容如下
dic = {
‘python’: 95,
‘java’: 99,
‘c’: 100
}
字典的长度是多少
请修改’java’ 这个key对应的value值为98
删除 c 这个key 增加一个key-value对,key值为 php, value是90
获取所有的key值,存储在列表里
获取所有的value值,存储在列表里
判断 javascript 是否在字典中
获得字典里所有value 的和
获取字典里最大的value
获取字典里最小的value
字典 dic1 = {‘php’: 97}, 将dic1的数据更新到dic中

dic = {
    'python': 95,
    'java': 99,
    'c': 100
}
#字典的长度
print(len(dic))

#修改Java对应的value为98
dic['java']=98

#删除c增加php  90
del dic['c']
dic['php'] = 90
print(dic)

# 获取所有的key值,存储在列表里
# l1 = list(dic.keys())
# print(l1)

# 获取所有的value值,存储在列表里
# l2 = list(dic.values())
# print(l2)

# 判断 javascript 是否在字典中
print('javascript' in dic)

# 获得字典里所有value 的和
sum1 = 0
for i in dic.values():
    sum1 += i
print(sum1)

# 获取字典里最大的value
print(max(dic.values()))

# 获取字典里最小的value
print(min(dic.values()))

# 字典 dic1 = {'php': 97}, 将dic1的数据更新到dic中
dic1 = {'php': 97}
dic.update(dic1)
print(dic)

12、猜数

  • 给定一个定值,比如说 99
  • 让用户输入数字,给用户三次机会,如果三次之内猜对了(输入的值等于99),显示猜测正确
  • 如果三次之内没有猜对,退出循环,显示’stupid’
    要求,用2种方式实现
#方式一:for遍历
nums=[1,2,3]
for num in nums:
    a=int(input("请输入数字:"))
    if a ==99:
        print("恭喜你猜对了!")
        break

else:
    print('stupid')
#方式二:while循环
i=0
a='stupid'
while i<3:
    i+=1
    b=int(input("请输入数字:"))
    if b==99:
        a='恭喜你,猜对了!'
        break
print(a)

13、输入某年某月某日,判断这一天是这一年的第几天? 这边简单考虑,不考虑 闰年的情况。

year=int(input("请输入年份:"))
month=int(input("请输入月份:"))
date=int(input("请输入日:"))
num=date
y=0
for m in range(1,month):
    if m in (4,6,9,11):
        y=30
    elif m in (1,3,5,7,8,10,12):
        y=31
    elif m==2:
        y=28
    num+=y
print("{}年{}月{}日是这一年的第{}天".format(year,month,date,num))

14.输出101~200之间的所有素数,就是只能被1和⾃⼰整除的数,判断素数的⽅法:⽤⼀个数分别去除2到这个数的平⽅根,如果能被整除,则表明此数
不是素数,反之是素数。

num=[]
for x in range(101,200):
    for y in range(2,x):
        if x%y==0:
            break
    else:
        num.append(x)
print(num)

15、难度等级1
输入成绩:
如果是 >90 分,则显示优秀
大于等于60 且 小于等于 90 则显示良好
小于 60 ,则显示不及格

a=int(input("请输入成绩:"))
if a>90:
    print("优秀")
elif 60<=a<=90:
    print("良好")
else:
    print("不及格")

16、难度等级3
输出 9*9 乘法口诀表

for m in range(1,10):
    for n in range(1,m+1):
        print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")
    print()

17、难度等级2
实现一个 函数 get_min, 函数返回列表lst 的最小值,要求不使用 min 函数

def get_min(lst):                 #定义函数
    lst_min=lst[1]                #定义lst_min接收最小值
    for i in lst:                 #遍历传入的列表
        if i<lst_min:             #列表的每一个元素进行比较,较小值赋值给lst_min
            lst_min=i
        else:
            continue
    print(lst_min)
get_min([10,3,4,7,8,2,4])

18、难度等级 2
实现一个函数,该函数参数为任意数量的数字,在函数中实现这样的功能:统计在参数中 出现的数字的个数
如 传入的参数为 func(3,5,3)
则打印
数字3 出现2次
数字 5 出现1次

for m in range(1,10):
    for n in range(1,m+1):
        print("{0}*{1}={2}".format(m,n,(m*n)),end="\t")
    print()

19、难度等级1
定义一个函数,实现传入整数的累乘的和,比如传入5 ,实现1+2!+3!+…+5!的和。

def num_test(i):
    num = 1
    sum=0
    for n in range(1,i+1):
        num =num*n
        sum +=num
    return sum

print(num_test(5))

20、难度等级2
定义一个银行账户类,Account
属性有:
用户姓名
账号
余额
对应的方法有:

  1. 存钱
  2. 取钱 (如果取出的金额>余额,提示错误信息)
# 定义一个账户类
class Account:
    def __init__(self, name, number,balance):
        self.name = name
        self.number = number
        self.balance = balance

    #存钱的方法
    def save_money(self,money):
        self.balance=self.balance+money
        print(f"{self.name}{self.number}账户存入{money}元")
        print(f"{self.name}{self.number}账户余额为{self.balance}元")

    #取钱的方法
    def withdraw_money(self,money):
        self.balance = self.balance - money
        if self.balance>0:
            print(f"{self.name}{self.number}账户取出{money}元,账户余额为{self.balance}元")
        else:
            print("取款失败,您的余额不足")
#实例化
A1 = Account('佳佳',"工商",0)
print(A1.name)
print(A1.number)
A1.save_money(200)
A1.withdraw_money(10)

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳佳不爱上班

送你一朵小红花,生活不必太焦虑

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值