Python绘制随机彩色蟒蛇方法浅析

今天老师提出了一个问题就是用turtle库绘制随机颜色的蟒蛇 并且每段的颜色都是不一样的 所以我写了这段代码 这段代码的思路是把不同颜色通过字典的方式存起来 通过随机数库就可以随机生成对应的key来调用这些颜色从而实现随机颜色的效果

import turtle
import random#导入随机数模块实现随机颜色的功能
#把不同颜色用字典的方式储存 key为1到6的整数
colors = {1:'blue',2:'yellow',3:'red',4:'purple',5:'black',6:'green'}
turtle.setup(650,350,200,200)
turtle.pu()
turtle.fd(-250)
turtle.pendown()
turtle.width(25)
turtle.seth(-40)
for i in range(4):
    a = random.randrange(1,7)#获取随机数并赋值给a
    turtle.pencolor(colors[a])#通过索引的方式选择颜色(颜色是随机的)
    turtle.circle(40,80)
    a = random.randrange(1,7)#获取随机数并赋值给a
    turtle.pencolor(colors[a])#通过索引的方式选择颜色(颜色是随机的)
    turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()

这个是运行结果

不过这样子把一个一个颜色存进去太过麻烦 而且颜色太少了只局限于黑,绿 蓝,红,黄这几种颜色 没有达到随机颜色的目的 所以我加以改进 代码如下

import turtle
import random  # 导入随机数模块实现随机颜色的功能
turtle.colormode(255)  # 把颜色表示法取值的模式从[0-1]之间改成[0-255]
#定义一个生成颜色的模块
def colorchoose():
    a, b, c = random.randrange(0, 256), random.randrange(0, 256), random.randrange(0, 256)
    color = (a, b, c)
    return color   #返回值是一个rgb颜色
turtle.setup(650, 350, 200, 200)
turtle.pu()
turtle.fd(-250)
turtle.pendown()
turtle.width(25)
turtle.seth(-40)
for i in range(4):
    turtle.pencolor(colorchoose())  # 调用模块 随机生成rgb颜色
    turtle.circle(40, 80)
    turtle.pencolor(colorchoose())  # 调用模块 随机生成rgb颜色
    turtle.circle(-40, 80)
turtle.circle(40, 80 / 2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2 / 3)
turtle.done()

这段代码里的颜色变换直接取决于rgb颜色的三个参数 所以我让他们变为随机的 范围定在0-255(注:python里的rgb颜色参数模式默认是0-1 用turtle的话需要用turtle.colormode(255) 语句把模式转换成0-255否则会报错) 定义了一个模块的原因是因为不停通过赋值的方式改变rgb的三个参数是在太麻烦 所以通过调用具有生成随机颜色功能的模块的方式更加省力 以下是运行结果

看,随机颜色的功能是不是实现了?

