整理了100道关于Python3基础知识的练习题,记得收藏,2024年最新食堂大妈看完都学会了

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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



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

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

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
img

正文

for i in range(n):

res+=int(a)

a+=a[0]

print(‘结果是:’,res)

实例19.完数

题目: 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

程序分析: 将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其本身。

def factor(num):

target=int(num)

res=set()

for i in range(1,num):

if num%i==0:

res.add(i)

res.add(num/i)

return res

for i in range(2,1001):

if i==sum(factor(i))-i:

print(i)

实例20.高空抛物

题目: 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

程序分析:

high=200.

total=100

for i in range(10):

high/=2

total+=high

print(high/2)

print(‘总长:’,total)

实例21.猴子偷桃

题目: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

程序分析: 按规则反向推断:猴子有一个桃子,他偷来一个桃子,觉得不够又偷来了与手上等量的桃子,一共偷了9天。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

peach=1

for i in range(9):

peach=(peach+1)*2

print(peach)

实例22.比赛对手

题目: 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

程序分析: 找到条件下不重复的三个对手即可。

a=set([‘x’,‘y’,‘z’])

b=set([‘x’,‘y’,‘z’])

c=set([‘x’,‘y’,‘z’])

c-=set((‘x’,‘z’))

a-=set(‘x’)

for i in a:

for j in b:

for k in c:

if len(set((i,j,k)))==3:

print(‘a:%s,b:%s,c:%s’%(i,j,k))

实例23.画菱形

题目: 打印出如下图案(菱形):






程序分析: 递归调用即可。

def draw(num):

a=""(2*(4-num)+1)

