r语言循环 r语言循环画图

圣诞节快到了,用python、turtle画棵圣诞树吧

首先需要安装python环境,如果是新手建议百度一下,有很详细的教程哦,根据电脑的情况去下载对应的python安装包,使用的是python3.的版本,除此之外还有python2 ,和python3是有区别的,但是本人对python2的了解不够深。

安装完环境后,建议大家安装一个python编译器,使用的是pycharm,免费版本的,网上也都有安装教程,挺简单的,而且官方出了汉化插件,可以在file-setting中搜索安装。

编译器也安装完毕后,请打开pycharm,然后我们创建一个project,在project下创建一个python file,建议取名字不要使用中文,创建成功后把代码复制过去,然后在该页面右键-运行(run),按理就可以跑了。

代码如下:

import turtle as t #as就是取个别名,后续调用的t都是turtle

from turtle import *

import random as r

import time




n =


speed("fastest") #定义速度

screensize(bg='black') #定义背景颜色,可以自己换颜色

left()

forward(3*n)

color("orange", "yellow")#定义最上端星星的颜色,外圈是orange,内部是yellow

begin_fill()

left)


for i in range(5): #画五角星

forward(n/5)

right) #五角星的角度

forward(n/5)

left() #继续换角度

end_fill()

right)


def drawlight():#定义画彩灯的方法

if r.randint(0, ) == 0:#如果觉得彩灯太多,可以把取值范围加大一些,对应的灯就会少一些

color('tomato')#定义第一种颜色

circle(6)#定义彩灯大小

elif r.randint(0,) == 1:

color('orange')#定义第二种颜色

circle(3)#定义彩灯大小

else:

color('dark green')#其余的随机数情况下画空的树枝



color("dark green")#定义树枝的颜色

backward(n*)

def tree(d, s):#开始画树

if d <= 0: return

forward(s)

tree(d-1, s*.8)

right)

tree(d-3, s*.5)

drawlight()#同时调用小彩灯的方法

right)

tree(d-3, s*.5)

right)

backward(s)

tree(, n)

backward(n/2)


for i in range):#循环画最底端的小装饰

a = - * r.random()

b = - * r.random()

up()

forward(b)

left()

forward(a)

down()

if r.randint(0, 1) == 0:

color('tomato')

else:

color('wheat')

circle(2)

up()

backward(a)

right()

backward(b)


t.color("dark red","red")#定义字体颜色

t.write("Merry Christmas",align ="center",font=("Comic Sans MS",,"bold"))#定义文字、位置、字体、大小



def drawsnow():#定义画雪花的方法

t.ht() #隐藏笔头,ht=hideturtle

t.pensize(2) #定义笔头大小

for i in range): #画多少雪花

t.pencolor("white") #定义画笔颜色为白色,其实就是雪花为白色

t.pu() #提笔,pu=penup

t.setx(r.randint(-,)) #定义x坐标,随机从-到之间选择

t.sety(r.randint(-,)) #定义y坐标,注意雪花一般在地上不会落下,所以不会从太小的纵座轴开始

t.pd() #落笔,pd=pendown

dens = 6 #雪花瓣数设为6

snowsize = r.randint(1,) #定义雪花大小

for j in range(dens): #就是6,那就是画5次,也就是一个雪花五角星

#t.forward(int(snowsize)) #int()取整数

t.fd(int(snowsize))

t.backward(int(snowsize))

#t.bd(int(snowsize)) #注意没有bd=backward,但有fd=forward,小bug

t.right(int/dens)) #转动角度


drawsnow()#调用画雪花的方法

t.done() # 完成,否则会直接关闭




转载:CSDN博主「Ding2langdang」
https://blog.csdn.net/Ding2langdang/article/details/

原文链接:,转发请注明来源!