2024京东最新Python面试真题解析,100 个 Python 小例子(练习题,小程序FMP优化实录

y = 160

top = y - 30

bottom = y - 30

canvas = Canvas(width = 400,height = 600,bg = ‘white’)

for i in range(20):

canvas.create_oval(250 - top,250 - bottom,250 + top,250 + bottom)

top -= 5

bottom += 5

canvas.pack()

mainloop()

实例64:画椭圆、矩形

**题目:**利用ellipse 和 rectangle 画图。。

**程序分析:**无。

if name == ‘main’:

from tkinter import *

canvas = Canvas(width = 400,height = 600,bg = ‘white’)

left = 20

right = 50

top = 50

num = 15

for i in range(num):

canvas.create_oval(250 - right,250 - left,250 + right,250 + left)

canvas.create_oval(250 - 20,250 - top,250 + 20,250 + top)

canvas.create_rectangle(20 - 2 * i,20 - 2 * i,10 * (i + 2),10 * ( i + 2))

right += 5

left += 5

top += 10

canvas.pack()

mainloop()

实例065:画组合图形

**题目:**一个最优美的图案。

**程序分析:**无。

import math

from tkinter import *

class PTS:

def init(self):

self.x = 0

self.y = 0

points = []

def LineToDemo():

screenx = 400

screeny = 400

canvas = Canvas(width = screenx,height = screeny,bg = ‘white’)

AspectRatio = 0.85

MAXPTS = 15

h = screeny

w = screenx

xcenter = w / 2

ycenter = h / 2

radius = (h - 30) / (AspectRatio * 2) - 20

step = 360 / MAXPTS

angle = 0.0

for i in range(MAXPTS):

rads = angle * math.pi / 180.0

p = PTS()

p.x = xcenter + int(math.cos(rads) * radius)

p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)

angle += step

points.append§

canvas.create_oval(xcenter - radius,ycenter - radius,

xcenter + radius,ycenter + radius)

for i in range(MAXPTS):

for j in range(i,MAXPTS):

canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)

canvas.pack()

mainloop()

if name == ‘main’:

LineToDemo()

实例066:三数排序

**题目:**输入3个数a,b,c,按大小顺序输出。

**程序分析:**同实例005。

raw=[]

for i in range(3):

x=int(input('int%d: '%(i)))

raw.append(x)

for i in range(len(raw)):

for j in range(i,len(raw)):

if raw[i]>raw[j]:

raw[i],raw[j]=raw[j],raw[i]

print(raw)

raw2=[]

for i in range(3):

x=int(input('int%d: '%(i)))

raw2.append(x)

print(sorted(raw2))

实例067:交换位置

**题目:**输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

**程序分析:**无。

li=[3,2,5,7,8,1,5]

li[-1],li[li.index(min(li))]=li[li.index(min(li))],li[-1]

m=li[0]

ind=li.index(max(li))

li[0]=li[ind]

li[ind]=m

print(li)

实例068:旋转数列

**题目:**有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

**程序分析:**无。

from collections import *

li=[1,2,3,4,5,6,7,8,9]

deq=deque(li,maxlen=len(li))

print(li)

deq.rotate(int(input(‘rotate:’)))

print(list(deq))

实例069:报数

**题目:**有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

**程序分析:**无。

if name == ‘main’:

nmax = 50

n = int(input(‘请输入总人数:’))

num = []

for i in range(n):

num.append(i + 1)

i = 0

k = 0

m = 0

while m < n - 1:

if num[i] != 0 : k += 1

if k == 3:

num[i] = 0

k = 0

m += 1

i += 1

if i == n : i = 0

i = 0

while num[i] == 0: i += 1

print(num[i])

实例070:字符串长度II

**题目:**写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

**程序分析:**无。

def lenofstr(s):

return len(s)

print(lenofstr(‘tanxiaofengsheng’))

实例071:输入和输出

**题目:**编写input()和output()函数输入,输出5个学生的数据记录。

**程序分析:**无。

N = 3

#stu

num : string

name : string

score[4]: list