print(a.center(9,’ '))

if num!=1:

draw(num-1)

print(a.center(9,’ '))

draw(4)

实例24.斐波那契数列II

题目: 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

程序分析: 就是斐波那契数列的后一项除以前一项。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

a = 2.0

b = 1.0

s = 0

for n in range(1,21):

s += a / b

a,b = a + b,a

print (s)

实例25. 阶乘求和

题目:1+2!+3!+...+20!的和。

程序分析: 1+2!+3!+...+20!=1+2(1+3(1+4(...20(1))))

res=1

for i in range(20,1,-1):

res=i*res+1

print(res)

实例26.递归求阶乘

题目: 利用递归方法求5!。

程序分析: 递归调用即可。

def factorial(n):

return n*factorial(n-1) if n>1 else 1

print(factorial(5))

实例27.递归输出

题目: 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

程序分析: 递归真是蠢方法。

def rec(string):

if len(string)!=1:

rec(string[1:])

print(string[0],end=‘’)

rec(input(‘string here:’))

实例28:递归求等差数列

题目: 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

程序分析: 就一等差数列。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

def age(n):

if n==1:

return 10

return 2+age(n-1)

print(age(5))

实例29.反向输出

题目: 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

程序分析: 学会分解出每一位数,用字符串的方法总是比较省事。

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

n=str(n)

print(‘%d位数’%len(n))

print(n[::-1])

实例30.回文数

题目: 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

程序分析: 用字符串比较方便,就算输入的不是数字都ok。

n=input(“随便你输入啥啦:”)

a=0

b=len(n)-1

flag=True

while a<b:

if n[a]!=n[b]:

print(‘不是回文串’)

flag=False

break

a,b=a+1,b-1

if flag:

print(‘是回文串’)

实例31.字母识词

题目: 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

程序分析: 这里用字典的形式直接将对照关系存好。

weekT={‘h’:‘thursday’,

‘u’:‘tuesday’}

weekS={‘a’:‘saturday’,

‘u’:‘sunday’}

week={‘t’:weekT,

‘s’:weekS,

‘m’:‘monday’,

‘w’:‘wensday’,

‘f’:‘friday’}

a=week[str(input(‘请输入第一位字母:’)).lower()]

if aweekT or aweekS:

print(a[str(input(‘请输入第二位字母:’)).lower()])

else:

print(a)

实例32.反向输出II

题目: 按相反的顺序输出列表的值。

程序分析: 无。

a = [‘one’, ‘two’, ‘three’]

print(a[::-1])

实例33.列表转字符串

题目: 按逗号分隔列表。

程序分析: 无。

L = [1,2,3,4,5]

print(‘,’.join(str(n) for n in L))

实例34.调用函数

题目: 练习函数调用。

程序分析: 无。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

def hello():

print(‘Hello World!’)

def helloAgain():

for i in range(2):

hello()

if name==‘main’:

helloAgain()

实例35.设置输出颜色

题目: 文本颜色设置。

程序分析: 无。

class bcolors:

HEADER = ‘\033[95m’

OKBLUE = ‘\033[94m’

OKGREEN = ‘\033[92m’

WARNING = ‘\033[93m’

FAIL = ‘\033[91m’

ENDC = ‘\033[0m’

BOLD = ‘\033[1m’

UNDERLINE = ‘\033[4m’

print(bcolors.WARNING + “警告的颜色字体?” + bcolors.ENDC)

实例36.算素数

题目: 求100之内的素数。

程序分析: 用else执行for循环的奖励代码(如果for是正常完结,非break)。

lo=int(input(‘下限:’))

hi=int(input(‘上限:’))

for i in range(lo,hi+1):

if i > 1:

for j in range(2,i):

if (i % j) == 0:

break

else:

print(i)

实例37.排序

题目: 对10个数进行排序。

程序分析: 同实例005。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

raw=[]

for i in range(10):

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)

实例38.矩阵对角线之和

题目: 求一个3*3矩阵主对角线元素之和。

程序分析: 无。

mat=[[1,2,3],

[3,4,5],

[4,5,6]

]

res=0

for i in range(len(mat)):

res+=mat[i][i]

print(res)

实例39.有序列表插入元素

题目: 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

程序分析: 首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

lis=[1,10,100,1000,10000,100000]

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

lis.append(n)

for i in range(len(lis)-1):

if lis[i]>=n:

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

lis[j],lis[-1]=lis[-1],lis[j]

break

print(lis)

实例40.逆序列表

题目: 将一个数组逆序输出。

程序分析: 依次交换位置,或者直接调用reverse方法。

lis=[1,10,100,1000,10000,100000]

for i in range(int(len(lis)/2)):

lis[i],lis[len(lis)-1-i]=lis[len(lis)-1-i],lis[i]

print(‘第一种实现:’)

print(lis)

lis=[1,10,100,1000,10000,100000]

print(‘第二种实现:’)

lis.reverse()

print(lis)

实例41.类的方法与变量

题目: 模仿静态变量的用法。

程序分析: 构造类,了解类的方法与变量。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

def dummy():

i=0

print(i)

i+=1

class cls:

i=0

def dummy(self):

print(self.i)

self.i+=1

a=cls()

for i in range(50):

dummy()

a.dummy()

实例42.变量作用域

题目: 学习使用auto定义变量的用法。

程序分析: python中的变量作用域。

i=0

n=0

def dummy():

i=0

print(i)

i+=1

def dummy2():

global n

print(n)

n+=1

print(‘函数内部的同名变量’)

for j in range(20):

print(i)

dummy()

i+=1

print(‘global声明同名变量’)

for k in range(20):

print(n)

dummy2()

n+=10

实例43.作用域、类的方法与变量

题目: 模仿静态变量(static)另一案例。

程序分析: 综合实例041和实例042。

class dummy:

num=1

def Num(self):

print(‘class dummy num:’,self.num)

print('global num: ',num)

self.num+=1

n=dummy()

num=1

for i in range(5):

num*=10

n.Num()

实例44.矩阵相加

题目: 计算两个矩阵相加。

程序分析: 创建一个新的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

X = [[12,7,3],

[4 ,5,6],

[7 ,8,9]]

Y = [[5,8,1],

[6,7,3],

[4,5,9]]

res=[[0,0,0],

[0,0,0],

[0,0,0]]

for i in range(len(res)):

for j in range(len(res[0])):

res[i][j]=X[i][j]+Y[i][j]

print(res)

实例45.求和

题目: 统计 1 到 100 之和。

程序分析:

res=0

for i in range(1,101):

res+=i

print(res)

实例46.打破循环

题目: 求输入数字的平方,如果平方运算后小于 50 则退出。

程序分析:

while True:

try:

n=float(input(‘输入一个数字:’))

except:

print(‘输入错误’)

continue

dn=n**2

print(‘其平方为:’,dn)

if dn<50:

print(‘平方小于50,退出’)

break

实例47.函数交换变量

题目: 两个变量值用函数互换。

程序分析:

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

def exc(a,b):

return (b,a)

a=0

b=10

a,b=exc(a,b)

print(a,b)

实例48.数字比大小

题目: 数字比较。

程序分析:

a=int(input(‘a=’))

b=int(input(‘b=’))

if a<b:

print(‘a<b’)

elif a>b:

print(‘a>b’)

else:

print(‘a=b’)

实例49.lambda

题目: 使用lambda来创建匿名函数。

程序分析:

Max=lambda x,y:x*(x>=y)+y*(y>x)

Min=lambda x,y:x*(x<=y)+y*(y<x)

a=int(input(‘1:’))

b=int(input(‘2:’))

print(Max(a,b))

print(Min(a,b))

实例50.随机数

题目: 输出一个随机数。

程序分析: 使用 random 模块。

import random

print(random.uniform(10,20))

实例51.按位与

题目: 学习使用按位与 & 。

程序分析: 0&0=0; 0&1=0; 1&0=0; 1&1=1

a=0o77

print(a)

b=a&3

print(b)

b=b&7

print(b)

实例52.按位或

**题目:**学习使用按位或 | 。

程序分析: 0|0=0; 0|1=1; 1|0=1; 1|1=1

a=0o77

print(a|3)

print(a|3|7)

实例53.按位异或

题目: 学习使用按位异或^

程序分析: 0^0=0; 0^1=1; 1^0=1; 1^1=0

a=0o77

print(a^3)

print(a37)

实例54.位取反、位移动

题目: 取一个整数a从右端开始的4〜7位。

程序分析: 可以这样考虑: (1)先使a右移4位。 (2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) (3)将上面二者进行&运算。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

a=int(input('输入一个数字: '))

b=0 # 0

b=~b # 1

b=b<<4 # 10000

b=~b # 1111

c=a>>4

d=c&b

print(‘a:’,bin(a))

print(‘b:’,bin(b))

print(‘c:’,bin©)

print(‘d:’,bin(d))

实例55.按位取反

题目: 学习使用按位取反~。

程序分析: ~0=1; ~1=0;

print(~234)

print(~~234)

实例56.画圈

题目: 画图,学用circle画圆形。

程序分析: 无。

from tkinter import *

canvas=Canvas(width=800,height=600,bg=‘yellow’)

canvas.pack(expand=YES,fill=BOTH)

k=1

j=1

for i in range(26):

canvas.create_oval(310-k,250-k,310+k,250+k,width=1)

k+=j

j+=0.3

mainloop()

实例57.画线

题目: 画图,学用line画直线。

程序分析: 无。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

if name == ‘main’:

from tkinter import *

canvas = Canvas(width=300, height=300, bg=‘green’)

canvas.pack(expand=YES, fill=BOTH)

x0 = 263

y0 = 263

y1 = 275

x1 = 275

for i in range(19):

canvas.create_line(x0,y0,x0,y1, width=1, fill=‘red’)

x0 = x0 - 5

y0 = y0 - 5

x1 = x1 + 5

y1 = y1 + 5

x0 = 263

y1 = 275

y0 = 263

for i in range(21):

canvas.create_line(x0,y0,x0,y1,fill = ‘red’)

x0 += 5

y0 += 5

y1 += 5

mainloop()

实例58.画矩形

题目: 画图,学用rectangle画方形。

程序分析: 无。

if name == ‘main’:

from tkinter import *

root = Tk()

root.title(‘Canvas’)

canvas = Canvas(root,width = 400,height = 400,bg = ‘yellow’)

x0 = 263

y0 = 263

y1 = 275

x1 = 275

for i in range(19):

canvas.create_rectangle(x0,y0,x1,y1)

x0 -= 5

y0 -= 5

x1 += 5

y1 += 5

canvas.pack()

root.mainloop()

实例59.画图(丑)

题目: 画图,综合例子。

程序分析: 丑。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

if name == ‘main’:

from tkinter import *

canvas = Canvas(width = 300,height = 300,bg = ‘green’)

canvas.pack(expand = YES,fill = BOTH)

x0 = 150

y0 = 100

canvas.create_oval(x0 - 10,y0 - 10,x0 + 10,y0 + 10)

canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20)

canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50)

import math

B = 0.809

for i in range(16):

a = 2 * math.pi / 16 * i

x = math.ceil(x0 + 48 * math.cos(a))

y = math.ceil(y0 + 48 * math.sin(a) * B)

canvas.create_line(x0,y0,x,y,fill = ‘red’)

canvas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60)

for k in range(501):

for i in range(17):

a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k

x = math.ceil(x0 + 48 * math.cos(a))

y = math.ceil(y0 + 48 + math.sin(a) * B)

canvas.create_line(x0,y0,x,y,fill = ‘red’)

for j in range(51):

a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1

x = math.ceil(x0 + 48 * math.cos(a))

y = math.ceil(y0 + 48 * math.sin(a) * B)

canvas.create_line(x0,y0,x,y,fill = ‘red’)

mainloop()

实例60.字符串长度

题目: 计算字符串长度。

程序分析: 无。

s=‘zhangguang101’

print(len(s))

实例61.杨辉三角

题目: 打印出杨辉三角形前十行。

程序分析: 无。

def generate(numRows):

r = [[1]]

for i in range(1,numRows):

r.append(list(map(lambda x,y:x+y, [0]+r[-1],r[-1]+[0])))

return r[:numRows]

a=generate(10)

for i in a:

print(i)

实例62.查找字符串

**题目:**查找字符串。

**程序分析:**无。

s1=‘aabbxuebixuebi’

s2=‘ab’

s3=‘xue’

print(s1.find(s2))

print(s1.find(s3))

实例63.画椭圆

题目: 画椭圆。

程序分析: 使用 tkinter。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

if name == ‘main’:

from tkinter import *

x = 360

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()

实例65.画组合图形

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

程序分析: 无。

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()

实例66.三数排序

题目: 输入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))

实例67.交换位置

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

程序分析: 无。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

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)

实例68.旋转数列

题目: 有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))

实例69.报数

题目: 有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])

实例70.字符串长度II

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

程序分析: 无。

def lenofstr(s):

return len(s)

print(lenofstr(‘tanxiaofengsheng’))

实例71.输入和输出

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

程序分析: 无。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

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)

