首页 > 代码库 > Python重写C语言程序100例--Part8
Python重写C语言程序100例--Part8
''' 【程序61】 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: ''' if __name__ == '__main__': a = [] for i in range(10): a.append([]) for j in range(10): a[i].append(0) for i in range(10): a[i][0] = 1 a[i][i] = 1 for i in range(2,10): for j in range(1,i): a[i][j] = a[i - 1][j-1] + a[i - 1][j] from sys import stdout for i in range(10): for j in range(i + 1): stdout.write(a[i][j]) stdout.write(' ') print
''' 题目:画椭圆ellipse 1.程序分析: 2.程序源代码: ''' if __name__ == '__main__': from Tkinter import * x = 360 y = 160 top = y - 30 bottom = y - 30 canvas = Canvas(width = 400,height = 600,bg = 'white') for i in range(20): canvas.create_oval(250 - top,250 - bottom,250 + top,250 + bottom) top -= 5 bottom += 5 canvas.pack() mainloop()
''' 题目:利用ellipse and rectangle 画图。 1.程序分析: 2.程序源代码: ''' if __name__ == '__main__': from Tkinter import * canvas = Canvas(width = 400,height = 600,bg = 'white') left = 20 right = 50 top = 50 num = 15 for i in range(num): canvas.create_oval(250 - right,250 - left,250 + right,250 + left) canvas.create_oval(250 - 20,250 - top,250 + 20,250 + top) canvas.create_rectangle(20 - 2 * i,20 - 2 * i,10 * (i + 2),10 * ( i + 2)) right += 5 left += 5 top += 10 canvas.pack() mainloop()
''' 【程序65】 题目:一个最优美的图案。 1.程序分析: 2.程序源代码: ''' import math class PTS: def __init__(self): self.x = 0 self.y = 0 points = [] def LineToDemo(): from Tkinter import * screenx = 400 screeny = 400 canvas = Canvas(width = screenx,height = screeny,bg = 'white') AspectRatio = 0.85 MAXPTS = 15 h = screeny w = screenx xcenter = w / 2 ycenter = h / 2 radius = (h - 30) / (AspectRatio * 2) - 20 step = 360 / MAXPTS angle = 0.0 for i in range(MAXPTS): rads = angle * math.pi / 180.0 p = PTS() p.x = xcenter + int(math.cos(rads) * radius) p.y = ycenter - int(math.sin(rads) * radius * AspectRatio) angle += step points.append(p) canvas.create_oval(xcenter - radius,ycenter - radius, xcenter + radius,ycenter + radius) for i in range(MAXPTS): for j in range(i,MAXPTS): canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y) canvas.pack() mainloop() if __name__ == '__main__': LineToDemo()
''' 【程序66】 题目:输入3个数a,b,c,按大小顺序输出。 1.程序分析:利用指针方法。 2.程序源代码: ''' if __name__ == '__main__': n1 = int(raw_input('n1 = :\n')) n2 = int(raw_input('n2 = :\n')) n3 = int(raw_input('n3 = :\n')) def swap(p1,p2): return p2,p1 if n1 > n2 : n1,n2 = swap(n1,n2) if n1 > n3 : n1,n3 = swap(n1,n3) if n2 > n3 : n2,n3 = swap(n2,n3) print n1,n2,n3
''' 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 1.程序分析:谭浩强的书中答案有问题。 2.程序源代码: ''' def inp(numbers): for i in range(9): numbers.append(int(raw_input('input a number:\n'))) numbers.append(int(raw_input('input a number:\n'))) p = 0 def max_min(array): max = min = 0 for i in range(1,len(array) - 1): p = i if array[p] > array[max] : max = p elif array[p] < array[min] : min = p k = max l = min array[0],array[l] = array[l],array[0] array[9],array[k] = array[k],array[9] def outp(numbers): for i in range(len(numbers)): print numbers[i] if __name__ == '__main__': array = [] inp(array) max_min(array) outp(array)
''' 【程序68】 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 1.程序分析: 2.程序源代码: ''' if __name__ == '__main__': n = int(raw_input('the total number is:\n')) m = int(raw_input('back m:\n')) def move(array,n,m): array_end = array[n - 1] for i in range(n - 1,-1,- 1): array[i] = array[i - 1] array[0] = array_end m -= 1 if m > 0:move(array,n,m) number = [] for i in range(n): number.append(int(raw_input('input a number:\n'))) print 'orignal number:',number move(number,n,m) print 'after moved:',number
''' 【程序69】 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出 圈子,问最后留下的是原来第几号的那位。 1. 程序分析: 2.程序源代码: ''' if __name__ == '__main__': nmax = 50 n = int(raw_input('please input the total of numbers:')) num = [] for i in range(n): num.append(i + 1) i = 0 k = 0 m = 0 while m < n - 1: if num[i] != 0 : k += 1 if k == 3: num[i] = 0 k = 0 m += 0 i += 1 if i == n : i = 0 i = 0 while num[i] == 0: i += 1 print num[i]
''' 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 1.程序分析: 2.程序源代码 就这样吧 ''' if __name__ == '__main__': s = raw_input('please input a string:\n') print 'the string has %d characters.' % len(s)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。