研发动态

2礼包-100个Python实操练习-豆瓣清风大神 [课程编码983]

[复制链接]
发表于 2020-9-22 09:32:02| 字数 8,336 | 显示全部楼层 |阅读模式
文章目录Python3 100 例实例 001:数字组合 实例     002:“个税计算” 实例 003:完全平方数 实例 004:这天第几天 实例 005:三数排序 实例 006:斐波那契数列 实例 007:copy实例 008:九九乘法表 实例 009:暂停一秒输出 实例 010:给人看的时间 实例 011:养兔子实例 012:100 到 200 的素数 实例 013:所有水仙花数 实例 014:分解质因数实例 015:分数归档 实例 016:输出日期 实例 017:字符串构成 实例 018:复读机相加 实例 019:完数实例 020:高空抛物 实例 021:猴子偷桃 实例 022:比赛对手 实例 023:画菱形实例 024:斐波那契数列 II实例 025: 阶乘求和 实例 026:递归求阶乘 实例 027:递归输出实例 028:递归求等差数列实例 029:反向输出实例 030:回文数 实例 031:字母识词 实例 032:反向输出 II实例 033:列表转字符串实例 034:调用函数 实例 035:设置输出颜色 实例 036:算素数实例 037:排序实例 038:矩阵对角线之和实例 039:有序列表插入元素

实例 040:逆序列表实例 041:类的方法与变量实例 042:变量作用域实例 043:作用域、类的方法与变量 实例 044:矩阵相加实例 045:求和 实例 046:打破循环实例 047:函数交换变量实例 048:数字比大小 实例 049:lambda实例 050:随机数 实例 051:按位与 实例 052:按位或 实例 053:按位异或实例 054:位取反、位移动实例 055:按位取反实例 056:画圈 实例 057:画线 实例 058:画矩形实例 059:画图(丑) 实例 060:字符串长度 实例 061:杨辉三角 实例 062:查找字符串 实例 063:画椭圆实例 064:画椭圆、矩形实例 065:画组合图形 实例 066:三数排序 实例 067:交换位置 实例 068:旋转数列 实例 069:报数实例 070:字符串长度 II 实例 071:输入和输出 实例 072:创建链表 实例 073:反向输出链表实例 074:列表排序、连接实例 075:不知所云实例 076:做函数 实例 077:遍历列表 实例 078:字典实例 079:字符串排序 实例 080:猴子分桃 实例 081:求未知数实例 082:八进制转十进制实例 083:制作奇数

实例 084:连接字符串 实例 085:整除实例 086:连接字符串 II 实例 087:访问类成员 实例 088:打印星号 实例 089:解码实例 090:列表详解 实例 091:time 模块 实例 092:time 模块 II 实例 093:time 模块 III 实例 094:time 模块 IV 实例 095:转换时间格式 实例 096:计算复读次数 实例 097:磁盘写入 实例 098:磁盘写入 II 实例099:磁盘读写 实例 100:列表转字典

实例 001:数字组合题目 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析 遍历全部可能,把有重复的剃掉。total=0for i in range(1,5):for j in range(1,5):for k in range(1,5):if ((i!=j)and(j!=k)and(k!=i)): print(i,j,k)total+=1print(total) 123456781234

5678简便方法 用 itertools 中的 permutations 即可。
import itertools sum2=0 a=[1,2,3,4]for i in itertools.permutations(a,3): print(i)sum2+=1 print(sum2)
1234567812345678实例 002:“个税计算”题目 企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;利润高 于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的部分,可提成7.5%;20 万到 40 万之间时,高于 20 万元的部分,可提成 5%;40 万到 60 万之间时高于 40 万元的部分,可提成 3%;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于 100 万元时,超过100 万元的部分按 1%提成,从键盘输入当月利润 I,求应发放奖金总数?
程序分析 分区间计算即可。
profit=int(input('Show me the money: ')) bonus=0thresholds=[100000,100000,200000,200000,400000] rates=[0.1,0.075,0.05,0.03,0.015,0.01]for i in range(len(thresholds)):

if profit<=thresholds: bonus+=profit*rates profit=0break<i><i>

else:
print(i)

