如果你已經把基礎看完,可以嘗試一下看看以下例子了,如果不會做也不要緊,你要嘗試手動把所有的代碼都敲一邊。別嫌麻煩,因為都是從麻煩到簡單的。
實例1:
題目:有1、2、3、4個數字,能組成多少個相互不同且無重復的三位數?都是多少?

# --*--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 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%提成,從鍵盤輸入當月利潤,求應發放獎金總數?

# --*--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
輸出結果:

5000.0
7500.0
10000.0
22500.0
實例3:
題目:一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該書是多少?

# --*--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
輸出結果:

實例4:
題目:輸入某年某年某月某日,判斷這一天是這一年的第幾天?

# --*--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
輸出結果:

2015
month:
12
day:
13
it is the 347th day.
實例5:
題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

# --*--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:7
input:1
[1, 3, 7]
實例6:
題目:斐波那契數列。

# --*--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)
輸出結果:

實例7:
題目:將一個列表的數據復制到另一個列表中。

# --*--coding:utf-8 --*--
'''
將一個列表的數據復制到另一個列表里
'''
a = [1,2,3,4,5,6,7,8,9,0]
b = a[:]
print b
輸出結果:

實例8:
題目:輸出9*9乘法口訣表。

# --*--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 * 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:
題目:暫停一秒輸出。

# --*--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) # 暫停一秒
輸出結果:

2 b
3 c
4 d
5 e
6 f
7 g
實例10:
題目:暫停一秒輸入。

# --*--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:18
實例11:
題目:古典問題,有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

# --*--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
輸出結果:

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之間有多少個素數,並輸出所有素數。

# --*--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
輸出結果:

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的三次方。

# --*--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
輸出結果:

370
371
407
實例14:
題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5.

# --*--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
輸出結果:

n = 100
2*2*5*5
實例15:
題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-80分之間的用B表示,60分以下的用C表示。

# --*--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)
輸出結果:

26 belongs to E
實例16:
題目:輸出指定格式的日期。

# --*--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 '))
輸出結果:

05/01/1941
06/01/1941
05/01/1942
實例17:
題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。

# --*--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))
輸出結果:

char = 10, space = 3,digit = 7,others = 2
實例18:
題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+222...2(此時共有5個數相加),幾個數相加有鍵盤控制。

# --*--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
輸出結果:

a = :6
6
66
666
6666
66666
666666
6666666
66666666
666666666
740740734
實例19:
題目:一個數如果恰好等於它的因子之和,這個數就稱為“殼數”。例如6=1+2+3,編程找出1000以內的所有完數。

# --*--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]
輸出結果:

123
28
124714
496
1248163162124248
實例20:
題目:一個球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?

# --*--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
輸出結果:

The tenth is 0.097656 meter
實例21:
題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,有吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前天剩下的一半零一個。到第十天早上再想吃時,見剩下一個桃子了。求一天共摘了多少。

# --*--coding:utf-8 --*--
'''
需求:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
思路:采用逆向思維的方法,從后在往前推斷
'''
x2 = 1
for day in range(9,0,-1):
x1 = (x2 + 1) * 2
x2 = x1
print x1
輸出結果:

實例22:
題目:打印出如下圖案(菱形) :
*
***
******
***
*

# --*--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( ' * ')
for i in range(3):
for j in range(i + 1):
stdout.write( ' ')
for k in range(4 - 2 * i + 1):
stdout.write( ' * ')
輸出結果:

***
*****
*******
*****
***
*
實例23:
題目:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。

# --*--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.360679776
32.2782947888
實例24:
題目:兩個兵乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙對為x,y,z三人。以抽簽決定比賽名單。有向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程找到三隊賽手的名單。

# --*--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))
輸出結果:

實例25:
題目:求1+2!+3!+...+20!的和。

# --*--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
實例26:
題目:利用遞歸方法求5!。

# --*--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))
輸出結果:

1! = 1
2! = 2
3! = 6
4! = 24
實例27:
題目:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。

# --*--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)
輸出結果:

4
4
5
3
2
1
實例28:
題目:有5個人坐在一起,問第五個人多少歲?他說比第四個人大兩歲。問第四個人歲數,他說比第三個人大兩歲。問第三個人,又說比第二個人大兩歲。問第二個人,說比第二個人大兩歲。最后問第一個,他說是十歲。請問第五個人多大?

# --*--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)
輸出結果:

實例29:
題目:給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。

# --*--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
輸出結果:

there are 5 9 1 8 6 5
實例30:
題目:一個五位數,判斷他是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。

# --*--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 ' 這是一個回文數 '
輸出結果:

12321
這是一個回文數
實例31:
題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續判斷第二個字母。

# --*--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 second letter:
please input:a
Saturday
實例32:
題目:按相反的順序輸出列表的值。

# --*--coding:utf-8 --*--
'''
需求:按相反的順序輸出列表的值。
'''
a = [ ' one ', ' two ', ' three ']
for i in a[::-1]:
print i
輸出結果:

two
one
實例33:
題目:按逗號分隔列表。

# --*--coding:utf-8 --*--
'''
需求:按逗號分隔列表。
'''
L = [1,2,3,4,5]
s1 = ' , '.join(str(n) for n in L)
print s1
輸出結果:

實例34:
題目:練習函數調用。

# --*--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
實例35:
題目:文本顏色設置。

# --*--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之內的素數。

# --*--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
for i in range(2,N):
if a[i] != 0:
print " %5d " % a[i]
if (i - 2) % 10 == 0:
輸出結果:

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個數進行排序。

# --*--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: ')))
for i in range(N):
print l[i]
# 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]
輸出結果:

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的矩陣對角線元素之和。

# --*--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
輸出結果:

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:
題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。

# --*--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]
輸出結果:

4
6
9
13
16
19
28
40
100
0
實例40:
題目:將一個數組逆序輸出。

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
輸出結果:

[1, 4, 5, 6, 9]
實例41:
題目:模仿靜態變量的用法。

# --*--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
5
6
7
8
實例42:
題目:學習使用auto定義變量的用法。

# --*--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()
輸出結果:

internal block num = 1
The num = 3
internal block num = 1
The num = 4
internal block num = 1
實例43:
題目:模仿靜態變量(static)另一案例。

# --*--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()
輸出結果:

nNum = 2
The num = 4
nNum = 3
The num = 5
nNum = 4
實例44:
題目:統計1到100之和。

# --*--coding:utf-8 --*--
'''
需求:統計 1 到 100 之和。
'''
tmp = 0
for i in range(1,101):
tmp += i
print ' The sum is %d ' % tmp
輸出結果:

實例45:
題目:求輸入數字的平方,如果平方運算后小於50則退出。

# --*--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
輸出結果:

Please input number300
運算結果為 90000
Please input number45
運算結果為 2025
實例46:
題目:連個變量值互換。

# --*--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 = 20,y = 10
實例47:
題目:數字比較。

# --*--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 ' 未知 '
輸出結果:

實例48:
題目:使用lambda來創建匿名函數。

# --*--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 lower one is 10
實例49:
題目:輸出一個隨機數。

# --*--coding:utf-8 --*--
'''
需求:輸出一個隨機數。
思路:使用 random 模塊。
'''
import random
# 生成 10 到 20 之間的隨機數
print random.uniform(10, 20)
輸出結果:
