Python100精彩学习总结分析学习提高题.doc

上传人:一*** 文档编号:809445 上传时间:2019-07-16 格式:DOC 页数:43 大小:41.65KB
返回 下载 相关 举报
Python100精彩学习总结分析学习提高题.doc_第1页
第1页 / 共43页
Python100精彩学习总结分析学习提高题.doc_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《Python100精彩学习总结分析学习提高题.doc》由会员分享,可在线阅读,更多相关《Python100精彩学习总结分析学习提高题.doc(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、#!/usr/bin/env python #coding: utf-8【程序 1】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: for i in range(1,5):for j in range(1,5):for k in range(1,5):if( i != k ) and (i != j) and (j != k):print i,j,k 【程序 2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元

2、时,奖金可提 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,求应发放奖 金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: bonus1 = 100000 * 0.1 bonus

3、2 = bonus1 + 100000 * 0.500075 bonus4 = bonus2 + 200000 * 0.5 bonus6 = bonus4 + 200000 * 0.3 bonus10 = bonus6 + 400000 * 0.15i = int(raw_input(input gain:n) if i 2):sum += 1 print it is the %dth day. % sum【程序 5】 题目:输入三个整数 x,y,z,请把这三个数由小到大输出。 1.程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 xy 则将 x 与 y 的值进行交

4、换,然后再用 x 与 z 进行比较,如果 xz 则将 x 与 z 的值进行交换,这样能使 x 最 小。 2.程序源代码: l = for i in range(3):x = int(raw_input(integer:n)l.append(x) l.sort() print l 【程序 6】 题目:用*号输出字母 C 的图案。 1.程序分析:可先用*号在纸上写出字母 C,再分行输出。 2.程序源代码: print Hello Python world!n print * * 10 for i in range(5):print * * print * * 10 print *n * 6【程序

5、7】 题目:输出特殊图案,请在 c 环境中运行,看一看,Very Beautiful! 1.程序分析:字符共有 256 个。不同字符,图形不一样。 2.程序源代码: a = 176 b = 219 print chr(b),chr(a),chr(a),chr(a),chr(b) print chr(a),chr(b),chr(a),chr(b),chr(a) print chr(a),chr(a),chr(b),chr(a),chr(a) print chr(a),chr(b),chr(a),chr(b),chr(a) print chr(b),chr(a),chr(a),chr(a),chr

6、(b)【程序 8】 题目:输出 9*9 口诀。 1.程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。 2.程序源代码: #include “stdio.h“ main() int i,j,result;printf(“n“);for (i=1;ik,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数你 n,重复执行第一步。 (3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。2.程序源代码: from sys import stdout n = int(raw_input(“input number:n“) p

7、rint “n = %d“ % nfor i in range(2,n + 1):while n != i:if n % i = 0:stdout.write(str(i)stdout.write(“*“)n = n / ielse:break print “%d“ % n 【程序 15】 题目:利用条件运算符的嵌套来完成此题:学习成绩=90 分的同学用 A 表示,60-89 分之 间的用 B 表示,60 分以下的用 C 表示。 1.程序分析:(ab)?a:b 这是条件运算符的基本例子。 2.程序源代码: 不支持这个运算符 score = int(raw_input(input score:n

8、) if score = 90:grade = A elif score = 60:grade = B else:grade = Cprint %d belongs to %s % (score,grade) 【程序 17】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用 while 语句,条件为输入的字符不为n.2.程序源代码: import string s = raw_input(input a string:n) letters = 0 space = 0 digit = 0 others = 0 for c in s:if c.isalp

9、ha():letters += 1elif c.isspace():space += 1elif c.isdigit():digit += 1else:others += 1 print char = %d,space = %d,digit = %d,others = %d % (letters,space,digit,others) 题目:求 s=a+aa+aaa+aaaa+aa.a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此 时共有 5 个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 2.程序源代码: Tn = 0 Sn = n

10、 = int(raw_input(n = :n) a = int(raw_input(a = :n) for count in range(n):Tn = Tn + aa = a * 10Sn.append(Tn)print TnSn = reduce(lambda x,y : x + y,Sn) print Sn 【程序 19】 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如 6=123.编程找出 1000 以内的所有完数。 1. 程序分析:请参照程序 void main(void) int color; for (color = 1; color lj:min = jl

11、i,lmin = lmin,liprint after sortedfor i in range(N):print li【程序 38】 题目:求一个 3*3 矩阵对角线元素之和 1.程序分析:利用双重 for 循环控制输入二维数组,再将 aii累加后输出。 2.程序源代码: if _name_ = _main_:a = sum = 0.0for i in range(3):a.append()for j in range(3):ai.append(float(raw_input(“input num:n“)for i in range(3):sum += aiiprint sum【程序 39】

12、 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入 后此元素之后的数,依次后移一个位置。 2.程序源代码: if _name_ = _main_:# 方法一a = 1,4,6,9,13,16,19,28,40,100,0print original list is:for i in range(len(a):print ainumber = int(raw_input(“insert a new number:n“)end = a9if number end:a10 = number

13、else:for i in range(10):if ai number:temp1 = aiai = numberfor j in range(i + 1,11):temp2 = ajaj = temp1temp1 = temp2breakfor i in range(11):print ai# 方法二# insrt another numbernumber = int(raw_input(input a number:n)if number alen(a) - 1:a.append(number)else:for i in range(len(a):if ai number:a.inser

14、t(i,number)print a【程序 40】 题目:将一个数组逆序输出。 1.程序分析:用第一个与最后一个交换。 2.程序源代码: if _name_ = _main_:a = 9,6,5,4,1N = len(a) print afor i in range(len(a) / 2):ai,aN - i - 1 = aN - i - 1,aiprint a 【程序 41】 题目:学习 static 定义静态变量的用法 1.程序分析: 2.程序源代码: # python 没有这个功能了,只能这样了:) def varfunc():var = 0print var = %d % varvar

15、 += 1 if _name_ = _main_:for i in range(3):varfunc()# attribut of class# 作为类的一个属性吧 class Static:StaticVar = 5def varfunc(self):self.StaticVar += 1print self.StaticVarprint Static.StaticVar a = Static() for i in range(3):a.varfunc() 题目:学习使用 auto 定义变量的用法 1.程序分析: 2.程序源代码: 没有 auto 关键字,使用变量作用域来举例吧 num =

16、2 def autofunc():num = 1print internal block num = %d % numnum += 1 for i in range(3):print The num = %d % numnum += 1autofunc()【程序 43】 题目:学习使用 static 的另一用法。 1.程序分析: 2.程序源代码: 有一个 static 变量的用法,python 是没有,演示一个 python 作用域使用方法 class Num:nNum = 1def inc(self):self.nNum += 1print nNum = %d % self.nNumif _

17、name_ = _main_:nNum = 2inst = Num()for i in range(3):nNum += 1print The num = %d % nNuminst.inc() 【程序 44】 题目:学习使用 external 的用法。 1.程序分析: 2.程序源代码: external.py 代码: import external if _name_ = _main_:print external.add(10,20) 【程序 45】 题目:学习使用 register 定义变量的方法。 1.程序分析: 2.程序源代码: 没有 register 关键字,用整型变量代替 tmp

18、 = 0 for i in range(1,101):tmp += i print The sum is %d % tmp 【程序 46】 题目:宏#define 命令练习(1) 1.程序分析: 2.程序源代码: 没有 C 语言的宏,就这么写了 TRUE = 1 FALSE = 0 def SQ(x):return x * x print Program will stop if input value less than 50. again = 1 while again:num = int(raw_input(Please input number)print The square for

19、 this number is %d % (SQ(num)if num = 50:again = TRUEelse:again = FALSE 题目:宏#define 命令练习(2) 1.程序分析: 2.程序源代码: #include “stdio.h“#define exchange(a,b) /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上 “*/int t;t=a;a=b;b=t;这个宏定义 python 不支持 def exchange(a,b):a,b = b,areturn (a,b)if _name_ = _main_:x = 10y = 20print x = %d

20、,y = %d % (x,y)x,y = exchange(x,y)print x = %d,y = %d % (x,y) 【程序 48】 题目:宏#define 命令练习(3) 1.程序分析: 2.程序源代码: #define LAG #define SMA j:print %d larger than %d % (i,j)elif i = j:print %d equal to %d % (i,j)elif i y)?x:y #define MINIMUM(x,y) (xy)?y:x void main() int a=10,b=20; #ifdef MAX printf(“40: The

21、 larger one is %dn“,MAXIMUM(a,b); #else printf(“40: The lower one is %dn“,MINIMUM(a,b); #endif #ifndef MIN printf(“40: The lower one is %dn“,MINIMUM(a,b); #else printf(“40: The larger one is %dn“,MAXIMUM(a,b); #endif #undef MAX #ifdef MAX printf(“40: The larger one is %dn“,MAXIMUM(a,b); #else printf

22、(“40: The lower one is %dn“,MINIMUM(a,b); #endif #define MIN #ifndef MIN printf(“40: The lower one is %dn“,MINIMUM(a,b); #else printf(“40: The larger one is %dn“,MAXIMUM(a,b); #endif 这个还是预处理的用法,python 不支持这样的机制,演示 lambda 的使用。 MAXIMUM = lambda x,y : (x y) * x + (x y) * y + (x 4c = (0 =RIGHT) dx1=-dx1;

23、if(y1=BOTTOM) dy1=-dy1; if(x2=RIGHT) dx2=-dx2; if(y2=BOTTOM) dy2=-dy2; if(+countLINES) setcolor(color); color=(color=MAXCOLOR)?0:+color; closegraph(); 【程序 61】 题目:打印出杨辉三角形(要求打印出 10 行如下图) 1.程序分析: if _name_ = _main_:a = for i in range(10):a.append()for j in range(10):ai.append(0)for i in range(10):ai0

24、= 1aii = 1for i in range(2,10):for j in range(1,i):aij = ai - 1j-1 + ai - 1jfrom sys import stdoutfor i in range(10):for j in range(i + 1):stdout.write(aij)stdout.write( )print【程序 62】 题目:学习 putpixel 画点。 1.程序分析: 2.程序源代码: #include “stdio.h“ #include “graphics.h“ main() int i,j,driver=VGA,mode=VGAHI; i

25、nitgraph( setbkcolor(YELLOW); for(i=50;i n2 : n1,n2 = swap(n1,n2)if n1 n3 : n1,n3 = swap(n1,n3)if n2 n3 : n2,n3 = swap(n2,n3)print n1,n2,n3 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 1.程序分析:谭浩强的书中答案有问题。 2.程序源代码: def inp(numbers):for i in range(9):numbers.append(int(raw_input(input a number:n)numbers.app

26、end(int(raw_input(input a number:n) p = 0def max_min(array):max = min = 0for i in range(1,len(array) - 1):p = iif arrayp arraymax : max = pelif arrayp 0:move(array,n,m)number = for i in range(n):number.append(int(raw_input(input a number:n)print orignal number:,numbermove(number,n,m)print after move

27、d:,number 【程序 69】 题目:有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数) ,凡报到 3 的 人退出圈子,问最后留下的是原来第几号的那位。 1. 程序分析: 2.程序源代码: if _name_ = _main_:nmax = 50n = int(raw_input(please input the total of numbers:)num = for i in range(n):num.append(i + 1)i = 0k = 0m = 0while m i:print please input a little smallerguess = i

28、nt(raw_input(input your guess:n)else:print please input a little biggerguess = int(raw_input(input your guess:n)end = time.clock()b = time.time()var = (end - start) / 18.2print 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 norma

29、l!else:print you are stupid!print Congradulationsprint The number you guess is %d % iplay_it = raw_input(do you want to play it.)【程序 96】 题目:计算字符串中子串出现的次数 1.程序分析: 2.程序源代码: if _name_ = _main_:str1 = raw_input(input a string:n)str2 = raw_input(input a sub string:n)ncount = str1.count(str2)print ncount

30、【程序 97】 题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。 1.程序分析: 2.程序源代码: if _name_ = _main_:from sys import stdoutfilename = raw_input(input a file name:n)fp = open(filename,“w“)ch = raw_input(input string:n)while ch != #:fp.write(ch)stdout.write(ch)ch = raw_input()fp.close()【程序 98】 题目:从键盘输入一个字符串,将小写字母全部转换成大写字母

31、,然后输出到一个磁盘文 件“test”中保存。输入的字符串以!结束。 1.程序分析: 2.程序源代码: if _name_ = _main_:fp = open(test.txt,w)string = raw_input(please input a string:n)string = string.upper()fp.write(string)fp = open(test.txt,r)print fp.read()fp.close() 程序 99】 题目:有两个磁盘文件 A 和 B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序 排列), 输出到一个新文件 C 中. 1.程序分析: 2.程序源代码: if _name_ = _main_:import stringfp = open(JCP099.py)a = fp.read()fp.close()fp = open(JCP098.py)b = fp.read()fp.close()fp = open(C.txt,w)l = list(a + b)l.sort()s = s = s.join(l)fp.write(s)fp.close()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com