student = []

for i in range(5):

student.append([‘’,‘’,[]])

def input_stu(stu):

for i in range(N):

stu[i][0] = input(‘input student num:\n’)

stu[i][1] = input(‘input student name:\n’)

for j in range(3):

stu[i][2].append(int(input(‘score:\n’)))

def output_stu(stu):

for i in range(N):

print (‘%-6s%-10s’ % ( stu[i][0],stu[i][1] ))

for j in range(3):

print (‘%-8d’ % stu[i][2][j])

if name == ‘main’:

input_stu(student)

print (student)

output_stu(student)

实例072:创建链表

**题目:**创建一个链表。

**程序分析:**原文不太靠谱。

class Node:

def init(self, data):

self.data = data

self.next = None

def get_data(self):

return self.data

class List:

def init(self, head):

self.head = head

def is_empty(self):

return self.get_len() == 0

def get_len(self):

length = 0

temp = self.head

while temp is not None:

length += 1

temp = temp.next

return length

def append(self, node):

temp = self.head

while temp.next is not None:

temp = temp.next

temp.next = node

def delete(self, index):

if index < 1 or index > self.get_len():

print(“给定位置不合理”)

return

if index == 1:

self.head = self.head.next

return

temp = self.head

cur_pos = 0

while temp is not None:

cur_pos += 1

if cur_pos == index-1:

temp.next = temp.next.next

temp = temp.next

def insert(self, pos, node):

if pos < 1 or pos > self.get_len():

print(“插入结点位置不合理”)

return

temp = self.head

cur_pos = 0

while temp is not Node:

cur_pos += 1

if cur_pos == pos-1:

node.next = temp.next

temp.next =node

break

temp = temp.next

def reverse(self, head):

if head is None and head.next is None:

return head

pre = head

cur = head.next

while cur is not None:

temp = cur.next

cur.next = pre

pre = cur

cur = temp

head.next = None

return pre

def print_list(self, head):

init_data = []

while head is not None:

init_data.append(head.get_data())

head = head.next

return init_data

if name==‘main’:

head=Node(‘head’)

link=List(head)

for i in range(10):

node=Node(i)

link.append(node)

print(link.print_list(head))

实例073:反向输出链表

**题目:**反向输出一个链表。

**程序分析:**无。

class Node:

def init(self, data):

self.data = data

self.next = None

def get_data(self):

return self.data

class List:

def init(self, head):

self.head = head

def is_empty(self):

return self.get_len() == 0

def get_len(self):

length = 0

temp = self.head

while temp is not None:

length += 1

temp = temp.next

return length

def append(self, node):

temp = self.head

while temp.next is not None:

temp = temp.next

temp.next = node

def delete(self, index):

if index < 1 or index > self.get_len():

print(“给定位置不合理”)

return

if index == 1:

self.head = self.head.next

return

temp = self.head

cur_pos = 0

while temp is not None:

cur_pos += 1

if cur_pos == index-1:

temp.next = temp.next.next

temp = temp.next

def insert(self, pos, node):

if pos < 1 or pos > self.get_len():

print(“插入结点位置不合理”)

return

temp = self.head

cur_pos = 0

while temp is not Node:

cur_pos += 1

if cur_pos == pos-1:

node.next = temp.next

temp.next =node

break

temp = temp.next

def reverse(self, head):

if head is None and head.next is None:

return head

pre = head

cur = head.next

while cur is not None:

temp = cur.next

cur.next = pre

pre = cur

cur = temp

head.next = None

return pre

def print_list(self, head):

init_data = []

while head is not None:

init_data.append(head.get_data())

head = head.next

return init_data

if name==‘main’:

head=Node(‘head’)

link=List(head)

for i in range(10):

node=Node(i)

link.append(node)

print(link.print_list(head))

print(link.print_list(link.reverse(head)))

实例074:列表排序、连接

**题目:**列表排序及连接。

**程序分析:**排序可使用 sort() 方法,连接可以使用 + 号或 extend() 方法。

a=[2,6,8]

b=[7,0,4]

