大厂面试题库,100 个 Python 小例子(练习题(1),知识点总结+面试题解析

本文提供了100个Python编程实例,涵盖时间格式化、数学问题、算法分析、数据结构等多个方面,旨在帮助读者准备大厂面试。通过实例010展示了如何暂停并格式化输出当前时间,实例011解释了兔子繁殖问题的解决方案,实例012至014涉及素数和水仙花数的计算,实例015至024探讨了递归、字符串操作和数据处理,实例025至037涵盖了数学计算和排序算法,实例038至044展示了矩阵操作和列表管理,实例045至057涵盖变量作用域、匿名函数和图形绘制,最后的实例058至059介绍了随机数和位运算。这些实例详细解释了代码逻辑,是学习和复习Python编程的宝贵资源。
摘要由CSDN通过智能技术生成

实例010:给人看的时间

**题目:**暂停一秒输出,并格式化当前时间。

**程序分析:**同009.

import time

for i in range(4):

print(time.strftime(‘%Y-%m-%d %H:%M:%S’,time.localtime(time.time())))

time.sleep(1)

实例011:养兔子

**题目:**有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

**程序分析:**我认为原文的解法有点扯,没有考虑3个月成熟的问题,人家还是婴儿怎么生孩子?考虑到三个月成熟,可以构建四个数据,其中:一月兔每个月长大成为二月兔,二月兔变三月兔,三月兔变成年兔,成年兔(包括新成熟的三月兔)生等量的一月兔。

month=int(input('繁殖几个月?: '))

month_1=1

month_2=0

month_3=0

month_elder=0

for i in range(month):

month_1,month_2,month_3,month_elder=month_elder+month_3,month_1,month_2,month_elder+month_3

print(‘第%d个月共’%(i+1),month_1+month_2+month_3+month_elder,‘对兔子’)

print(‘其中1月兔:’,month_1)

print(‘其中2月兔:’,month_2)

print(‘其中3月兔:’,month_3)

print(‘其中成年兔:’,month_elder)

实例012:100到200的素数

**题目:**判断101-200之间有多少个素数,并输出所有素数。

**程序分析:**判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

import math

for i in range(100,200):

flag=0

for j in range(2,round(math.sqrt(i))+1):

if i%j==0:

flag=1

break

if flag:

continue

print(i)

print(‘\nSimplify the code with “else”\n’)

for i in range(100,200):

for j in range(2,round(math.sqrt(i))+1):

if i%j==0:

break

else:

print(i)

实例013:所有水仙花数

**题目:**打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

**程序分析:**利用for循环控制100-999个数,每个数分解出个位,十位,百位。

for i in range(100,1000):

s=str(i)

one=int(s[-1])

ten=int(s[-2])

hun=int(s[-3])

if i == one3+ten3+hun**3:

print(i)

实例014:分解质因数

**题目:**将一个整数分解质因数。例如:输入90,打印出90=2_3_3*5。

**程序分析:**根本不需要判断是否是质数,从2开始向数本身遍历,能整除的肯定是最小的质数。

target=int(input(‘输入一个整数:’))

print(target,‘= ‘,end=’’)

if target<0:

target=abs(target)

print(‘-1*’,end=‘’)

flag=0

if target<=1:

print(target)

flag=1

while True:

if flag:

break

for i in range(2,int(target+1)):

if target%i==0:

print(“%d”%i,end=‘’)

if target==i:

flag=1

break

print(‘*’,end=‘’)

target/=i

break

实例015:分数归档

**题目:**利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

**程序分析:**用条件判断即可。

points=int(input(‘输入分数:’))

if points>=90:

grade=‘A’

elif points<60:

grade=‘C’

else:

grade=‘B’

print(grade)

实例016:输出日期

**题目:**输出指定格式的日期。

**程序分析:**使用 datetime 模块。

import datetime

print(datetime.date.today())

print(datetime.date(2333,2,3))

print(datetime.date.today().strftime(‘%d/%m/%Y’))

day=datetime.date(1111,2,3)

day=day.replace(year=day.year+22)

print(day)

实例017:字符串构成

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

**程序分析:**利用 while 或 for 语句,条件为输入的字符不为 ‘\n’。

string=input(“输入字符串:”)

alp=0

num=0

spa=0

oth=0

for i in range(len(string)):

if string[i].isspace():

spa+=1

elif string[i].isdigit():

num+=1

elif string[i].isalpha():

alp+=1

else:

oth+=1

print('space: ',spa)

print('digit: ',num)

print('alpha: ',alp)

print('other: ',oth)

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值