实例72.创建链表

题目: 创建一个链表。

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

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))

实例73.反向输出链表

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

程序分析: 无。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

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)))

实例74.列表排序、连接

题目: 列表排序及连接。

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

a=[2,6,8]

b=[7,0,4]

a.extend(b)

a.sort()

print(a)

实例75.不知所云

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

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

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)

实例76.做函数

题目: 编写一个函数,输入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)

实例77.遍历列表

题目: 循环输出列表

程序分析: 无。

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

for i in range(len(l)):

print(l[i])

实例78.字典

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

程序分析: 无。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

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

实例79.字符串排序

题目: 字符串排序。

程序分析: 无。

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

l.sort()

print(l)

实例80.猴子分桃

文末有福利领取哦~

👉一、Python所有方向的学习路线

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

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

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

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
目:** 编写一个函数,输入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)

实例77.遍历列表

题目: 循环输出列表

程序分析: 无。

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

for i in range(len(l)):

print(l[i])

实例78.字典

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

程序分析: 无。

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’

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

实例79.字符串排序

题目: 字符串排序。

程序分析: 无。

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

l.sort()

print(l)

实例80.猴子分桃

文末有福利领取哦~

👉一、Python所有方向的学习路线

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

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

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

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-oePoBle9-1713253857987)]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值