a.extend(b)

a.sort()

print(a)

实例075:不知所云

**题目:**放松一下,算一道简单的题目。

**程序分析:**鬼知道是什么。

if name == ‘main’:

for i in range(5):

n = 0

if i != 1: n += 1

if i == 3: n += 1

if i == 4: n += 1

if i != 4: n += 1

if n == 3: print (64 + i)

实例076:做函数

**题目:**编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n

**程序分析:**无。

def peven(n):

i = 0

s = 0.0

for i in range(2,n + 1,2):

s += 1.0 / i

return s

def podd(n):

s = 0.0

for i in range(1, n + 1,2):

s += 1.0 / i

return s

def dcall(fp,n):

s = fp(n)

return s

if name == ‘main’:

n = int(input('input a number: '))

if n % 2 == 0:

sum = dcall(peven,n)

else:

sum = dcall(podd,n)

print (sum)

实例077:遍历列表

**题目:**循环输出列表

**程序分析:**无。

l=[‘moyu’,‘niupi’,‘xuecaibichi’,‘shengfaji’,‘42’]

for i in range(len(l)):

print(l[i])

实例078:字典

**题目:**找到年龄最大的人,并输出。请找出程序中有什么问题。

**程序分析:**无。

if name == ‘main’:

person = {“li”:18,“wang”:50,“zhang”:20,“sun”:22}

m = ‘li’

for key in person.keys():

if person[m] < person[key]:

m = key

print (‘%s,%d’ % (m,person[m]))

实例079:字符串排序

**题目:**字符串排序。

**程序分析:**无。

l=[‘baaa’,‘aaab’,‘aaba’,‘aaaa’,‘abaa’]

l.sort()

print(l)

实例080:猴子分桃

**题目:**海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

**程序分析:**无。

if name == ‘main’:

i = 0

j = 1

x = 0

while (i < 5) :

x = 4 * j

for i in range(0,5) :

if(x%4 != 0) :

break

else :

i += 1

x = (x/4) * 5 +1

j += 1

print(x)

for p in range(5):

x=(x-1)/5*4

print(x)

实例081:求未知数

**题目:**809_??=800_??+9_?? 其中??代表的两位数, 809_??为四位数,8_??的结果为两位数,9_??的结果为3位数。求??代表的两位数,及809*??后的结果。

**程序分析:**无。

a = 809

for i in range(10,100):

b = i * a

if b >= 1000 and b <= 10000 and 8 * i < 100 and 9 * i >= 100:

print(b,’ = 800 * ', i, ’ + 9 * ', i)

for i in range(10,100):

if 8i>99 or 9i<100:

continue

if 809i==800i+9*i:

print(i)

break

实例082:八进制转十进制

**题目:**八进制转换为十进制

**程序分析:**无。

n=eval(‘0o’+str(int(input(‘八进制输入:’))))

print(n)

实例083:制作奇数

**题目:**求0—7所能组成的奇数个数。

程序分析:

组成1位数是4个。1,3,5,7结尾

组成2位数是7*4个。第一位不能为0

组成3位数是7_8_4个。中间随意

组成4位数是7_8_8*4个。

if name == ‘main’:

sum = 4

s = 4

for j in range(2,9):

print (sum)

if j <= 2:

s *= 7

else:

s *= 8

sum += s

print(‘sum = %d’ % sum)

实例084:连接字符串

**题目:**连接字符串。

**程序分析:**无。

delimiter = ‘,’

mylist = [‘Brazil’, ‘Russia’, ‘India’, ‘China’]

print(delimiter.join(mylist))

实例085:整除

**题目:**输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。

**程序分析:**999999 / 13 = 76923。

if name == ‘main’:

zi = int(input(‘输入一个数字:’))

n1 = 1

c9 = 1

m9 = 9

sum = 9

while n1 != 0:

if sum % zi == 0:

n1 = 0

else:

m9 *= 10

sum += m9

c9 += 1

print (‘%d 个 9 可以被 %d 整除 : %d’ % (c9,zi,sum))

r = sum / zi

