如果你已经把基础看完,可以尝试一下看看以下例子了,如果不会做也不要紧,你要尝试手动把所有的代码都敲一边。别嫌麻烦,因为都是从麻烦到简单的。

实例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

 实例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%
10-20万提成7.5%
20-40万提成5%
40-60万提成3%
60-100万提成1.5%
100万以上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

输出结果:

输入您的利润:300000
5000.0
7500.0
10000.0
22500.0

 实例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

输出结果:

156

 实例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

输出结果:

year:
2015
month:
12
day:
13
it is the 347th day.

 实例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

输出结果:

input:3
input:7
input:1
[1, 3, 7]

 实例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)

输出结果:

354224848179261915075

 实例7:

题目:将一个列表的数据复制到另一个列表中。

#!/usr/bin/env  python
# --*--coding:utf-8 --*--
'''
将一个列表的数据复制到另一个列表里
'''
a = [1,2,3,4,5,6,7,8,9,0]
b = a[:]
print b

输出结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

 实例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 ''#两个循环的间隔

输出结果:

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

实例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)#暂停一秒

输出结果:

1 a
2 b
3 c
4 d
5 e
6 f
7 g

 实例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()))

输出结果:

2016-01-10 23:43:17
2016-01-10 23:43:18

 实例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 '%12d %12d' % (f1,f2)
    if (i % 2) == 0:
        print ''
    f1 = f1 + f2
    f2 = f1 + f2

输出结果:

           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

 实例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

输出结果:

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

 实例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

输出结果:

153
370
371
407

 实例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

输出结果:

input number:100
n = 100
2*2*5*5

 实例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)

输出结果:

input score:26
26 belongs to E

实例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'))

输出结果:

11/01/2016
05/01/1941
06/01/1941
05/01/1942

 实例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))

输出结果:

input a string:sffq265233!!0aff  dd g
char = 10, space = 3,digit = 7,others = 2

 实例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

输出结果:

n = :9
a = :6
6
66
666
6666
66666
666666
6666666
66666666
666666666
740740734

 实例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]

输出结果:

6
123
28
124714
496
1248163162124248

 实例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

输出结果:

Total of road is 299.609375
The tenth is 0.097656 meter

 实例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

输出结果:

1534

 实例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

输出结果:

   *
  ***
 *****
*******
 *****
  ***
   *

 实例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)

输出结果:

32.6602607986
32.6602607986
32.360679776
32.2782947888

 实例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))

输出结果:

order is a -- z     b -- x    c -- y

 实例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

输出结果:

1! + 2! + 3! + ... + 20! = 2561327494111820313
1! + 2! + 3! + ... + 20! = 2561327494111820313

 实例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))

输出结果:

0! = 1
1! = 1
2! = 2
3! = 6
4! = 24

 实例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)

输出结果:

Input a string:123544
4
4
5
3
2
1

 实例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)

输出结果:

18

 实例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

输出结果:

input a number:56819
there are 5  9 1 8 6 5

 实例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 '这是一个回文数'

输出结果:

input a number:
12321
这是一个回文数

 实例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')

输出结果:

please input:S
please input second letter:
please input:a
Saturday

 实例32:

题目:按相反的顺序输出列表的值。

#!/usr/bin/env  python
# --*--coding:utf-8 --*--
'''
需求:按相反的顺序输出列表的值。
'''
a = ['one', 'two', 'three']
for i in a[::-1]:
    print i

输出结果:

three
two
one

 实例33:

题目:按逗号分隔列表。

#!/usr/bin/env  python
# --*--coding:utf-8 --*--
'''
需求:按逗号分隔列表。
'''
L = [1,2,3,4,5]
s1 = ','.join(str(n) for n in L)
print s1

输出结果:

1,2,3,4,5

实例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()

输出结果:

hello world
hello world
hello world

 实例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

输出结果:

警告的颜色字体?

 实例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 "%5d" % a[i]
            if (i - 2) % 10 == 0:
                print

输出结果:

    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

 实例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]

输出结果:

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

 实例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

输出结果:

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

 实例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]

输出结果:

1
4
6
9
13
16
19
28
40
100
0

 实例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

输出结果:

[9, 6, 5, 4, 1]
[1, 4, 5, 6, 9]

 实例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()

输出结果:

var = 0
var = 0
var = 0
5
6
7
8

 实例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()

输出结果:

The num = 2
internal block num = 1
The num = 3
internal block num = 1
The num = 4
internal block num = 1

 实例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()

输出结果:

The num = 3
nNum = 2
The num = 4
nNum = 3
The num = 5
nNum = 4

 实例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

输出结果:

The sum is 5050

 实例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

输出结果:

如果输入的数字小于 50,程序将停止运行。
Please input number300
运算结果为 90000
Please input number45
运算结果为 2025

 实例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)

输出结果:

x = 10,y = 20
x = 20,y = 10

 实例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 '未知'

输出结果:

10 小于 20

 实例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)

输出结果:

The largar one is 20
The lower one is 10

 实例49:

题目:输出一个随机数。

#!/usr/bin/env  python
# --*--coding:utf-8 --*--
'''
需求:输出一个随机数。
思路:使用 random 模块。
'''
import random

#生成 10 到 20 之间的随机数
print random.uniform(10, 20)

输出结果:

14.6599912675

Python 100例(上)的更多相关文章

  1. 菜鸟 Python 100例

    以下参考:菜鸟教程 python100例 == 推荐博客 有四个数字: 1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? import itertools a = ('1','2' ...

  2. [Python] Python 100例

    题目1:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. #程序源 ...

  3. Python 100例(下)

    如果你坚持到这了,哪就为自己鼓掌吧!坚持,你一定可以. 实例51: 题目:学习使用按位与&. #!/usr/bin/env  python# --*--coding:utf-8 --*--'' ...

  4. Python 100例(001)

    #!/usr/bin/env python # coding:utf-8 '''有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少?''' n = 1 num = [4, ...

  5. python 100例 (持续更新)

    1.题目:列表转换为字典. 程序源代码: 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 i = ['a', 'b'] 5 l = [1, ...

  6. Python语言100例

    Python版本:python 3.2.2 电脑系统:win7旗舰 实例来源:python菜鸟教程100例 #!/usr/bin/python # -*- coding: UTF-8 -*- impo ...

  7. C语言经典算法100例

    [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...

  8. Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上的应用)

    目录 Python5大擅长领域 WEB开发 网络编程 科学运算 GUI图形开发 运维自动化 Python在世界上的知名应用 国外 谷歌 CIA NASA YouTube Dropbox Instagr ...

  9. Python Selenium 文件上传之Autoit

    今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python Selenium 文件上传之SendKeys 这种方法直接通过命令行执行脚本时没有问题,可以成功 ...

随机推荐

  1. why TCP guarentee delivery?

    Simple idea: just use a TIMEOUT, if no answer after a certain seconds, just re-deliver!

  2. myeclipse复制项目

    一.myEclipse 复制后修改名称,访问不到项目 这是因为,你只是改了项目的名称,而没有改 下面是解决方法: 方法 1.右击你的项目,选择"properties",在" ...

  3. 关于table参数的一些问题

    1.关于单元格合并 写在td标签上,如: <td rowspan="3"></td> 跨行合并:rowspan 跨列合并:colspan 2.关于多行输入框 ...

  4. Learn about images & containers

    Learn about images & containers Docker Engine provides the core Docker technology that enables i ...

  5. Zabbix3.0 安装Graphtree

    zabbix中,想要集中展示图形,唯一的选择是screen,zatree可以解决这个问题,但是性能不是很好. Graphtree由OneOaas开发并开源出来,用来解决zabbix的图形展示问题,性能 ...

  6. jenkins tags

    List Subversion tags (and more) 参数设置 Tags filter ^((?!_ta_).)*$ 表示不含_ta_ Tags filtertrunk|(tags|bran ...

  7. dl以及dt,dd,以及table的tr,th,td最清楚分析

    1,定义:<dl> <dt> <dd>是一组合标签,使用了dt dd最外层就必须使用dl包裹,此组合标签我们也又叫表格标签,与table表格类似组合标签,故名我们也 ...

  8. 初探JavaScript魅力(三)

    复选框的全选.反选和不选 <title>无标题文档</title> <style> body{background:#666;} </style> &l ...

  9. 动画——animation部分

    动画部分是HTML5的新增部分,其特性是可以不借助js代码就可以单单凭借着css部分完成部分动态效果.其效果华丽,强大,炫酷无比,只要你想得到的动态效果都可以通过css3来完成. <style& ...

  10. 转:HTTP协议详解(真的很经典)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...