1718192021实例 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 == one**3+ten**3+hun**3: print(i)12345671234567实例 014:分解质因数题目 将一个整数分解质因数。例如:输入 90,打印出 90=233*5。
程序分析 根本不需要判断是否是质数,从 2 开始向数本身遍历,能整除的肯定是最小的质 数。
target=int(input('输入一个整数:')) print(target,'= ',end='')
if target<0:target=abs(target) print('-1*',end='')


flag=0if target<=1:print(target) flag=1

while True:if flag:breakfor i in range(2,int(target+1)): iftarget%i==0:print("%d"%i,end='') if target==i:flag=1 breakprint('*',end='')target/=i break
123456789101112131415161718192021222324

25261234567891011121314151617181920212223242526实例 015:分数归档题目 利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示,60-89 分之 间的用 B 表示,60 分以下的用 C 表示。
程序分析 用条件判断即可。
points=int(input('输入分数:')) if points>=90:grade='A' elif points<60:grade='C'

else:
oth+=1

print('space: ',spa)print('digit: ',num)print('alpha:',alp)print('other:',oth)
1234567891011121314151617181912345

678910111213141516171819实例 018:复读机相加题目 求 s=a+aa+aaa+aaaa+aa…a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此 时共有 5 个数相加),几个数相加由键盘控制。
程序分析 用字符串解决。
a=input('被加数字:') n=int(input('加几次?:')) res=0for i in range(n): res+=int(a) a+=a[0]print('结果是:',res) 12345671234567实例 019:完数题目 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6=1+2+3.编程找出 1000 以内的所有完数。


程序分析 将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其 本身。
def factor(num): target=int(num) res=set()for i in range(1,num): ifnum%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)123456789101112123456789101112实例 020:高空抛物题目 一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10次落地时,共经过多少米?第 10 次反弹多高?

程序分析 无
high=200. total=100for i in range(10): high/=2 total+=high print(high/2)print('总长:',total) 12345671234567实例 021:猴子偷桃题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
程序分析 按规则反向推断:猴子有一个桃子,他偷来一个桃子,觉得不够又偷来了与手上 等量的桃子,一共偷了 9 天。
peach=1for i in range(9):peach=(peach+1)*2print(peach) 12341234实例 022:比赛对手

题目 两个乒乓球队进行比赛,各出三人。甲队为 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','y')) 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))1234567891012345678910实例 023:画菱形题目 打印出如下图案(菱形):
*********************

****
程序分析 递归调用即可。
def draw(num):a="*"*(2*(4-num)+1)print(a.center(9,' ')) if num!=1:draw(num-1) print(a.center(9,' '))draw(4) 12345671234567实例 024:斐波那契数列 II题目 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前 20 项之和。 程序分析 就是斐波那契数列的后一项除以前一项。a = 2.0b = 1.0s = 0for n inrange(1,21): s +=a /ba,b = a + b,a print(s)
12345

67812345678实例 025: 阶乘求和题目 求 1+2!+3!+…+20!的和。
程序分析 1+2!+3!+…+20!=1+2(1+3(1+4(…20(1))))
res=1for i in range(20,1,-1): res=i*res+1print(res) 12341234实例 026:递归求阶乘 题目 利用递归方法求 5!。
程序分析 递归调用即可。
def factorial(n):return n*factorial(n-1) if n>1 else 1 print(factorial(5))123123实例 027:递归输出题目 利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出来。


程序分析 递归真是蠢方法。
def rec(string):if len(string)!=1: rec(string[1:])print(string[0],end='')
rec(input('string here:')) 123456123456实例 028:递归求等差数列题目 有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后问第一个人,他说是 10 岁。请问第五个人多大? 程序分析 就一等差数列。def age(n):if n==1:return 10 return 2+age(n-1)print(age(5)) 1234512345实例 029:反向输出

题目 给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 程序分析 学会分解出每一位数,用字符串的方法总是比较省事。n=int(input('输入一个正整数:')) n=str(n)print('%d 位数'%len(n)) print(n[::-1])12341234实例 030:回文数题目 一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位与千 位相同。程序分析 用字符串比较方便,就算输入的不是数字都 ok。 n=input("随便你输入啥啦:")a=0b=len(n)-1 flag=True while a:print('不是回文串') flag=Falsebreak a,b=a+1,b-1if flag:print('是回文串')12345678910<strong>

