如果你已经把基础看完,可以尝试一下看看以下例子了,如果不会做也不要紧,你要尝试手动把所有的代码都敲一边。别嫌麻烦,因为都是从麻烦到简单的。
实例1:
题目:有1、2、3、4个数字,能组成多少个相互不同且无重复的三位数?都是多少?
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 ''' for i in range(1,5): for j in range(1,5): for k in range(1,5): if (i != j) and (i != k) and (k != j): print i, j, k 实例1输出结果:
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 4 3 2 View Code实例2:
题目:企业发放的奖金根据利润提成。利润(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%提成,从键盘输入当月利润,求应发放奖金总数?
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:0-10万提成10-20万提成7.5 -40万提成5@-60万提成3`-100万提成1.50万以上1%思路:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 ''' ''' 注:如果列表的顺序相反,计算结果不一样 ''' i = int(raw_input( ' input: ')) m = [1000000,600000,400000,200000,100000,0] t = [0.01,0.015,0.03,0.05,0.075,0.1] r = 0 for s in range(0,6): # 循环列表元素数 if i>m[s]: # 判断输入的元素 r+=(i-m[s])*t[s] print (i-m[s])*t[s] i=m[s] print r View Code输出结果:
输入您的利润:300000 5000.0 7500.0 10000.0 22500.0 View Code实例3:
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该书是多少?
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:判断一个数加100是一个数的完全平方数,加168是另一个数的完全平方数。思路:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: ''' import math for i in range(10000): x = int(math.sqrt(i + 100)) y = int(math.sqrt(i + 168)) if (x * x == i + 100) and (y * y == i + 168): print i View Code输出结果:
156 View Code实例4:
题目:输入某年某年某月某日,判断这一天是这一年的第几天?
!/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:判断输入的日期是本年的第几天思路:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 情况,闰年且输入月份大于3时需考虑多加一天: ''' 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 (year % 100 != 0)): # 判断是平年还是润年 leap = 1 if (leap == 1) and (month > 2): sum += 1 print ' it is the %dth day. ' % sum View Code输出结果:
year: 2015 month: 12 day: 13 it is the 347th day. View Code实例5:
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:输入三个整数,有小到大进行排序思路:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 ''' m = [] for i in range(0,3): n = int(raw_input( ' input: ')) m.append(n) m.sort() # 从小到大排序 # m.sort(reverse = True)#从大到小排序 print m View Code输出结果:
input:3 input:7 input:1 [1, 3, 7] View Code实例6:
题目:斐波那契数列。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:斐波那契数列:0、1、1、2、3、5、8、13、21、34、……。输出第100个斐波数思路:根据数列规律可以得出下一个数值都是前两个数值的和 ''' ''' 方法一: ''' def fib(n): a,b = 1,1 for i in range(n-1): a,b = b,a+b return a # 返回第100个斐波那契数列 print fib(100) ''' 方法二: ''' def fib(n): if n == 1 or n == 2: return 1 return fib(n-1)+fib(n-2) print fib(100) # 如果输出的结果太大的话会消耗cpu建议小点 ''' 方法三: ''' 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(100) View Code输出结果:
354224848179261915075 View Code实例7:
题目:将一个列表的数据复制到另一个列表中。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 将一个列表的数据复制到另一个列表里 ''' a = [1,2,3,4,5,6,7,8,9,0] b = a[:] print b View Code输出结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] View Code实例8:
题目:输出9*9乘法口诀表。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:99乘法口诀表思路:分行与列考虑,共9行9列,i控制行,j控制列。 ''' for i in range(1,10): for j in range(1,10): result = i * j print ' %d * %d = % - 3d '% (i,j,result) # 循环的两个数相乘 print '' # 两个循环的间隔 View Code输出结果:
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 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 View Code实例9:
题目:暂停一秒输出。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 暂停以秒输入 ''' import time myD = {1: ' a ', 2: ' b ', 3: ' c ', 4: ' d ', 5: ' e ', 6: ' f ', 7: ' g '} for key,value in dict.items(myD): print key,value time.sleep(1) # 暂停一秒 View Code输出结果:
1 a 2 b 3 c 4 d 5 e 6 f 7 g View Code实例10:
题目:暂停一秒输入。
# !/usr/bin/env 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())) View Code输出结果:
2016-01-10 23:43:17 2016-01-10 23:43:18 View Code实例11:
题目:古典问题,有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:一对兔子,从出生后第三个月起每个月都会生出一对兔子,小兔子长到三个月又生一对小兔子。假如兔子不死,问每个月兔子总数。思路:兔子的规律为数列1,1,2,3,5,8,13,21.... ''' f1 = 1 f2 =2 for i in range(1,21): print ' d d ' % (f1,f2) if (i % 2) == 0: print '' f1 = f1 + f2 f2 = f1 + f2 View Code输出结果:
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 View Code实例12:
题目:判断101-200之间有多少个素数,并输出所有素数。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:判断101-200之间的所有素数,并输出思路:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 ''' h = 0 leap = 1 from math import sqrt from sys import stdout for m in range(0,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 View Code输出结果:
0 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 The total is 48 View Code实例13:
题目:打印出所有的“水印花数”,所谓“水印花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水印花数”,因为153=1的三次方+5的三次方+3的三次方。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:打印所有“水印数”,例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方思路:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ''' for n in range(100,1000): i = n / 100 # 百位数 j = n / 10 % 10 # 十位数 k = n % 10 # 个位数 if n == i ** 3 + j ** 3 + k ** 3: print n View Code输出结果:
153 370 371 407 View Code实例14:
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5.
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。思路:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 ''' from sys import stdout n = int(raw_input( " input number: ")) print " n = %d " % n for i in range(2,n + 1): while n != i: if n % i == 0: stdout.write(str(i)) stdout.write( " * ") n = n / i else: break print " %d " % n View Code输出结果:
input number:100 n = 100 2*2*5*5 View Code实例15:
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-80分之间的用B表示,60分以下的用C表示。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:利用条件运算符的嵌套来完成成绩表。思路:(a>b)?a:b这是条件运算符的基本例子。 ''' score = int(raw_input( ' input score: ')) if score >= 90: grade = ' A ' elif score >= 80: grade = ' D ' elif score >= 70: grade = ' C ' elif score >= 60: grade = ' D ' else: grade = ' E ' print ' %d belongs to %s ' % (score,grade) View Code输出结果:
input score:26 26 belongs to E View Code实例16:
题目:输出指定格式的日期。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 输入指定格式的日期 ''' import datetime if __name__ == ' __main__ ': # 输出今日日期,格式为dd/mm/yyyy.更改选项可以查看strftime()方法。 print(datetime.date.today().strftime( ' %d/%m/%Y ')) # 创建日期对象 miyazakiBirthDate = datetime.date(1941, 1, 5) print(miyazakiBirthDate.strftime( ' %d/%m/%Y ')) # 日期算术运算 miyazakiBirthDextDate = miyazakiBirthDate + datetime.timedelta(days=1) # 加一天 print(miyazakiBirthDextDate.strftime( ' %d/%m/%Y ')) # 日期替换 miyazakiFirstBirthday = miyazakiBirthDate.replace(year=miyazakiBirthDate.year + 1) # 加一年 print(miyazakiFirstBirthday.strftime( ' %d/%m/%Y ')) View Code输出结果:
11/01/2016 05/01/1941 06/01/1941 05/01/1942 View Code实例17:
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:输入一行字符,分别统计出其中英文字母、空格,数字和其他字符的个数。思路:利用while语句,条件为输入的字符 ''' import string s = raw_input( ' input a string: ') letters = 0 space = 0 digit = 0 others = 0 for c in s: if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: others += 1 print( ' char = %d, space = %d,digit = %d,others = %d ' % (letters,space,digit,others)) View Code输出结果:
input a string:sffq265233!!0aff dd g char = 10, space = 3,digit = 7,others = 2 View Code实例18:
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+222...2(此时共有5个数相加),几个数相加有键盘控制。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。思路:先计算出每一项的值。 ''' Tn = 0 Sn = [] n = int(raw_input( ' n = : ')) a = int(raw_input( ' a = : ')) for count in range(n): # 先循环计算每一项的值 Tn = Tn + a a = a * 10 Sn.append(Tn) print Tn Sn = reduce( lambda x,y : x + y,Sn) # 在计算和 print Sn View Code输出结果:
n = :9 a = :6 6 66 666 6666 66666 666666 6666666 66666666 666666666 740740734 View Code实例19:
题目:一个数如果恰好等于它的因子之和,这个数就称为“壳数”。例如6=1+2+3,编程找出1000以内的所有完数。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:找出1000以内的完数,完数就是一个数如果恰好等于它的因子之和,例如:6=1+2+3思路:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数各个位之和恰等于n,则说明分解质因数的过程已经结束,打印出即可。 ''' from sys import stdout for j in range(2,1001): k = [] n = -1 s = j for i in range(1,j): if j % i == 0: n += 1 s -= i k.append(i) if s == 0: print j for i in range(n): stdout.write(str(k[i])) print k[n] View Code输出结果:
6 123 28 124714 496 1248163162124248 View Code实例20:
题目:一个球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? ''' Sn = 100.0 Hn = Sn / 2 for n in range(2,11): Sn += 2 * Hn Hn /= 2 print ' Total of road is %f ' % Sn print ' The tenth is %f meter ' % Hn View Code输出结果:
Total of road is 299.609375 The tenth is 0.097656 meter View Code实例21:
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,有吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前天剩下的一半零一个。到第十天早上再想吃时,见剩下一个桃子了。求一天共摘了多少。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。思路:采用逆向思维的方法,从后在往前推断 ''' x2 = 1 for day in range(9,0,-1): x1 = (x2 + 1) * 2 x2 = x1 print x1 View Code输出结果:
1534 View Code实例22:
题目:打印出如下图案(菱形) :
*
***
******
***
*
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:打印出如下图案(菱形): * ******************** *** *思路:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。 ''' from sys import stdout for i in range(4): for j in range(2 - i + 1): stdout.write( ' ') for k in range(2 * i + 1): stdout.write( ' * ') print for i in range(3): for j in range(i + 1): stdout.write( ' ') for k in range(4 - 2 * i + 1): stdout.write( ' * ') print View Code输出结果:
* *** ***** ******* ***** *** * View Code实例23:
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。思路:根据分子和分母的变化可以发现一些规律。(第三个数的分子和分母,是前两个分子和分母之和) ''' ''' 方法一: ''' a = 2.0 b = 1.0 s = 0 for n in range(1,21): s += a / b t = a a = a + b b = t print s ''' 方法二: ''' a = 2.0 b = 1.0 s = 0.0 for n in range(1,21): s += a / b b,a = a , a + b print s s = 0.0 for n in range(1,21): s += a / b b,a = a , a + b print s ''' 方法三: ''' a = 2.0 b = 1.0 l = [] for n in range(1,21): b,a = a,a + b l.append(a / b) print reduce( lambda x,y: x + y,l) View Code输出结果:
32.6602607986 32.6602607986 32.360679776 32.2782947888 View Code实例24:
题目:两个兵乓球队进行比赛,各出三人。甲队为a,b,c三人,乙对为x,y,z三人。以抽签决定比赛名单。有向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程找到三队赛手的名单。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。思路:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 ''' for i in range(ord( ' x '),ord( ' z ') + 1): for j in range(ord( ' x '),ord( ' z ') + 1): if i != j: for k in range(ord( ' x '),ord( ' z ') + 1): if (i != k) and (j != k): if (i != ord( ' x ')) and (k != ord( ' x ')) and (k != ord( ' z ')): print ' order is a -- %s\t b -- %s\tc -- %s ' % (chr(i),chr(j),chr(k)) View Code输出结果:
order is a -- z b -- x c -- y View Code实例25:
题目:求1+2!+3!+...+20!的和。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:求1+2!+3!+...+20!的和。思路:此程序只是把累加变成了累乘。 ''' ''' 方法一: ''' n = 0 s = 0 t = 1 for n in range(1,21): t *= n s += t print ' 1! + 2! + 3! + ... + 20! = %d ' % s ''' '方法二: ''' s = 0 l = range(1,21) def op(x): r = 1 for i in range(1,x + 1): r *= i return r s = sum(map(op,l)) print ' 1! + 2! + 3! + ... + 20! = %d ' % s View Code输出结果:
1! + 2! + 3! + ... + 20! = 2561327494111820313 1! + 2! + 3! + ... + 20! = 2561327494111820313 View Code实例26:
题目:利用递归方法求5!。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:利用递归方法求5!。思路:递归公式:fn = fn_1*4! ''' def fact(j): sum = 0 if j == 0: sum = 1 else: sum = j * fact(j - 1) return sum for i in range(5): print ' %d! = %d ' % (i,fact(i)) View Code输出结果:
0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 View Code实例27:
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 ''' def output(s,l): if l == 0: return print (s[l-1]) output(s,l-1) s = raw_input( ' Input a string: ') l = len(s) output(s,l) View Code输出结果:
Input a string:123544 4 4 5 3 2 1 View Code实例28:
题目:有5个人坐在一起,问第五个人多少岁?他说比第四个人大两岁。问第四个人岁数,他说比第三个人大两岁。问第三个人,又说比第二个人大两岁。问第二个人,说比第二个人大两岁。最后问第一个,他说是十岁。请问第五个人多大?
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?思路:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。 ''' def age(n): if n == 1: c = 10 else: c = age(n-1) + 2 return c print age(5) View Code输出结果:
18 View Code实例29:
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。思路:学会分解出每一位数。 ''' x = int(raw_input( " input a number: ")) a = x / 10000 b = x % 10000 / 1000 c = x % 1000 / 100 d = x % 100 / 10 e = x % 10 if a != 0: print " there are 5 ",e,d,c,b,a elif b != 0: print " there are 4 ",d,c,b,a elif c != 0: print " there are 3 ",e,d,c elif d != 0: print " there are 2 ",e,d else: print " there are 1 ",e View Code输出结果:
input a number:56819 there are 5 9 1 8 6 5 View Code实例30:
题目:一个五位数,判断他是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 ''' # x = int(raw_input('input a number:')) # x = str(x) # for i in range(len(x)/2): # if x[i] != x[-i - 1]: # print '这不是一个回数' # break # print '这是一个回数' x = int(raw_input( " input a number:\n ")) x = str(x) for i in range(len(x)/2): if x[i] != x[-i - 1]: print ' 这不是一个回文数 ' break print ' 这是一个回文数 ' View Code输出结果:
input a number: 12321 这是一个回文数 View Code实例31:
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。思路:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。。 ''' letter = raw_input( " please input: ") # while letter != 'Y': if letter == ' S ': print ( ' please input second letter: ') letter = raw_input( " please input: ") if letter == ' a ': print ( ' Saturday ') elif letter == ' u ': print ( ' Sunday ') else: print ( ' data error ') elif letter == ' F ': print ( ' Friday ') elif letter == ' M ': print ( ' Monday ') elif letter == ' T ': print ( ' please input second letter ') letter = raw_input( " please input: ") if letter == ' u ': print ( ' Tuesday ') elif letter == ' h ': print ( ' Thursday ') else: print ( ' data error ') elif letter == ' W ': print ( ' Wednesday ') else: print ( ' data error ') View Code输出结果:
please input:S please input second letter: please input:a Saturday View Code实例32:
题目:按相反的顺序输出列表的值。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:按相反的顺序输出列表的值。 ''' a = [ ' one ', ' two ', ' three '] for i in a[::-1]: print i View Code输出结果:
three two one View Code实例33:
题目:按逗号分隔列表。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:按逗号分隔列表。 ''' L = [1,2,3,4,5] s1 = ' , '.join(str(n) for n in L) print s1 View Code输出结果:
1,2,3,4,5 View Code实例34:
题目:练习函数调用。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:练习函数调用。 ''' def hello_world(): print ' hello world ' def three_hellos(): for i in range(3): hello_world() if __name__ == ' __main__ ': three_hellos() View Code输出结果:
hello world hello world hello world View Code实例35:
题目:文本颜色设置。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:文本颜色设置。 ''' 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 View Code输出结果:
警告的颜色字体? View Code实例36:
题目:求100之内的素数。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:求100之内的素数。 ''' from math import sqrt if __name__ == ' __main__ ': N = 100 a = range(0,N) for i in range(2,int(sqrt(N))): for j in range(i + 1,N): if (a[i] != 0) and (a[j] != 0): if a[j] % a[i] == 0: a[j] = 0 print for i in range(2,N): if a[i] != 0: print " ] " % a[i] if (i - 2) % 10 == 0: print View Code输出结果:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 View Code实例37:
题目:对100个数进行排序。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:对10个数进行排序。思路:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。 ''' if __name__ == " __main__ ": N = 10 # input data print ' please input ten num: ' l = [] for i in range(N): l.append(int(raw_input( ' input a number: '))) print for i in range(N): print l[i] print # sort ten num for i in range(N - 1): min = i for j in range(i + 1,N): if l[min] > l[j]:min = j l[i],l[min] = l[min],l[i] print ' after sorted ' for i in range(N): print l[i] View Code输出结果:
please input ten num: input a number:5 input a number:8 input a number:46 input a number:256 input a number:1 input a number:8 input a number:9 input a number:4 input a number:569 input a number:79 5 8 46 256 1 8 9 4 569 79 after sorted 1 4 5 8 8 9 46 79 256 569 View Code实例38:
题目:求一个3*3的矩阵对角线元素之和。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:求一个3*3矩阵对角线元素之和。思路:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 ''' if __name__ == ' __main__ ': a = [] sum = 0.0 for i in range(3): a.append([]) for j in range(3): a[i].append(float(raw_input( " input num:\n "))) for i in range(3): sum += a[i][i] print sum View Code输出结果:
input num: 79 input num: 46 input num: 86 input num: 21 input num: 56 input num: 32 input num: 89 input num: 45 input num: 89 224.0 View Code实例39:
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。思路:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。 ''' if __name__ == ' __main__ ': # 方法一 a = [1,4,6,9,13,16,19,28,40,100,0] print ' original list is: ' for i in range(len(a)): print a[i] number = int(raw_input( " insert a new number:\n ")) end = a[9] if number > end: a[10] = number else: for i in range(10): if a[i] > number: temp1 = a[i] a[i] = number for j in range(i + 1,11): temp2 = a[j] a[j] = temp1 temp1 = temp2 break for i in range(11): print a[i] View Code输出结果:
1 4 6 9 13 16 19 28 40 100 0 View Code实例40:
题目:将一个数组逆序输出。
if __name__ == ' __main__ ': a = [9,6,5,4,1] N = len(a) print a for i in range(len(a) / 2): a[i],a[N - i - 1] = a[N - i - 1],a[i] print a View Code输出结果:
[9, 6, 5, 4, 1] [1, 4, 5, 6, 9] View Code实例41:
题目:模仿静态变量的用法。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:模仿静态变量的用法。 ''' def varfunc(): var = 0 print ' var = %d ' % var var += 1 if __name__ == ' __main__ ': for i in range(3): varfunc() # 类的属性 # 作为类的一个属性吧 class Static: StaticVar = 5 def varfunc(self): self.StaticVar += 1 print self.StaticVar print Static.StaticVar a = Static() for i in range(3): a.varfunc() View Code输出结果:
var = 0 var = 0 var = 0 5 6 7 8 View Code实例42:
题目:学习使用auto定义变量的用法。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:学习使用auto定义变量的用法。思路:没有auto关键字,使用变量作用域来举例吧。 ''' num = 2 def autofunc(): num = 1 print ' internal block num = %d ' % num num += 1 for i in range(3): print ' The num = %d ' % num num += 1 autofunc() View Code输出结果:
The num = 2 internal block num = 1 The num = 3 internal block num = 1 The num = 4 internal block num = 1 View Code实例43:
题目:模仿静态变量(static)另一案例。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:模仿静态变量(static)另一案例。思路:演示一个python作用域使用方法 ''' class Num: nNum = 1 def inc(self): self.nNum += 1 print ' nNum = %d ' % self.nNum if __name__ == ' __main__ ': nNum = 2 inst = Num() for i in range(3): nNum += 1 print ' The num = %d ' % nNum inst.inc() View Code输出结果:
The num = 3 nNum = 2 The num = 4 nNum = 3 The num = 5 nNum = 4 View Code实例44:
题目:统计1到100之和。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:统计 1 到 100 之和。 ''' tmp = 0 for i in range(1,101): tmp += i print ' The sum is %d ' % tmp View Code输出结果:
The sum is 5050 View Code实例45:
题目:求输入数字的平方,如果平方运算后小于50则退出。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:求输入数字的平方,如果平方运算后小于 50 则退出。 ''' TRUE = 1 FALSE = 0 def SQ(x): return x * x print ' 如果输入的数字小于 50,程序将停止运行。 ' again = 1 while again: num = int(raw_input( ' Please input number ')) print ' 运算结果为 %d ' % (SQ(num)) if num >= 50: again = TRUE else: again = FALSE View Code输出结果:
如果输入的数字小于 50,程序将停止运行。 Please input number300 运算结果为 90000 Please input number45 运算结果为 2025 View Code实例46:
题目:连个变量值互换。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:连个变量值互换。 ''' def exchange(a,b): a,b = b,a return (a,b) if __name__ == ' __main__ ': x = 10 y = 20 print ' x = %d,y = %d ' % (x,y) x,y = exchange(x,y) print ' x = %d,y = %d ' % (x,y) View Code输出结果:
x = 10,y = 20 x = 20,y = 10 View Code实例47:
题目:数字比较。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:数字比较。 ''' if __name__ == ' __main__ ': i = 10 j = 20 if i > j: print ' %d 大于 %d ' % (i,j) elif i == j: print ' %d 等于 %d ' % (i,j) elif i < j: print ' %d 小于 %d ' % (i,j) else: print ' 未知 ' View Code输出结果:
10 小于 20 View Code实例48:
题目:使用lambda来创建匿名函数。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:使用lambda来创建匿名函数。 ''' MAXIMUM = lambda x,y : (x > y) * x + (x < y) * y MINIMUM = lambda x,y : (x > y) * y + (x < y) * x if __name__ == ' __main__ ': a = 10 b = 20 print ' The largar one is %d ' % MAXIMUM(a,b) print ' The lower one is %d ' % MINIMUM(a,b) View Code输出结果:
The largar one is 20 The lower one is 10 View Code实例49:
题目:输出一个随机数。
# !/usr/bin/env python # --*--coding:utf-8 --*-- ''' 需求:输出一个随机数。思路:使用 random 模块。 ''' import random # 生成 10 到 20 之间的随机数 print random.uniform(10, 20) View Code输出结果:
14.6599912675 View Code转载于:https://www.cnblogs.com/wulaoer/p/5119944.html