㈠ 用python输出一个杨辉三角的例子
用Python输出一个杨辉三角的例子
这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下
关于杨辉三角是什么东西,右转维基网络:杨辉三角
稍微看一下直观一点的图:
代码如下:
杨辉三角有以下几个特点:
每一项的值等于他左上角的数和右上角的数的和,如果左上角或者右上角没有数字,就按0计算。
第N层项数总比N-1层多1个
计算第N层的杨辉三角,必须知道N-1层的数字,然后将相邻2项的数字相加,就能得到下一层除了最边上2个1的所有数字。 听起来有点像递归的思想,我们不妨假设我们已经知道N-1层的数字,来计算一下N层的数字吧。
代码如下:
def _yanghui_trangle(n, result):
if n == 1:
return [1]
else:
return [sum(i) for i in zip([0] + result, result + [0])]
上面代码中,result表示N-1层杨辉三角的数字。实习上,我们在列表2端各补了一个0,然后计算相邻项的和,就可以直接得到结果。
稍微完善一下代码:
代码如下:
def yanghui_trangle(n):
def _yanghui_trangle(n, result):
if n == 1:
return [1]
else:
return [sum(i) for i in zip([0] + result, result + [0])]
pre_result = []
for i in xrange(n):
pre_result = _yanghui_trangle(i + 1, pre_result)
yield pre_result
if __name__ == "__main__":
for line in yanghui_trangle1(5):
print line
_yanghui_trangle可以用lambda的方式简写,但是可读性感觉会变差,所以还是保持现状好了。
tips: 上面的程序并没有考虑数据格式化的问题,也就是说输出不是完美的三角形。
鉴于最近在学习erlang,补上一个erlang版本的,性能上没有测试过,不过还是要惊叹于函数式语言的表达能力:
代码如下:
-mole(yanghui).
-author(lfyzjck).
-export([triangle/1]).
triangle_next(P) ->
lists:zipwith(fun(X, Y) -> X+Y end, [0|P], P ++ [0]).
triangle(1) ->
[[1]];
triangle(N) ->
L = triangle(N - 1),
[H|_] = L,
[triangle_next(H)|L].
㈡ python怎么输出用*绘制的图形
python怎么输出用*绘制的图形如下说明。
其实想要输出*的图形是很简单的。只要在用print函数即可,如图片想要用*字符输出一个三角形的图案,我要用只要用print加括号,括号中想要输出的字符用双引号引起来,如第一个print输出人上*字符,第二行输出三个字符,一直添加print,按一定的比例输出*即可。想要输复杂图形就要深入了解python语言才行。
Python简介,Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python是一种解释型语言 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python是初学者的语言,Python对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发。
㈢ python生成指定坐标的三角形图片
importImage
importImageDraw
a=Image.new('RGB',(200,300))
m=ImageDraw.Draw(a)
m.polygon([(20,20),(35,140),(180,166)],fill=0xff00ff)
a.show()
m.polygon([(20,20),(35,140),(180,166),(180,20)],fill=0xff00ff)
这是一个四边形。
㈣ 用Python编写,print("X"),列出1个三角形,第1行1个X居中,第2行2个X居中,第3行5个X居中,列出10行来。
1、创建python文件,testtriangle.py;
㈤ 怎么用python画三角形并填色以及画五角星并且填色(急!!!)
可以. 用fill='#XXXXXX'参数:
from Tkinter import Tk, Canvas, Frame, BOTH
from math import sin, pi,cos
def pentagramPoints(cx, cy, R):
xita = 36*pi/180
r = R*cos(2*xita)/cos(xita)
points = []
for i in range(0, 10):
angle = i*xita + 0.5*xita
if i % 2:
points+=[cx + r*cos(angle), cy - r*sin(angle)]
else:
points+=[cx + R*cos(angle), cy - R*sin(angle)]
return points
if __name__ == '__main__':
root = Tk()
f = Frame(root)
f.pack(fill=BOTH, expand=1)
canvas = Canvas(f)
canvas.create_polygon(30, 10, 160, 470, 290, 10, outline="#000000", fill="#00ff00", width=3)
canvas.create_polygon(pentagramPoints(480, 240, 100), outline = '#000000', fill='#ff0000', width=3)
canvas.pack(fill=BOTH, expand=1)
root.geometry("640x480+300+300")
root.mainloop()