1112123456789101112实例 031:字母识词题目 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断 第二个字母。
程序分析 这里用字典的形式直接将对照关系存好。
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 a==weekT ora==weekS:print(a[str(input('请输入第二位字母:')).lower()])

else:
print(i)

3456789实例 037:排序题目 对 10 个数进行排序。程序分析 同实例 005。 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)): ifraw>raw[j]:raw,raw[j]=raw[j],rawprint(raw)123456789101112345678910<i><i><i>

11实例 038:矩阵对角线之和题目 求一个 3*3 矩阵主对角线元素之和。 程序分析 无。mat=[[1,2,3],[3,4,5],[4,5,6]res=0for i in range(len(mat)): res+=matprint(res) 1234567812345678实例 039:有序列表插入元素题目 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。程序分析 首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此 元素之后的数,依次后移一个位置。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>=n:for j in range(i,len(lis)): lis[j],lis[-1]=lis[-1],lis[j]break<i><i><i>

print(lis) 123456789123456789实例 040:逆序列表题目 将一个数组逆序输出。
程序分析 依次交换位置,或者直接调用 reverse 方法。
lis=[1,10,100,1000,10000,100000]for i in range(int(len(lis)/2)):lis,lis[len(lis)-1-i]=lis[len(lis)-1-i],lis print('第一种实现:')print(lis)lis=[1,10,100,1000,10000,100000]print('第二种实现:') lis.reverse()print(lis)12345678<i><i>

9101112123456789101112实例 041:类的方法与变量题目 模仿静态变量的用法。
程序分析 构造类,了解类的方法与变量。
def dummy():i=0 print(i) i+=1
class cls:i=0def dummy(self): print(self.i) self.i+=1
a=cls()for i in range(50): dummy() a.dummy()12345678

9101112131415123456789101112131415实例 042:变量作用域题目 学习使用 auto 定义变量的用法。程序分析 python 中的变量作用域。i=0 n=0def dummy():i=0 print(i) i+=1def dummy2():global n print(n)n+=1print('函数内部的同名变量') for j in range(20):print(i) dummy() i+=1print('global 声明同名变量') for k inrange(20):

print(n) dummy2() n+=1012345678910111213141516171819201234567891011121314151617181920实例 043:作用域、类的方法与变量

题目 模仿静态变量(static)另一案例。程序分析 综合实例 041 和实例 042。 class dummy:num=1def Num(self):print('class dummy num:',self.num) print('global num: ',num) self.num+=1
n=dummy() num=1for i in range(5):num*=10 n.Num()123456789101112123456789101112实例 044:矩阵相加题目 计算两个矩阵相加。
程序分析 创建一个新的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后

放到新矩阵的对应位置中。
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[j]=X[j]+Y[j]print(res)1234567891011121314151612345678910<i><i><i>

111213141516实例 045:求和题目 统计 1 到100 之和。 程序分析 无res=0for i in range(1,101): res+=iprint(res) 12341234实例 046:打破循环题目 求输入数字的平方,如果平方运算后小于 50 则退出。 程序分析 无while True: try:n=float(input('输入一个数字:')) except:print('输入错误') continuedn=n**2 print('其平方为:',dn) if dn<50:print('平方小于 50,退出') break12345

678910111234567891011实例 047:函数交换变量题目 两个变量值用函数互换。 程序分析 无def exc(a,b):return (b,a)a=0 b=10a,b=exc(a,b) print(a,b)123456123456实例 048:数字比大小 题目 数字比较。
程序分析 无


a=int(input('a='))b=int(input('b='))if ab:print('a>b')

else:
1234567812345678
回复 申请删帖

使用道具 举报

  • 联系我们
  • 邮箱:837005074#qq.com(请把#改成@)
  • 电话:18810188033
  • QQ客服 837005074
  • 人工客服:周一至周日(晚6点至11点)
  • 扫描加客服QQ

  • 扫描加客服微信

QQ|关于我们|Archiver|手机版|小黑屋|畅建科技 ( 京ICP备2022013818号-3 )

GMT+8, 2024-5-3 14:51 , Processed in 0.421484 second(s), 53 queries .

Powered by 找最好 X3.4

© 2015至今 zhaozuihao.com