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']

python 复制代码
a='1,2,3'
print(a.split(','))

2、难度等级 I

1:计算整型50乘以10再除以5的商并使用print输出。

2:判断整型8是否大于10的结果并使用print输出。

3:计算整型30除以2得到的余数并使用print输出

4:使用字符串乘法实现 把字符串"我爱我的祖国"创建三遍并拼接起来最终使用print输出。

python 复制代码
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']

python 复制代码
#方法一:分别获取每个元素,相加
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

python 复制代码
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"

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

6、难度等级 III

假设今天的上课时间为5678秒,编程计算今天上课时间是多少时,多少分,多少秒,以"xx时xx分xx秒"的形式表示出来。

python 复制代码
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 的字符

python 复制代码
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

通过分片创一个与原列表实现反转的列表

python 复制代码
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

列表一次性追加多个值,用多种方法实现

python 复制代码
#方法一:切片插入
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、输入字符串,将字符串的开头和结尾变成'+',产生一个新的字符串

python 复制代码
#方式一、字符串替换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中

python 复制代码
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种方式实现
python 复制代码
#方式一: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、输入某年某月某日,判断这一天是这一年的第几天? 这边简单考虑,不考虑 闰年的情况。

python 复制代码
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到这个数的平⽅根,如果能被整除,则表明此数

不是素数,反之是素数。

python 复制代码
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 ,则显示不及格

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

16、难度等级3

输出 9*9 乘法口诀表

python 复制代码
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 函数

python 复制代码
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次

python 复制代码
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!的和。

python 复制代码
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. 取钱 (如果取出的金额>余额,提示错误信息)
python 复制代码
# 定义一个账户类
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)

相关推荐
豆本-豆豆奶10 分钟前
最全面的Python重点知识汇总,建议收藏!
开发语言·数据库·python·oracle
Bosenya1213 分钟前
【信号处理】绘制IQ信号时域图、星座图、功率谱
开发语言·python·信号处理
AI原吾31 分钟前
探索PyAV:Python中的多媒体处理利器
开发语言·python·ai·pyav
oliveira-time41 分钟前
爬虫学习8
开发语言·javascript·爬虫·python·算法
正义的彬彬侠1 小时前
XGBoost算法Python代码实现
python·决策树·机器学习·numpy·集成学习·boosting·xgboost
昨天今天明天好多天1 小时前
【Python】解析 XML
xml·python
侯喵喵1 小时前
从零开始 blender插件开发
python·blender
嚣张农民2 小时前
在 WebSocket 连接中出现错误时,如何处理和捕获错误?
前端·javascript·面试
SmallBambooCode2 小时前
【人工智能】阿里云PAI平台DSW实例一键安装Python脚本
linux·人工智能·python·阿里云·debian·脚本·模型训练
工业互联网专业2 小时前
Python毕业设计选题:基于django+vue的荣誉证书管理系统
python·django·vue·毕业设计·源码·课程设计