python经典100例(41-60)
生活随笔
收集整理的這篇文章主要介紹了
python经典100例(41-60)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python 經典100例(41-60)
''' 【程序41】 題目:學習static定義靜態變量的用法 1.程序分析: 2.程序源代碼: ''' # python沒有這個功能了,只能這樣了:) def varfunc(): ??? var = 0 ??? print 'var = %d' % var ??? var += 1 if __name__ == '__main__': ??? for i in range(3): ??????? varfunc() ? # attribut of class # 作為類的一個屬性吧 class Static: ??? StaticVar = 5 ??? def varfunc(self): ??????? self.StaticVar += 1 ??????? print self.StaticVar ? print Static.StaticVar a = Static() for i in range(3): varfunc()
?
?
'''
題目:學習使用auto定義變量的用法
1.程序分析:
2.程序源代碼:
沒有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()
???
?
?
'''
【程序43】
題目:學習使用static的另一用法。
1.程序分析:
2.程序源代碼:
有一個static變量的用法,python是沒有,演示一個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()
?
?
'''
【程序44】
題目:學習使用external的用法。
1.程序分析:
2.程序源代碼:
external.py代碼:
?
'''
import external
if __name__ == '__main__':
??? print external.add(10,20)
?
?
????????
兩個 3 行 3 列的矩陣,實現其對應位置的數據相加,并返回一個新矩陣:
X = [[12,7,3],
??? [4 ,5,6],
??? [7 ,8,9]]
?
Y = [[5,8,1],
??? [6,7,3],
??? [4,5,9]]
程序分析:創建一個新的 3 行 3 列的矩陣,使用 for 迭代并取出 X 和 Y 矩陣中對應位置的值,相加后放到新矩陣的對應位置中。
程序源代碼:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
?
X = [[12,7,3],
??? [4 ,5,6],
??? [7 ,8,9]]
?
Y = [[5,8,1],
??? [6,7,3],
??? [4,5,9]]
?
result = [[0,0,0],
???????? [0,0,0],
???????? [0,0,0]]
?
# 迭代輸出行
for i in range(len(X)):
?? # 迭代輸出列
?? for j in range(len(X[0])):
?????? result[i][j] = X[i][j] + Y[i][j]
?
for r in result:
?? print(r)
?
?
'''
【程序45】
題目:統計 1 到 100 之和。
程序分析:無
程序源代碼:
'''
tmp = 0
for i in range(1,101):
??? tmp += i
print 'The sum is %d' % tmp
?
?
?
'''
【程序46】
題目:求輸入數字的平方,如果平方運算后小于 50 則退出。
程序分析:無
程序源代碼:
'''
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 this number is %d' % (SQ(num))
??? if num >= 50:
??????? again = TRUE
??? else:
??????? again = FALSE
?
?
'''
【47】
題目:兩個變量值互換。
程序分析:無
程序源代碼:
'''
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)
?
?
'''
【程序48】
題目:數字比較。
程序分析:無
程序源代碼:
'''
if __name__ == '__main__':
??? i = 10
??? j = 20
??? if i > j:
??????? print '%d larger than %d' % (i,j)
??? elif i == j:
??????? print '%d equal to %d' % (i,j)
??? elif i < j:
??????? print '%d smaller than %d' % (i,j)
??? else:
??????? print 'No such value'
???
?
'''
【程序49】
題目:使用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)
?
?
?
【50】題目:輸出一個隨機數。
程序分析:使用 random 模塊。
程序源代碼:
?
#!/usr/bin/python
# -*- coding: UTF-8 -*-
?
import random
?
#生成 10 到 20 之間的隨機數
print random.uniform(10, 20)
?
?
?
'''
【程序51】
題目:學習使用按位與 & 。
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
2.程序源代碼:
'''
if __name__ == '__main__':
?? ?a = 077
??? b = a & 3
??? print 'a & b = %d' % b
??? b &= 7
print 'a & b = %d' % b
?
?
'''
【52】題目:學習使用按位或 | 。
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
2.程序源代碼:
'''
?
if __name__ == '__main__':
??? a = 077
??? b = a | 3
??? print 'a | b is %d' % b??? 63
??? b |= 7
print 'a | b is %d' % b???? 63
?
?
'''
【程序53】
題目:學習使用按位異或 ^ 。
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
2.程序源代碼:
'''
if __name__ == '__main__':
??? a = 077
??? b = a ^ 3
??? print 'The a ^ 3 = %d' % b???? 60
??? b ^= 7
print 'The a ^ b = %d' % b????? 59
?
?
'''
【程序54】
題目:取一個整數a從右端開始的4~7位。
程序分析:可以這樣考慮:
(1)先使a右移4位。
(2)設置一個低4位全為1,其余全為0的數。可用~(~0<<4)
(3)將上面二者進行&運算。
'''
if __name__ == '__main__':
??? a = int(raw_input('input a number:\n'))
??? b = a >> 4
??? c = ~(~0 << 4)
??? d = b & c
print '%o\t%o' %(a,d)
?
?
'''
【程序55】
題目:學習使用按位取反~。
1.程序分析:~0=1; ~1=0;
2.程序源代碼:
如何查看復數的16進制數
'''
if __name__ == '__main__':
??? a = 234
??? b = ~a
??? print 'The a\'s 1 complement is %d' % b???? -235
??? a = ~a
print 'The a\'s 2 complement is %d' % a???? -235
?
?
'''
【程序56】
題目:畫圖,學用circle畫圓形。
1.程序分析:
2.程序源代碼:
#include "graphics.h"
main()
{
???????? int driver,mode,i;
???????? float j=1,k=1;
???????? driver=VGA;mode=VGAHI;
???????? initgraph(&driver,&mode,"");
???????? setbkcolor(YELLOW);
???????? for(i=0;i<=25;i++)
???????? {
????????????????? setcolor(8);
????????????????? circle(310,250,k);
????????????????? k=k+j;
????????????????? j=j+0.3;
???????? }
}
?
'''
if __name__ == '__main__':
??? from Tkinter import *
?
??? canvas = Canvas(width=800, height=600, bg='yellow')?
??? canvas.pack(expand=YES, fill=BOTH)???????????????
??? k = 1
??? j = 1
??? for i in range(0,26):
??????? canvas.create_oval(310 - k,250 - k,310 + k,250 + k, width=1)
??????? k += j
??????? j += 0.3
?
mainloop()
?
?
'''
【程序57】
題目:畫圖,學用line畫直線。
1.程序分析:
2.程序源代碼:
'''
if __name__ == '__main__':
??? from Tkinter import *
?
??? canvas = Canvas(width=300, height=300, bg='green')??
??? canvas.pack(expand=YES, fill=BOTH)?????????????????
??? x0 = 263
??? y0 = 263
??? y1 = 275
??? x1 = 275
??? for i in range(19):
??????? canvas.create_line(x0,y0,x0,y1, width=1, fill='red')
??????? x0 = x0 - 5
??????? y0 = y0 - 5
??????? x1 = x1 + 5
??????? y1 = y1 + 5
?
??? x0 = 263
??? y1 = 275
??? y0 = 263
??? for i in range(21):
??????? canvas.create_line(x0,y0,x0,y1,fill = 'red')
??????? x0 += 5
??????? y0 += 5
??????? y1 += 5
?
mainloop()
?
?
?
'''
【程序58】
題目:畫圖,學用rectangle畫方形。
1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。
2.程序源代碼:
'''
if __name__ == '__main__':
??? from Tkinter import *
??? root = Tk()
??? root.title('Canvas')
??? canvas = Canvas(root,width = 400,height = 400,bg = 'yellow')
??? x0 = 263
??? y0 = 263
??? y1 = 275
??? x1 = 275
??? for i in range(19):
??????? canvas.create_rectangle(x0,y0,x1,y1)
??????? x0 -= 5
??????? y0 -= 5
??????? x1 += 5
??????? y1 += 5
???????
??? canvas.pack()
root.mainloop()
?
?
?
'''
【59】題目:畫圖,綜合例子。
1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。。
2.程序源代碼:
'''
if __name__? == '__main__':
??? from Tkinter import *
??? canvas = Canvas(width = 300,height = 300,bg = 'green')
??? canvas.pack(expand = YES,fill = BOTH)
??? x0 = 150
??? y0 = 100
??? canvas.create_oval(x0 - 10,y0 - 10,x0 + 10,y0 + 10)
??? canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20)
??? canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50)
??? import math
??? B = 0.809
??? for i in range(16):
??????? a = 2 * math.pi / 16 * i
??????? x = math.ceil(x0 + 48 * math.cos(a))
??????? y = math.ceil(y0 + 48 * math.sin(a) * B)
??????? canvas.create_line(x0,y0,x,y,fill = 'red')
??? canvas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60)
???
?
??? for k in range(501):
??????? for i in range(17):
??????????? a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k
??????????? x = math.ceil(x0 + 48 * math.cos(a))
??????????? y = math.ceil(y0 + 48 + math.sin(a) * B)
??????????? canvas.create_line(x0,y0,x,y,fill = 'red')
??????? for j in range(51):
??????????? a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1
??????????? x = math.ceil(x0 + 48 * math.cos(a))
?? ?????????y = math.ceil(y0 + 48 * math.sin(a) * B)
??????????? canvas.create_line(x0,y0,x,y,fill = 'red')
mainloop()
?
?
'''
【程序60】
題目:計算字符串長度。
程序分析:無。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
?
sStr1 = 'strlen'
print len(sStr1)
''' 【程序41】 題目:學習static定義靜態變量的用法 1.程序分析: 2.程序源代碼: ''' # python沒有這個功能了,只能這樣了:) def varfunc(): ??? var = 0 ??? print 'var = %d' % var ??? var += 1 if __name__ == '__main__': ??? for i in range(3): ??????? varfunc() ? # attribut of class # 作為類的一個屬性吧 class Static: ??? StaticVar = 5 ??? def varfunc(self): ??????? self.StaticVar += 1 ??????? print self.StaticVar ? print Static.StaticVar a = Static() for i in range(3):
總結
以上是生活随笔為你收集整理的python经典100例(41-60)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用python寻找列表中相邻元素之差绝
- 下一篇: python中的元组及注意事项