python रंगों का चयन करने के लिए यादृच्छिक का उपयोग कैसे करें




random colors (3)

अतिरिक्त आयात का उपयोग किए बिना यह काफी सरल है:

turtle.colormode(255) # sets the color mode to RGB

R = random.randrange(0, 256, 100) # last value optional (step) 
B = random.randrange(0, 256)
G = random.randrange(0, 256)

# using step allows more control if needed
# for example the value of `100` would return `0`, `100` or `200` only

Rocket.color(R, G, B) ## randomized from values above

( 200 , 255 , 23 ) के यादृच्छिक मूल्यों का उपयोग करना:

संपादित करें : "क्या मैं अगले एक के लिए कछुआ.कलरोड () को रॉकेट। कोलमोड () में बदल दूंगा?"

जिस तरह से मैं यह करने की सिफारिश करूंगा वह एक फ़ंक्शन बनाने के लिए होगा:

def drawColor():

    turtle.colormode(255)

    R = random.randrange(0, 256)
    B = random.randrange(0, 256)
    G = random.randrange(0, 256)

    return R, G, B

Rocket.color(drawColor())

इस तरह से आप आह्वान कर सकते हैं drawColor() कभी भी drawColor() आप एक नया रंग चाहते हैं।

अब जब आपके पास अपनी ड्राइंग के लिए रंगों को यादृच्छिक बनाने की मूल बातें हैं, तो आप कुछ भयानक दिखने वाले परिणामों के लिए मूल्यों के साथ काफी रचनात्मक हो सकते हैं (अपनी पसंद के अनुसार पूर्णांक समायोजित करें):

#!/usr/bin/python

import turtle, math, random, time

def drawColor(a, b, o):
    turtle.colormode(255)
    R = random.randrange(a, b, o) # last value is step (optional)
    B = random.randrange(a, b, o)
    G = random.randrange(a, b, o)
    # print(R, G, B)
    return R, G, B

def drawRocket(offset):
    Rocket = turtle.Turtle()
    Rocket.speed(0)
    Rocket.color(drawColor(20, 100, 1)) # start (0-256), end (0-256), offset 
    rotate=int(random.randrange(90))
    drawSpecial(Rocket,random.randrange(0, 10), offset)

def drawCircles(t,size):
    for i in range(30):
        t.circle(size)
        size = size - 20

def drawSpecial(t,size,repeat):
    for i in range(repeat):
        drawCircles(t,size)
        t.right(360/repeat)

def drawMain(x, y):
    wn = turtle.Screen()
    wn.bgcolor(drawColor(0, 20, 2))

    for i in range(3): # iterations
        drawRocket(x)
        x+=y
        # print(x)

drawMain(2, 10) # offset, step
input("Press ENTER to exit")

मैं और अधिक जानने के लिए एक छोटा सा कार्यक्रम बनाने की कोशिश कर रहा हूं, लेकिन जब यह यादृच्छिक का उपयोग करने की बात आती है तो मैं फंस जाता हूं।

यहाँ एक उदाहरण दिया जा रहा है कि मैं https://trinket.io/Python/3338c95430 से क्या जा रहा हूँ

मैंने random.randrange, random.choice, random.random का उपयोग करते हुए उनके लिए सब कुछ के साथ प्रयास किया है और यह एक त्रुटि कोड कहता है कि यादृच्छिक में रैंड्रेंज, पसंद, या यादृच्छिक का एक फ़ंक्शन नहीं है।

import turtle, math, random, time

wn = turtle.Screen()
wn.bgcolor('grey')
Rocket = turtle.Turtle()
Rocket.speed(0)
Rocket.color('red') ## this is what i want to randomize
rotate=int(90)

def drawCircles(t,size):
    for i in range(15):
        t.circle(size)
        size=size-10
def drawSpecial(t,size,repeat):
    for i in range(repeat):
        drawCircles(t,size)
        t.right(360/repeat)
drawSpecial(Rocket,100,10)

आखिरकार मैं आकार और प्लेसमेंट जैसी अधिक यादृच्छिक प्रक्रियाओं को लागू करना चाहूंगा, लेकिन अभी मैं सिर्फ रंग पर ध्यान केंद्रित कर रहा हूं।


256 रेंज के भीतर यादृच्छिक रंग (आरजीबी मानकर) उत्पन्न करने का एक तरीका np.random.choice का उपयोग np.random.choice

import numpy as np

color = tuple(np.random.choice(range(256), size=3))
print(color)

Jpmc26 की टिप्पणी के अनुसार, Numpy की आवश्यकता के बिना एक और तरीका है कि आप random.choices का उपयोग कर random.choices यदि आप पायथन 3.6+ का उपयोग कर रहे हैं। यह शायद एक बेहतर विकल्प है क्योंकि केवल 3 यादृच्छिक पूर्णांक बनाने के लिए Numpy को आयात करना ओवरकिल है।

import random

color = tuple(random.choices(range(256), k=3))
print(color)

उदाहरण यादृच्छिक RGB आउटपुट

(२४ (,,, २,)

(१६५, २४ 24, १५०)

(188, 29, 135)


random.choice एक अनुक्रम से एक यादृच्छिक तत्व देता है, बस इसे उन मानों के साथ एक सूची पास करें जिन्हें आप चुनना चाहते हैं:

rand_color = random.choice(['blue', 'red'])
Rocket.color(rand_color)




colors