Một giáng sinh an lành đang đến, là Coder bạn có thể tự thiết kế cho mình Noel bằng Python để tăng bạn bè hoặc người thân. Nếu bạn không có thời gian, có thể dùng các Code sưu tầm dưới đây. Mỗi Code Python Noel có một thiết kế riêng nhưng đều mang đặc điểm chung là có cây thông Noel với tuyết rơi.
Code cây thông Noel bằng Python sẽ sử dụng thư viện Turtle để vẽ, do đó bạn cần import Turtle vào nhé.
Nếu bạn vẫn chưa biết sử dụng Python hãy đọc Seri bài viết về Python trên AnonyViet để có kiến thức nền nhé. Sau đó bạn dễ dàng thực thi các Code python Merry Christmas bên dưới:
Vẽ cây thông Noel với vòng lặp For
Với kiến thức Python cơ bản, bạn có thể vẽ cây thông Noel với vòng lặp For cực kỳ đơn giản. Đây là Full Code:
# Function to draw a Christmas tree with a given height def draw_tree(height): # Loop through each row of the tree for i in range(1, height + 1): # Print the spaces before the asterisks on each row for j in range(height - i): print(" ", end="") # Print the asterisks on each row for j in range(2 * i - 1): print("*", end="") # Move to the next line print() # Call the function to draw a tree with a height of 5 draw_tree(5)
Ở dòng cuối chỗ: draw_tree(5)
, thay số 5 thành số khác để thay đổi chiều cao của cây thông Noel bằng Python nhé.
Kết quả nè:
* *** ***** ******* *********
Code python cây thông Noel với bầu trời đầy sao
from turtle import * from random import randint def create_rectangle(turtle, color, x, y, width, height): turtle.penup() turtle.color(color) turtle.fillcolor(color) turtle.goto(x, y) turtle.pendown() turtle.begin_fill() turtle.forward(width) turtle.left(90) turtle.forward(height) turtle.left(90) turtle.forward(width) turtle.left(90) turtle.forward(height) turtle.left(90) # fill the above shape turtle.end_fill() # Reset the orientation of the turtle turtle.setheading(0) def create_circle(turtle, x, y, radius, color): oogway.penup() oogway.color(color) oogway.fillcolor(color) oogway.goto(x, y) oogway.pendown() oogway.begin_fill() oogway.circle(radius) oogway.end_fill() BG_COLOR = "#0080ff" oogway = Turtle() # set turtle speed oogway.speed(2) screen = oogway.getscreen() # set background color screen.bgcolor(BG_COLOR) # set tile of screen screen.title("Merry Christmas") # maximize the screen screen.setup(width=1.0, height=1.0) y = -100 # create tree trunk create_rectangle(oogway, "red", -15, y-60, 30, 60) # create tree width = 240 oogway.speed(10) while width > 10: width = width - 10 height = 10 x = 0 - width/2 create_rectangle(oogway, "green", x, y, width, height) y = y + height # create a star a top of tree oogway.speed(1) oogway.penup() oogway.color('yellow') oogway.goto(-20, y+10) oogway.begin_fill() oogway.pendown() for i in range(5): oogway.forward(40) oogway.right(144) oogway.end_fill() tree_height = y + 40 # create moon in sky # create a full circle create_circle(oogway, 230, 180, 60, "white") # overlap with full circle of BG color to make a crescent shape create_circle(oogway, 220, 180, 60, BG_COLOR) # now add few stars in sky oogway.speed(10) number_of_stars = randint(20,30) # print(number_of_stars) for _ in range(0,number_of_stars): x_star = randint(-(screen.window_width()//2),screen.window_width()//2) y_star = randint(tree_height, screen.window_height()//2) size = randint(5,20) oogway.penup() oogway.color('white') oogway.goto(x_star, y_star) oogway.begin_fill() oogway.pendown() for i in range(5): oogway.forward(size) oogway.right(144) oogway.end_fill() # print greeting message oogway.speed(1) oogway.penup() msg = "Merry Christmas em iuuuuuuuu" oogway.goto(0, -200) # y is in minus because tree trunk was below x axis oogway.color("white") oogway.pendown() oogway.write(msg, move=False, align="center", font=("Arial", 15, "bold")) oogway.hideturtle() screen.mainloop()
Thiệp Giáng sinh người tuyết bằng Python
Code này sẽ vẽ người tuyết và có tuyết rơi với dòng chữ tùy ý. Bạn có thể dùng công cụ soạn thảo Python để đổi lại tên của mình theo ý muốn. Hãy convert python ra exe và gửi cho crush chắc hẵn người ấy sẽ rất yêu bạn đấy.
import turtle import random import time width = height = 500 window = turtle.Screen() window.setup(width, height) window.bgcolor("sky blue") window.title("Happy Holidays") snowball_rate = 1, 3 snowball_size = 5, 15 wind_change = 1, 5 max_wind = 3 # Create all circle-shaped objects def make_circle(turtle_name, x, y, size, colour): turtle_name.color(colour) turtle_name.penup() turtle_name.setposition(x, y) turtle_name.dot(size) # Create new snowballs and store in list list_of_snowballs = [] def make_snowball(): snowball = turtle.Turtle() snowball.color("white") snowball.penup() snowball.setposition(random.randint(-2 * width, width / 2), height / 2) snowball.hideturtle() snowball.size = random.randint(*snowball_size) list_of_snowballs.append(snowball) def move_snowball(turtle_name, falling_speed=1, wind=0): turtle_name.clear() turtle_name.sety(turtle_name.ycor() - falling_speed) if wind: turtle_name.setx(turtle_name.xcor() + wind) turtle_name.dot(turtle_name.size) # Snowman: body snowman = turtle.Turtle() x_position = 0 y_positions = 75, 0, -100 size = 75 for y in y_positions: make_circle(snowman, x_position, y, size, "white") size = size * 1.5 # Snowman: buttons button_seperation = 25 button_y_positions = [y_positions[1] - button_seperation, y_positions[1], y_positions[1] + button_seperation] for y in button_y_positions: make_circle(snowman, x_position, y, 10, "black") # Snowman: eyes y_offset = 10 x_seperation = 15 for x in x_position - x_seperation, x_position + x_seperation: make_circle(snowman, x, y_positions[0] + y_offset, 20, "green") make_circle(snowman, x, y_positions[0] + y_offset, 10, "black") # Snowman: nose snowman.color("orange") snowman.setposition(x_position - 10, y_positions[0] - y_offset) snowman.shape("triangle") snowman.setheading(200) snowman.turtlesize(0.5, 2.5) window.tracer(0) # Ground grass = turtle.Turtle() grass.fillcolor("forest green") grass.penup() grass.setposition(-width / 2, -height / 2) grass.begin_fill() for _ in range(2): grass.forward(width) grass.left(90) grass.forward(70) grass.left(90) grass.end_fill() ground = turtle.Turtle() for x in range(int(-width / 2), int(width / 2), int(width / 200)): make_circle(ground, x, -180, random.randint(5, 20), "white") text = turtle.Turtle() text.color("red") text.penup() text.setposition(-100, 170) #chữ thứ 1 text.write("Happy Holidays", font=("Apple Chancery", 30, "bold"), align="center") text.setposition(130, 140) text.color("dark green") #chữ thứ 3 text.write("AnonyViet", font=("Avenir", 30, "bold"), align="right") text.color("black") #chữ thứ 4 text.write(".com", font=("Avenir", 30, "normal"), align="left") text.setx(50) #chữ thứ 2 text.write("from", font=("Apple Chancery", 20, "bold"), align="right") text.hideturtle() time_delay = 0 start_time = time.time() wind = 0 wind_delay = 5 wind_timer = time.time() wind_step = 0.1 while True: if time.time() - start_time > time_delay: make_snowball() start_time = time.time() time_delay = random.randint(*snowball_rate) / 10 for snowball in list_of_snowballs: move_snowball(snowball, wind=wind) if snowball.ycor() < -height / 2: snowball.clear() list_of_snowballs.remove(snowball) if time.time() - wind_timer > wind_delay: wind += wind_step if wind >= max_wind: wind_step = -wind_step elif wind <= 0: wind_step = abs(wind_step) wind_timer = time.time() wind_delay = random.randint(*wind_change) / 10 window.update() turtle.done()
Code Python cây thông nodel có tuyết rơi
Code Python bên dươi sẽ vẽ một cây thông Noel với các đèn xunh quanh và hiệu ứng tuyết rơi. Bạn cũng có thể thay đổi các dòng chữ trong hình thành chữ mình thích để gửi cho bạn bè và người nhân dịp giáng sinh.
import turtle import random web_based = True # web_based = False if web_based: i_scale = 1.5 snow_size = 4 snow_speed = 3 draw_speed = 10 rate_of_snow_balls = 6 else: i_scale = 1 snow_size = 7 snow_speed = 2 draw_speed = 10 rate_of_snow_balls = 2 width = 600 / i_scale height = 600 / i_scale screen = turtle.Screen() if not web_based: screen.setup(width, height) screen.title("Happy Christmas from AnonyViet") # screen.tracer(0) def make_triangle(x, y, size, outline, triangle): triangle.hideturtle() triangle.penup() triangle.setposition(x, y) triangle.pensize(3) if outline: triangle.pendown() if not outline: triangle.fillcolor("forest green") triangle.begin_fill() triangle.setposition(x + size, y - size) triangle.setposition(x - size, y - size) triangle.setposition(x, y) if not outline: triangle.end_fill() def make_ball(x, y, size, colour, ball): ball.hideturtle() ball.penup() ball.setposition(x, y) ball.color(colour) ball.dot(size) def move_snow(snow): position = snow.position() snow.clear() make_ball(position[0], position[1] - snow_speed, snow_size, "white", snow) def snow_fall(): rand_make_snow = random.randint(0, rate_of_snow_balls) if rand_make_snow == 0: snow = turtle.Turtle() snow.hideturtle() snow.penup() list_of_snow.append(snow) make_ball(random.randint(-width / 2, width / 2), width / 2, snow_size, "white", snow) for snow in list_of_snow: move_snow(snow) if snow.position()[1] <= -width / 2: snow.clear() list_of_snow.remove(snow) del snow screen.update() # make tree (main part) triangle_1 = turtle.Turtle() triangle_1.speed(draw_speed) outline = True for repeat in range(2): make_triangle(0, width / 3, width / 6, outline, triangle_1) make_triangle(0, width / 4, width / 4, outline, triangle_1) make_triangle(0, width / 8, width / 3, outline, triangle_1) outline = False screen.tracer(0) stem = turtle.Turtle() # white snowy ground stem.penup() stem.hideturtle() stem.setposition(-width, -width / 3) stem.color("white") stem.begin_fill() stem.setposition(width, -width / 3) stem.setposition(width, -width / 2) stem.setposition(-width, -width / 2) stem.end_fill() screen.update() # tree stem stem.color("brown") stem.setposition(-width / 30, -width / 4.8) screen.tracer(1) stem.pendown() stem.begin_fill() stem.setposition(width / 30, -width / 4.8) stem.setposition(width / 30, -3 * width / 8) stem.setposition(-width / 30, -3 * width / 8) stem.setposition(-width / 30, -width / 4.8) stem.end_fill() screen.bgcolor("sky blue") # decorations: balls screen.tracer(2) ball_colours = ["red", "red", "red", "gold", "violet", "white"] ball_positions = [(-width / 30, width / 4), (3 * width / 40, width / 5), (-width / 20, width / 6), (width / 30, width / 9), (-width / 12, width / 30), (width / 12, width / 24), (-width / 9, -width / 20), (width / 8, -width / 15), (0, -width / 6), (-width / 6, -width / 6), (width / 5, -width / 7.5) ] for position in ball_positions: make_ball(position[0], position[1], 20 / i_scale, random.choice(ball_colours), turtle.Turtle()) screen.update() # snow is falling… list_of_snow = [] screen.tracer(0) for _ in range(50): snow_fall() text_1 = turtle.Turtle() text_1.hideturtle() text_1.penup() text_1.setposition(0, width / 2.7) text_1.color("red") # text_1.write("Merry Christmas", font=("Georgia", 30, "bold"), align="center") text_1.write("Merry Christmas", font=("Apple Chancery", max(int(30 / i_scale), 15), "bold"), align="center") for _ in range(25): snow_fall() text_1.setposition(width / 60, -width / 2.18) text_1.color("black") # text_1.write("from", font=("Georgia", 20, "normal"), align="center") text_1.write("from", font=("Apple Chancery", max(int(20 / i_scale), 10), "normal"), align="center") if web_based: text_1.setposition(width / 6, -width / 2.14) else: text_1.setposition(width / 7.5, -width / 2.14) text_1.color("forest green") # text_1.write("code", font=("Arial", 30, "normal"), align="center") text_1.write("code", font=("Avenir", max(int(30 / i_scale), 15), "normal"), align="center") # text_1.setposition(150, -280) if web_based: text_1.setposition(width / 2.95, -width / 2.14) else: text_1.setposition(width / 3.85, -width / 2.14) text_1.color("black") # text_1.write("today", font=("Arial", 30, "normal"), align="center") text_1.write("today", font=("Avenir", max(int(30 / i_scale), 15), "normal"), align="center") if web_based: for _ in range(200): snow_fall() else: while True: snow_fall() turtle.done()