print (‘%d / %d = %d’ % (sum,zi,r))

实例086:连接字符串II

**题目:**两个字符串连接程序。

**程序分析:**无。

a=‘guangtou’

b=‘feipang’

print(b+a)

实例087:访问类成员

**题目:**回答结果(结构体变量传递)。

**程序分析:**无。

if name == ‘main’:

class student:

x = 0

c = 0

def f(stu):

stu.x = 20

stu.c = ‘c’

a= student()

a.x = 3

a.c = ‘a’

f(a)

print(a.x,a.c)

实例088:打印星号

**题目:**读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。

**程序分析:**无。

for i in range(3):

print(‘*’*int(input('input a number: ')))

实例089:解码

**题目:**某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

**程序分析:**无。

n=input()

n = str(n)

a=[]

for i in range(4):

a.append((int(n[i])+5)%10)

a[0],a[3]=a[3],a[0]

a[1],a[2]=a[2],a[1]

print (“”.join(‘%s’ %s for s in a))

实例090:列表详解

**题目:**列表使用实例。

**程序分析:**无。

#list

#新建列表

testList=[10086,‘中国移动’,[1,2,4,5]]

#访问列表长度

print (len(testList) )

#到列表结尾

print (testList[1:])

#向列表添加元素

testList.append(‘i’m new here!’)

print (len(testList) )

print (testList[-1] )

#弹出列表的最后一个元素

print (testList.pop(1) )

print (len(testList) )

print (testList )

#list comprehension

#后面有介绍,暂时掠过

matrix = [[1, 2, 3],

[4, 5, 6],

[7, 8, 9]]

print (matrix )

print (matrix[1] )

col2 = [row[1] for row in matrix]#get a column from a matrix

print (col2 )

col2even = [row[1] for row in matrix if row[1] % 2 == 0]#filter odd item

print (col2even)

实例091:time模块

**题目:**时间函数举例1。

**程序分析:**无。

if name == ‘main’:

import time

print (time.ctime(time.time()))

print (time.asctime(time.localtime(time.time())))

print (time.asctime(time.gmtime(time.time())))

实例092:time模块II

**题目:**时间函数举例2。

**程序分析:**如何浪费时间。

if name == ‘main’:

import time

start = time.time()

for i in range(3000):

print(i)

end = time.time()

print (end - start)

实例093:time模块III

**题目:**时间函数举例3。

**程序分析:**如何浪费时间。

if name == ‘main’:

import time

start = time.clock()

for i in range(100):

print(i)

end = time.clock()

print(‘different is %6.3f’ % (end - start))

实例094:time模块IV

**题目:**时间函数举例4。

**程序分析:**如何浪费时间。

if name == ‘main’:

import time

import random

play_it = input(‘do you want to play it.(‘y’ or ‘n’)’)

while play_it == ‘y’:

c = input(‘input a character:\n’)

i = random.randint(0,2**32) % 100

print (‘please input number you guess:\n’)

start = time.clock()

a = time.time()

guess = int(input(‘input your guess:\n’))

while guess != i:

if guess > i:

print(‘please input a little smaller’)

guess = int(input(‘input your guess:\n’))

else:

print(‘please input a little bigger’)

guess = int(input(‘input your guess:\n’))

end = time.clock()

b = time.time()

var = (end - start) / 18.2

print (var)

print ‘It took you %6.3 seconds’ % time.difftime(b,a))

if var < 15:

print (‘you are very clever!’)

elif var < 25:

print (‘you are normal!’)

else:

print (‘you are stupid!’)

print (‘Congradulations’)

print (‘The number you guess is %d’ % i)

play_it = input(‘do you want to play it.’)

实例095:转换时间格式

**题目:**字符串日期转换为易读的日期格式。

**程序分析:**看看就得了,dateutil是个第三方库。

from dateutil import parser

dt = parser.parse(“Aug 28 2015 12:00AM”)

print (dt)

实例096:计算复读次数

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

f0.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-qPf67GvG-1712397658305)]

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-HvCDV1Bp-1712397658306)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值