python3案例100题_第1页
python3案例100题_第2页
python3案例100题_第3页
python3案例100题_第4页
python3案例100题_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、v1.0可编辑可修改实例001 :数字组合题目有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数各是 多少程序分析遍历全部可能,把有重复的剃掉。tota1=0for i i n range (1,5):for j i n range (1,5):for k i n range (1,5):if (i !=j)and (j !=k)and(k! = i):pr int (i, j, k)totaI+=1pr i nt (totaI)简便方法 用i tertool s中的permutat ions即可。import itertoolssum2=0a二1,2, 3, 4for i

2、in (a, 3):print(i)sum2+=1pr int (sum2)实例002: “个税计算”题目企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元, 低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成%;20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成%,高于100万元时,超过100万元的部分按1%提成,从键 盘输入当月利润I ,求应发放奖金总数程序分析分区间计算即可。profit二int(input(Show

3、 me the money:)bonus二0v1.0可编辑可修改threshoIds= 100000,100000,200000, 200000, 400000 rates二,for i i n range (Ien(threshoI ds):i f prof i t二threshoI dsi:bonus+=prof i t*ratesiprofit二0breakelse:bonus+二thresholdsi*ratesiprof i t-二threshoI dsibonus+=prof i t*rates1pr i nt (bonus)实例003:完全平方数题目一个整数,它加上100后是一个

4、完全平方数,再加上168又是一个完全平方数,请问该数是多少程序分析因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限:n=0while (n+1) *2-n*n=168:n+=1 print (n+1)思路是:最坏的结果是n的平方与(n+1)的平方刚好差168,由于是平方的关系,不可能存在比这更大的v1.0可编辑可修改间隙。至于判断是否是完全平方数,最简单的方法是:平方根的值小数为 0即可。结合起来:n=0while (n+1)*2n*nrawj:raw i , rawj=rawj, raw i pr i nt (raw) raw2=for i i n r

5、ange (3):x=int(input( int%d: *%(i)(x)pri nt (sorted (raw2)实例006:斐波那契数列题目斐波那契数列。程序分析 斐波那契数列(Fibonacci sequence ),从1,1开始,后面每一项等于前面两项之和。图方便 就递归实现,图性能就用循环。#递归实现def Fib(n):return 1 if n1 e I se 1pr i nt (factor i a I (5)实例 027:递归输出题目利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。程序分析递归真是蠢方法。def rec (str i ng):if len(str

6、 ing) !=1:rec (str ing1 :)pr i nt (str i ng0,end二)rec (i nput (str i ng here:*)实例028:递归求等差数列题目有5个人坐在一起,问第五个人多少岁他说比第 4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个 人,15v1.0可编辑可修改他说是10岁。请问第五个人多大 程序分析 就一等差数列。def age (n):if n=1:return 10return 2+age (n-1)print (age (5)实例029:反向输出题目给一个不多

7、于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。程序分析学会分解出每一位数,用字符串的方法总是比较省事。n= int (input (输入一个正整数:)n二str (n)print(%d 位数 *%len(n)print (n::-1)实例030:回文数题目一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。程序分析用字符串比较方便,就算输入的不是数字都ok。finpUt(随便你输入啥啦:)a 二0b=len (n)-1fIag二Truewhile a 1:for j i n range(2, i): if (i % j)二二 0: break

8、else:print(i)实例037:排序题目对10个数进行排序。程序分析 同实例005o raw二for i i n range (10):x=int(input( int%d: *%(i)(x) for i in range (Ien(raw):for j in range (i, len(raw):if rawirawj : rawi, rawj=rawj, rawi pr int (raw)实例038:矩阵对角线之和题目求一个3*3矩阵主对角线元素之和。程序分析无。mat=1,2, 3,3,4, 5,4, 5, 6 19v1.0可编辑可修改res 二 0for i in range(l

9、en(mat):res+二matiipr i nt (res)实例039:有序列表插入元素题目有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。程序分析首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的 数,依次后移一个位置。I is=1, 10, 100, 1000, 10000, 100000n=i nt (input (insert a number:)(n)for i in range (Ien(lis)T):i f Ii s i=n:for j in range (i, len (Ii s):lisj, lisT二lisT, lisj

10、breakprint (I is)实例040:逆序列表题目将一个数组逆序输出。程序分析 依次交换位置,或者直接调用reverse方法。I is=1, 10, 100, 1000, 10000, 100000for i in range(int (Ien (I is)/2):lisi, lislen(lis)-1-i = lislen(lis)-1-i, lisiprintC第一种实现:*)pr int (I is)20v1.0可编辑可修改I is=1, 10, 100, 1000, 10000, 100000 pr int (第二种实现:)0pr int (I is)实例04仁类的方法与变量题

11、目模仿静态变量的用法。程序分析构造类,了解类的方法与变量。def dummy ():i 二0print(i)i+=1cI ass cis:21v1.0可编辑可修改def dummy (self): pr i nt+=1a=c I s ()for i i n range (50):dummy ()0实例042:变量作用域题目学习使用auto定义变量的用法。程序分析python中的变量作用域。i二0n=0def dummy ():i 二0print(i)i+=1def dummy2 ():globaI npr i nt (n)n+=1pr int (函数内部的同名变量)for j in range

12、 (20):print(i)dummy () pr int (f globa I 声明同名变量 1) for k i n range (20):i+=122v1.0可编辑可修改pr i nt (n)dummy2 ()n+=10实例043:作用域、类的方法与变量cI ass dummy:题目模仿静态变量(static)另一案例。程序分析综合实例041和实例042。num=1def Num (self):pr i nt (cI ass dummy num:,pr i nt (1globaI num: ,num)+=1n=dummy ()num=1for i i n range (5):num*=1

13、00实例044:矩阵相加 题目计算两个矩阵相加。相加后放到新矩阵程序分析创建一个新的矩阵,使用for迭代并取出X和Y矩阵中对应位置的值, 的对应位置中。X = 12, 7, 3,4 ,5,6, 23v1.0可编辑可修改7 ,8,9Y 二5,8,1,6, 7, 3,4,5,9 res二0,0,0,0, 0, 0,0, 0, 0for i i n range (len(res):for j in range(Ien(res0) : resi j二Xi j+Yi j pr i nt (res)实例045:求和题目统计1到100之和。程序分析无res二0for i in ranged, 101):re

14、s+=ipr i nt (res)1234实例046:打破循环题目求输入数字的平方,如果平方运算后小于50则退出。程序分析无while True:try:n=f loat (input (输入一个数字:)except:pr int (输入错误)24v1.0可编辑可修改cont i nuedn=n*2printC其平方为:*,dn)if dn50:pr int (平方小于50,退出)break实例047:函数交换变量题目两个变量值用函数互换。程序分析无def exc (a, b):return (b,a)aOb=10a, b=exc (a, b)pr i nt (a, b)实例048:数字比大小

15、题目数字比较。程序分析无a二int(input (a=)b=int (input(b=,) if ab:pr i nt (ab) else:print(a=b)25v1.0可编辑可修改实例 049 : I ambda题目使用lambda来创建匿名函数。程序分析无Max二I ambda x, y: x* (x二y) +y* (yx)Mi n=lambda x,y:x*(x=y)+y* (yrawj:raw i , rawj=rawj, raw i pr i nt (raw) raw2=for i in range (3):x=int(input( int%d: *%(i)(x)pr i nt (

16、sorted (raw2)实例067:交换位置题目输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。程序分析无。1匸3,2,5,7, 8,1,5I i -1, I i (m i n(I i) = I i (m i n(I i), I i -1 m= I i 0ind= (max (Ii)I i 0二I i indI i ind二m print(l i)实例068:旋转数列题目有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数36v1.0可编辑可修改程序分析无。from collections import *I i 二1,2, 3, 4, 5, 6,

17、7, 8,刃 deq=deque (I i,max Ien二Ien (Ii) print (I i)(int (input (rotate:)pr i nt (Ii st (deq)实例069:报数题目有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。程序分析无。i fname=ma i nnmax = 50n二int (input (请输入总人数:) num 二for i in range (n):(i +1) if numi != 0 : k += 1 if k 二二 3:k = 037v1.0可编辑可修改if i 二二w

18、hile numi =0: i += 1 pr int(numi)实例070:字符串长度II程序分析无。题目写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 def Ienofstr (s):return Ien (s) pr i nt (Ienofstr (f tanx i aofengsheng1)123 4实例07仁输入和输出题目编写input ()和output 0函数输入,输5个学生的数据记录。 出程序分析无。N = 3#stu# num : str i ng# name : str i ng# score4: I i st student 二for i i

19、n range (5):)def i nput_stu(stu):for i i n range (N):stui0二 input ( i nput student num:n)stui 1 二 input (1 i npu t st ude nt name:、n) for j i n range (3):38v1.0可编辑可修改stu i 2.append (i nt (i nput (1 score:n1)def output_stu(stu):for i i n range (N):print (%-6s%-10s % ( stui 0, stui 1)for j i n range (

20、3):print (%8d % stui 2 j)i f _name_ = _ma i n i nput_stu(student) pr i nt (student) output_stu(student)实例072:创建链表 题目创建一个链表。 程序分析原文不太靠谱。 cI ass Node:def _in it_(self, data):二 data二 Nonedef get_data (seIf):return cI ass List:def _in it_(self, head):二 headdef i s_empty (seIf):ret urn ()二二 0 def get_len (seIf):I ength = 039v1.0可编辑可修改t emp = while temp i s not None:length +二 1 t emp =return I engthdef append (self, node): t emp =while i s not None:t emp 二二 nodedef delete(self, index):i f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论