Python练习实例1 题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足 条件的排列。 程序源代码: 实例(Python2.0+) #!/usr/bin/python #-*coding:UTE-8-*- 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 !=k) print i,i,k 以上实例输出结果为: 123 12 132 139 142 143 213 2 23 234 241 243 314 321 324 34 413 421 423 431
Python 练习实例 1 题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉不满足 条件的排列。 程序源代码: 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- 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 以上实例输出结果为: 1 2 3 1 2 4 1 3 2 1 3 4 1 4 2 1 4 3 2 1 3 2 1 4 2 3 1 2 3 4 2 4 1 2 4 3 3 1 2 3 1 4 3 2 1 3 2 4 3 4 1 3 4 2 4 1 2 4 1 3 4 2 1 4 2 3 4 3 1
432 Python练习实例2 )pon100位 题目:企业发放的奖金根据利润提成。利润)低于或等于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%提成,从键盘输入当月利润1,求应发放奖金总数? 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 程序源代码: 实例(Python2.0+) #!/usx/bin/python #-*coding:UTF-8-+- i=int(任aw_input('净利润:') axr-[1000000,600000,400000,200000,100000,0] rat-[0.01,0.015,0.03,0.05,0.075,0.11 x=0 for idy in range(0,6): if ixarr[idx]: rt-(i-arr[idx])*rat[idx] print (i-arr[idx])*rat[idx] i-arr[idx] print r 以上实例输出结果为: 净利润:120000 1500.0 10000.0 11500.0 Python练习实例3 月Phon100
4 3 2 Python 练习实例 2 Python 100 例 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数? 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 程序源代码: 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- i = int(raw_input('净利润:')) arr = [1000000,600000,400000,200000,100000,0] rat = [0.01,0.015,0.03,0.05,0.075,0.1] r = 0 for idx in range(0,6): if i>arr[idx]: r+=(i-arr[idx])*rat[idx] print (i-arr[idx])*rat[idx] i=arr[idx] print r 以上实例输出结果为: 净利润:120000 1500.0 10000.0 11500.0 Python 练习实例 3 Python 100 例
题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少? 程序分析:在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的 结果满足如下条件,即是结果。请看具体分析: 程序源代码: 实例(Python2.0+) #!/usr/bin/python -coding:UTF-8-*- import math for i in range(10000): 转化为整型值 x int (math.sqrt (i+100)) y=int(math.sqrt(+268) if (xx =-i 100)and (yy==i+268) print i 以上实例输出结果为: 21 261 1581 Python练习实例4 方pon100 题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天, 特殊情况,闰年且输入月份大于2时需考虑多加一天: 程序源代码: 实例(Python2.0+) !/usr/bin/python #-*-coding:UTE-8-*- year int (raw input ('year:\n')) month =int (raw_input ('month:\n')) day int(raw input ('day:\n')) months=(0,31,59,90,120,151,181,212,243,273,304,334) if 0<month <-12: sum -months [month-1]
题目:一个整数,它加上 100 和加上 268 后都是一个完全平方数,请问该数是多少? 程序分析:在 10000 以内判断,将该数加上 100 后再开方,加上 268 后再开方,如果开方后的 结果满足如下条件,即是结果。请看具体分析: 程序源代码: 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- import math for i in range(10000): #转化为整型值 x = int(math.sqrt(i + 100)) y = int(math.sqrt(i + 268)) if(x * x == i + 100) and (y * y == i + 268): print i 以上实例输出结果为: 21 261 1581 Python 练习实例 4 Python 100 例 题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天, 特殊情况,闰年且输入月份大于 2 时需考虑多加一天: 程序源代码: 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- year = int(raw_input('year:\n')) month = int(raw_input('month:\n')) day = int(raw_input('day:\n')) months = (0,31,59,90,120,151,181,212,243,273,304,334) if 0 < month <= 12: sum = months[month - 1]
else: print 'data error' sum +-day leap-0 if (year 400--0)or ((year 4--0)and (year1001-0)) leap =1 if (leap ==1)and (month 2): sum +-1 print 'it is the &dth day.'sum 以上实例输出结果为: year: 2015 6 day: it is the 158th day Python练习实例5 争2血n10o位 题目:输入三个整数xy,z,请把这三个数由小到大输出。 程序分桥:我们想办法把最小的数放到×上,先将×与y进行比较,如果xy则将×与y的值 进行交换,然后再用×与z进行比较,如果x>z则将×与z的值进行交换,这样能使×最小。 程序源代码: #!/usr/bin/python -*-coding:UTF-8-*- 1=[1 for i in range(3): x-int(raw_input ('integer:\n')) 1.append(x) 1.sort print 1 以上实例输出结果为: integer: 8 integer:
else: print 'data error' sum += day leap = 0 if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)): leap = 1 if (leap == 1) and (month > 2): sum += 1 print 'it is the %dth day.' % sum 以上实例输出结果为: year: 2015 month: 6 day: 7 it is the 158th day. Python 练习实例 5 Python 100 例 题目:输入三个整数 x,y,z,请把这三个数由小到大输出。 程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的值 进行交换,然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值进行交换,这样能使 x 最小。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- l = [] for i in range(3): x = int(raw_input('integer:\n')) l.append(x) l.sort() print l 以上实例输出结果为: integer: 8 integer:
5 integer 15,6,8] Python练习实例6 方Phon10nL 题目:斐波那契数列。 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分制数列,指的是这样一个数列: 0、1、1、2、3、5、8、13、21、34、… 在数学上,费波那契数列是以递归的方法来定义: F0”0(a-01 E1=11n=1) m=E[n-11+F[n-2](m=>2 程序源代码: 方法一 !/us:/bin/python -*-coding:UTF-8-*- def fib(n): a,b=1,1 for i in range(n-1): a,b=b,a+b return a #输出了第10个斐波那契数列 print fib(10) 方法二 #!/usr/bin/python #-*-coding:UTF-8-+- 使用递归
5 integer: 6 [5, 6, 8] Python 练习实例 6 Python 100 例 题目:斐波那契数列。 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列: 0、1、1、2、3、5、8、13、21、34、……。 在数学上,费波那契数列是以递归的方法来定义: F0 = 0 (n=0) F1 = 1 (n=1) Fn = F[n-1]+ F[n-2](n=>2) 程序源代码: 方法一 #!/usr/bin/python # -*- coding: UTF-8 -*- def fib(n): a,b = 1,1 for i in range(n-1): a,b = b,a+b return a # 输出了第 10 个斐波那契数列 print fib(10) 方法二 #!/usr/bin/python # -*- coding: UTF-8 -*- # 使用递归
def fib(n): if n==1 or n==2: return 1 return fib(n-1)+fib(n-2) 输出了第10个斐波那契数列 print fib(10) 以上实例输出了第10个斐波那契数列,结果为: 方法三 如果你需要输出指定个数的斐波那契数列,可以使用以下代码 !/usr/bin/python -+-coding:UTF-8-+- def fib(n): if n 1: return (1] if n-2: return [1,1] f1b8=【1,11 for i in range(2,n): :输出前10个斐波事契数列 print fib(10) 以上程序运行输出结果为: [1,1,2,3,5,8,13,21,34,551 Python练习实例7 方Pon100位 题目:将一个列表的数据复制到另一个列表中。 程序分析:使用列表
def fib(n): if n==1 or n==2: return 1 return fib(n-1)+fib(n-2) # 输出了第 10 个斐波那契数列 print fib(10) 以上实例输出了第 10 个斐波那契数列,结果为: 55 方法三 如果你需要输出指定个数的斐波那契数列,可以使用以下代码: #!/usr/bin/python # -*- coding: UTF-8 -*- def fib(n): if n == 1: return [1] if n == 2: return [1, 1] fibs = [1, 1] for i in range(2, n): fibs.append(fibs[-1] + fibs[-2]) return fibs # 输出前 10 个斐波那契数列 print fib(10) 以上程序运行输出结果为: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] Python 练习实例 7 Python 100 例 题目:将一个列表的数据复制到另一个列表中。 程序分析:使用列表[:]
程序源代码 !/usr/bin/python -*-coding:UTF-8-+- a=[1,2,3] b-a[:] print b 以上实例输出结果为: 1,2,31 Python练习实例8 方Pon10位 题目:输出99乘法口诀表。 程序分桥:分行与列考虑,共9行9列,1控制行,j控制列。 程序源代码: 9*9乘法口诀 #!/usr/bin/python #-*coding:UTF-8-*-for i in range(1,10):print for j in range (1,i+1):print "d*d-d"&(i,j,j), 以上实例输出结果为: 11=1 2*1=22*2=4 3*1-33*2-63+3-9 4+1=44+2=84+3=124*4=16 5★1=55★2=105★3=155*4=205★5-25 6+1=66+2126+3-186+4-246+5-306+6-36 7*1=77*2=147*3=2174=287*5=357*6=4277=49 8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64 9*1-99*2-189+3=279*4-369+5=459*6=549+7-639+8-729+9=81 Python练习实例9 方pon10☒ 题目:暂停一秒输出
程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- a = [1, 2, 3] b = a[:] print b 以上实例输出结果为: [1, 2, 3] Python 练习实例 8 Python 100 例 题目:输出 9*9 乘法口诀表。 程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。 程序源代码: 9*9 乘法口诀 #!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1, 10): print for j in range(1, i+1): print "%d*%d=%d" % (i, j, i*j), 以上实例输出结果为: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 Python 练习实例 9 Python 100 例 题目:暂停一秒输出
程序分析:无。 程序源代码: #!/usr/bin/python #-+-coding:UTF-8-+- import time myD=11:"a',2:1b"1 for key,value in dict.items (myD): print key,value tine,sleep(1)#暂停1秒 以上实例输出结果为(会有停顿效果): Python练习实例10 方Phon100@ 题目:暂停一秒输出,并格式化当前时间。 程序分析:无。 程序源代码: !/usr/bin/python coding:UTF-8-._ import time print time.strftime('Y-m-d:M:s',time.localtime(time.time()) 暂停一秒 time.sleep(1) print time.strftime('BY-8m-8d 8H:8M:8S',time.localtime(time.time ()) 以上实例输出结果为: 2015-10-2117:48:40 2015-10-2117:48:41
程序分析:无。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import time myD = {1: 'a', 2: 'b'} for key, value in dict.items(myD): print key, value time.sleep(1) # 暂停 1 秒 以上实例输出结果为(会有停顿效果): 1 a 2 b Python 练习实例 10 Python 100 例 题目:暂停一秒输出,并格式化当前时间。 程序分析:无。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import time print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) # 暂停一秒 time.sleep(1) print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 以上实例输出结果为: 2015-10-21 17:48:40 2015-10-21 17:48:41
Python练习实例11 1Phon100例 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个 月后每个月又生一对免子,假如兔子都不死,问每个月的兔子总数为多少 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21 程序源代码: 实例(Python2.0+) #!/usr/bin/python #--coding:UTF-8-*-f1-1 f2 -1 for i in range (1,22)print '8121d $121d'(f1,f2),if 3)--0:print.f1-f 1+f2f2=f1+f2 以上实例输出结果为: 1 3 8 34 55 89 233 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 35245785702887 9227465 14930352 2415781739088169 63245986102334155 16558014126791429 Python练习实例12 争phon100倒 题目:判断101-200之间有多少个素数,并输出所有素数 程序分析:判断素数的方法:用一个数分别去除2到sq(这个数),如果能被整除,则表明此数 不是素数,反之是素数。 程序源代码: !/usr/bin/python -+-coding:U7F-8-*- h=0 leap =1 from math import aqrt
Python 练习实例 11 Python 100 例 题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个 月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析:兔子的规律为数列 1,1,2,3,5,8,13,21.... 程序源代码: 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- f1 = 1 f2 = 1 for i in range (1,22): print '%12ld %12ld' % (f1,f2), if (i % 3) == 0: print '' f1 = f 1 + f2 f2 = f1 + f2 以上实例输出结果为: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 Python 练习实例 12 Python 100 例 题目:判断 101-200 之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整除,则表明此数 不是素数,反之是素数。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- h = 0 leap = 1 from math import sqrt
from sys import stdout for m in range(101,201) k int (sqrt (m+1)) for i in range(2,k+1): 1fm81==0: leap =0 if leap -1 print '8-4d'8 m h+1 1fhg10=0: print leap print 'The total is ad'&h 以上实例输出结果为: 101 103 107 109 131 137 139 149 151 157 163 167 119 181 191 197 199 The total is 21 Python练习实例13
from sys import stdout for m in range(101,201): k = int(sqrt(m + 1)) for i in range(2,k + 1): if m % i == 0: leap = 0 break if leap == 1: print '%-4d' % m h += 1 if h % 10 == 0: print '' leap = 1 print 'The total is %d' % h 以上实例输出结果为: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 The total is 21 Python 练习实例 13