到此这篇关于Python绘制随机彩色蟒蛇方法浅析的文章就介绍到这了,更多相关Python绘制彩色蟒蛇内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现七彩蟒蛇绘制实例代码

    本文主要研究的是Python编程turtle的实例,绘制一个七彩蟒蛇..具体如下. 第2周的课后练习里,有一道题目,要求修改"蟒蛇绘制"程序,对Python 蟒蛇的每个部分采用不同颜色,绘制一条彩色蟒蛇. 原蟒蛇绘制程序如下: 因为刚开始学Python,不太熟悉,所以自己加了一些注释,方便理解. #蟒蛇绘制 import turtle def drawSnake(rad,angle,len,neckrad): for i in range(len): turtle.circle(rad

  • Python绘制随机彩色蟒蛇方法浅析

    今天老师提出了一个问题就是用turtle库绘制随机颜色的蟒蛇 并且每段的颜色都是不一样的 所以我写了这段代码 这段代码的思路是把不同颜色通过字典的方式存起来 通过随机数库就可以随机生成对应的key来调用这些颜色从而实现随机颜色的效果 import turtle import random#导入随机数模块实现随机颜色的功能 #把不同颜色用字典的方式储存 key为1到6的整数 colors = {1:'blue',2:'yellow',3:'red',4:'purple',5:'black',6:'

  • python绘制随机网络图形示例

    如下所示: #Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py # 作 者:孔云 #问题描述: #问题分析:.代码如下: import networkx as ne #导入建网络模型包,命名ne import matplotlib.pyplot as mp #导入科学绘图包,命名mp #erdos renyi graphy rg=ne.erdos_renyi_graph(20,0.8) ps=ne.shell_layout

  • Python生成随机数组的方法小结

    本文实例讲述了Python生成随机数组的方法.分享给大家供大家参考,具体如下: 研究排序问题的时候常常需要生成随机数组来验证自己排序算法的正确性和性能,今天把Python生成随机数组的方法稍作总结,以备以后查看使用. 一.使用random模块生成随机数组 python的random模块中有一些生成随机数字的方法,例如random.randint, random.random, random.uniform, random.randrange,这些函数大同小异,均是在返回指定范围内的一个整数或浮点

  • Python终端输出彩色字符方法详解

    有时候需要在终端显示彩色的字符,即根据需要显示不同颜色的字符串,比如我们要在终端打印一行错误提示信息,要把它弄成红色的.其实这个在Python中很好实现,使用转义序列来实现不同颜色的显示,转义序列以ESC开头,它的ASCII码八进制为 \033.显示格式为:\033[显示方式;前景色;背景色m 用这种原生的转义序列输出,在linux下完全支持,但是在windows下确存在兼容问题,比如在win10下可以正常显示颜色,在win7下确不支持.因此可以使用python标准库提供的colorama模块

  • Python绘制分类图的方法

    前言 遥感影像分类图一般为特定数值对应一类地物,用Python绘制时,主要在颜色的映射和对应的图例生成. plt.matplotlib.colors.ListedColormap支持自定义颜色.matplotlib.patches mpatches对象可以生成一个矩形对象,控制其颜色和地物类型的颜色对应就可以生成地物分类的图例了.具体用法可以自行Google和百度.下面给出一个模拟地物分类数据的可视化例子. 代码 import numpy as np import matplotlib.pypl

  • python绘制简单直方图的方法

    直方图,又称质量分布图,是一种统计报告图,由一系列高度不等的纵条或线段表示数据分布情况.用横轴表示数据类型,纵轴表示分布情况.直方图是数值数据分布的精确图形表示.绘制连续性的数据,展示一组或多组数据的分布状况. 直方图的绘制和条形图有些相似,需要把plt.bar()修改成plt.hist(),更改图形的拟合方式,即可绘制直方图.例如你获取到了250部电影的数量,他们的时长都在80-140分钟,如何呈现电影的时长分布情况呢? 老规矩,上代码: '''     组数=极差/组距 ''' from m

  • Python绘制简单散点图的方法

    散点图,顾名思义是一些散乱的点构成的图.那么这些散乱的点有什么作用呢?散点图通过用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式. 绘制方法大体上与折线图一致,只是对点不需要去拟合折线,使用plt.scatter()函数替代plt.plot()即可.例如绘制三月份与十一月份的气温散点图,代码如下: '''     绘制散点图,要点:plt.scatter(x,y) ''' # 导入模块 from matplotlib import pyplot a

  • python绘制横竖条形图的方法

    条形图是用宽度相同的条形的高度或长短来表示数据多少的图形.用来绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差异. 绘制一个简单的条形图与折线图的绘制方法也是大体一致,只需要把拟合方式plt.plot()修改为plt.bar()即可.例如绘制2017年内地电影票房前20的电影和电影票房数据,如何对数据进行可视化分析呢?无疑是进行条形图分析. 老规矩,上代码: # coding =utf-8 from matplotlib import pyplot as plt from matpl

  • python绘制棉棒图的方法详解

    目录 案例 参数 总结 用法: matplotlib.pyplot.stem(*args, linefmt=None, markerfmt=None, basefmt=None, bottom=0, label=None, use_line_collection=True, orientation='vertical', data=None) 参数说明 参数   *args x,y,x—棉棒的x轴基线的取值范围,y—棉棒的长度 linefmt 棉棒的样式,{‘-’,’–’,’:’,’-.’},包

  • Python生成随机验证码的两种方法

    使用python生成随机验证码的方法有很多种,今天小编给大家分享两种方法,大家可以灵活运用这两种方法,设计出适合自己的验证码方法. 方法一: 利用range方法,对于range方法不清楚的同学,请参考文章<python开发的range()函数> # -*- coding: utf-8 -*- import random def generate_verification_code(len=6): ''' 随机生成6位的验证码 ''' # 注意: 这里我们生成的是0-9A-Za-z的列表,当然你

随机推荐