Python生成圣诞节贺卡-代码案例剖析【第18篇—python圣诞节系列】

文章目录

  • ❄️Python制作圣诞节贺卡
    • 🐬展示效果
    • 🌸代码
    • 🌴代码剖析
  • ❄️Python制作圣诞树贺卡
    • 🐬展示效果
    • 🌸代码
    • 🌴代码剖析
    • 🌸总结
  • 🎅圣诞节快乐!

❄️Python制作圣诞节贺卡

🐬展示效果

在这里插入图片描述

🌸代码

import turtle
import random
import time
width = 600
height = 500
window = turtle.Screen()
window.setup(width, height)
window.bgcolor("sky blue")
window.title("Merry Christmas")
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)
text.write("Merry Christmas", font=(
    "Apple Chancery", 30, "bold"), align="center")
text.setposition(130, 140)
text.color("dark green")
text.write("Dao", font=("Avenir", 30, "bold"), align="right")
text.color("black")
text.write("Bi", font=("Avenir", 30, "normal"), align="left")
text.setx(50)
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()

🌴代码剖析

这段Python代码使用Turtle图形库创建了一个简单的动画,包括下雪、雪人和圣诞主题的风景。以下是对代码的逐步分析:

  1. 导入库:

    import turtle
    import random
    import time
    
    • turtle:提供对象导向和过程导向的海龟图形基元。
    • random:生成随机数。
    • time:提供各种与时间相关的函数。
  2. 设置Turtle窗口:

    width = 600
    height = 500
    window = turtle.Screen()
    window.setup(width, height)
    window.bgcolor("sky blue")
    window.title("Merry Christmas")
    
    • 设置一个具有指定宽度、高度、背景颜色和标题的窗口。
  3. 定义雪球参数:

    snowball_rate = 1, 3
    snowball_size = 5, 15
    wind_change = 1, 5
    max_wind = 3
    
    • 用于控制降雪速率、雪球大小、风力变化和最大风速的参数。
  4. 定义函数:

    • make_circle:在指定位置创建一个圆形对象。
    • make_snowball:创建一个新的雪球海龟并将其添加到列表中。
    • move_snowball:移动雪球海龟,根据下降速度和风力更新其位置。
  5. 创建雪人:

    snowman = turtle.Turtle()
    x_position = 0
    y_positions = 75, 0, -100
    size = 75
    
    • 使用圆形表示雪人的身体、按钮、眼睛,以及三角形表示鼻子。
  6. 创建地面:

    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()
    
    • 创建一个绿色的地面以及一些表示雪花的白色圆圈。
  7. 创建文本:

    text = turtle.Turtle()
    text.color("red")
    text.penup()
    text.setposition(-100, 170)
    text.write("Merry Christmas", font=("Apple Chancery", 30, "bold"), align="center")
    
    • 创建显示"圣诞快乐"的文本。
  8. 设置时间和风:

    time_delay = 0
    start_time = time.time()
    wind = 0
    wind_delay = 5
    wind_timer = time.time()
    wind_step = 0.1
    
    • 设置时间和风力的参数。
  9. 主循环:

    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图形库,创建了一个简单而有趣的圣诞主题动画。以下是我的一些心得:

  1. Turtle图形库: Turtle是一个很好的用于学习编程和图形设计的工具。它提供了简单易懂的API,适合初学者入门,同时也可以创建出具有趣味性的图形。

  2. 动画设计: 通过循环和时间控制,代码实现了雪球的不断下落、雪人的绘制,以及风力的随机变化。这种动态的设计增加了视觉上的趣味性。

  3. 可读性良好: 代码的结构清晰,函数的命名恰当,使得整个代码可读性很好。这对于理解代码和后续维护非常重要。

  4. 创意表达: 通过在屏幕上创建雪人、雪球和圣诞主题的背景,代码成功地表达了圣诞节的氛围,同时还添加了一些有趣的元素,比如风力的变化。

  5. 实践编程技能: 通过编写和理解这段代码,可以学到关于随机数生成、时间控制、动画设计等方面的编程技能。这对于培养实际的编程经验很有帮助。

总体而言,这段代码是一个有趣且教育性的例子,展示了如何使用Python和Turtle图形库创建简单的动画。

❄️Python制作圣诞树贺卡

🐬展示效果

在这里插入图片描述

🌸代码

# -*- coding: utf-8 -*-
import turtle as T
import random
import time
	
# 绘图区域
t = T.Turtle()
# 画布大小
w = T.Screen()
t.hideturtle()  # 隐藏画笔
t.getscreen().tracer(5, 0)
w.screensize(bg='maroon')
t.left(90)
t.up()
t.forward(280)
t.down()
t.pensize(3)

# 画五角星
n=100
t.color("orange","yellow")
t.begin_fill()
t.left(126)

for i in range(5):
	t.forward(n/5)
	t.right(144)
	t.forward(n/5)
	t.left(71)
t.end_fill()
t.left(60)
t.pensize(8)
t.forward(60)
t.right(20)
t.right(116)
t.pensize(6)

# 画树冠
t.color('dark green')
n=130

for i in range(6):
	time.sleep(0.5)
	a=1+i/2
	t.begin_fill()
	t.left(90)
	t.forward(n*a*0.707)
	t.left(135)
	t.forward(n*a)
	t.left(135)
	t.forward(n*a*0.707)
	t.end_fill()
	t.up()
	t.left(90)
	t.forward(n*a*0.707/3)
	t.left(135)
	t.forward(n*a/6)
	t.left(135)
	t.down()

# 画树干	
t.up()
t.right(135)
t.forward(30)
t.right(90)
t.forward(157)
t.down()
t.color('saddlebrown')
t.begin_fill()
t.forward(80)
t.right(90)
t.forward(45)
t.right(90)
t.forward(80)
t.right(90)
t.forward(45)
t.end_fill()

t.up()
t.backward(45)
t.right(90)
t.backward(470)
t.down()

# 画灯
def light(l,t):
	t.pensize(3)
	colors = ["magenta","darkorange","red","blue"]
	for i in range(l):
		time.sleep(0.2)
		b = 70+16*i
		a = b/2*random.randint(-100,100)/100
		t.up()
		t.forward(b)
		t.left(90)
		t.forward(a)
		t.down()
		t.color("lightyellow",colors[i%4])
		t.begin_fill()
		t.circle(10)
		t.end_fill()
		t.up()
		t.backward(a)
		t.right(90)
		t.backward(b)
		t.down()
	t.pensize(1)

# 画雪花
def snow(m,t):
    for i in range(m):
        a = 400 - 800 * random.random()
        b = 600 - 800 * random.random()
        t.up()
        t.forward(b)
        t.left(90)
        t.forward(a)
        t.down()
        t.color('white')
        t.begin_fill()
        t.circle(1)
        t.end_fill()
        t.up()
        t.backward(a)
        t.right(90)
        t.backward(b)

light(24,t)
snow(600, t)

# 文字
t.goto(-200,200)
my_word = ("Merry Christmas")
t.write(my_word,font=("Edwardian Script ITC",40,"bold"))
time.sleep(0.3)
t.goto(-100,50)
my_word = ("and")
t.write(my_word,font=("Edwardian Script ITC",50,"bold"))
time.sleep(0.3)
t.goto(-150,-100)
my_word = ("Happy New Year")
t.write(my_word,font=("Edwardian Script ITC",40,"bold"))

time.sleep(0.3)
t.clear()
w.screensize(bg='black')
t.goto(-200,0)
my_word = ("Prudued by: Justine")
t.write(my_word,font=("Edwardian Script ITC",45,"bold"))
t.goto(0,-100)
my_word = ("Dec. 24th, 2019")
t.write(my_word,font=("Edwardian Script ITC",20,"bold"))

time.sleep(5)

🌴代码剖析

这段代码使用Python的Turtle图形库绘制了一个圣诞树、五角星、灯光、雪花以及一些文字,并在最后展示了制作的日期和制作者信息。以下是对代码的简要分析:

  1. 设置绘图环境:

    t = T.Turtle()
    w = T.Screen()
    t.hideturtle()
    t.getscreen().tracer(5, 0)
    w.screensize(bg='maroon')
    
    • 创建Turtle对象和Screen对象,设置画笔属性和背景颜色。
  2. 绘制五角星:

    n = 100
    t.color("orange", "yellow")
    t.begin_fill()
    t.left(126)
    for i in range(5):
        t.forward(n / 5)
        t.right(144)
        t.forward(n / 5)
        t.left(71)
    t.end_fill()
    
    • 使用Turtle绘制一个填充的五角星。
  3. 绘制圣诞树的树冠:

    t.color('dark green')
    n = 130
    for i in range(6):
        # 逐层绘制树冠
    
    • 循环绘制树冠的层次,根据层次逐渐增大,绘制成树状。
  4. 绘制圣诞树的树干:

    t.up()
    t.right(135)
    t.forward(30)
    t.right(90)
    t.forward(157)
    t.down()
    t.color('saddlebrown')
    t.begin_fill()
    t.forward(80)
    t.right(90)
    t.forward(45)
    t.right(90)
    t.forward(80)
    t.right(90)
    t.forward(45)
    t.end_fill()
    
    • 绘制树干。
  5. 绘制灯光:

    def light(l, t):
        # 绘制一串灯光
    
    • 定义了一个函数,用于绘制一串灯光,每个灯光的颜色随机。
  6. 绘制雪花:

    def snow(m, t):
        # 绘制雪花
    
    • 定义了一个函数,用于绘制雪花,雪花的位置和数量随机。
  7. 展示文字信息:

    t.goto(-200, 200)
    my_word = ("Merry Christmas")
    t.write(my_word, font=("Edwardian Script ITC", 40, "bold"))
    
    • 在特定位置展示文字,包括"Merry Christmas"和"Happy New Year"等。
  8. 展示制作信息:

    t.goto(-200, 0)
    my_word = ("Produced by: Justine")
    t.write(my_word, font=("Edwardian Script ITC", 45, "bold"))
    
    • 在屏幕中央展示代码的制作者信息和日期。
  9. 等待5秒后清空画布:

    time.sleep(5)
    t.clear()
    w.screensize(bg='black')
    
    • 在展示信息后等待5秒钟,然后清空画布并更改背景颜色。
  10. 代码注释: 代码中添加了注释,使得代码更易读、易理解。

这段代码通过Turtle图形库展示了一个简单而有趣的圣诞主题图形,并且通过文字展示了制作者信息和日期。

这段代码使用Turtle图形库绘制了一个富有圣诞氛围的图形,包括五角星、圣诞树、灯光和雪花等元素。以下是我的心得:

  1. 创意丰富: 代码展示了作者对于圣诞节的创意和想象力。通过使用Turtle绘制五角星和树形,以及添加灯光和雪花,使整个图形充满了节日的氛围。

  2. 图形效果: 通过合理选择颜色、形状和绘制顺序,成功地绘制出了富有立体感的圣诞树,五角星的设计也很有特色。同时,通过随机颜色的灯光和雪花,增加了视觉上的多样性。

  3. 动态效果: 使用Turtle的tracer函数以及time.sleep函数,使得图形的绘制过程呈现出一定的动态效果。例如,逐层绘制圣诞树的树冠,以及依次点亮的灯光,都使图形看起来更生动。

  4. 字体选择: 通过选择不同的字体(“Edwardian Script ITC”),成功地展示了"Merry Christmas"和"Happy New Year"等文本,使得图形更具节日氛围。

  5. 清晰结构: 代码结构相对清晰,模块化程度较高,使用函数对不同元素进行绘制,提高了代码的可读性和可维护性。

  6. 创作者信息: 最后展示了制作者信息和日期,这是一个很好的方式来为自己的作品留下标记,并向其他人展示制作者的身份。

总体而言,这段代码不仅仅是一个简单的图形绘制,更是通过细致的设计和创意,成功地表达了圣诞节的欢乐氛围。同时,展示了Turtle图形库的灵活性和简便性。

🌸总结

这段代码通过使用Python的Turtle图形库,成功绘制了一个富有创意和节日氛围的圣诞主题图形。以下是对整体代码的总结:

  1. 图形元素:

    • 通过Turtle绘制了五角星、圣诞树、灯光、雪花等图形元素,展现了浓厚的圣诞节氛围。
    • 使用tracer函数和time.sleep函数创造了动态效果,使得图形呈现出逐步绘制的过程。
  2. 色彩和形状:

    • 巧妙选择了颜色,如树冠的深绿色、灯光的不同随机颜色,以及雪花的白色,增添了视觉上的多样性。
    • 圣诞树的形状通过逐层绘制和旋转,成功表现出树状结构,五角星的设计独特。
  3. 函数的使用:

    • 合理使用函数对不同元素进行绘制,提高了代码的模块化和可读性。
    • 分别封装了绘制灯光和雪花的函数,增加了代码的结构清晰度。
  4. 文本展示:

    • 使用了不同的字体和字号,成功地展示了"Merry Christmas"和"Happy New Year"等文本信息,使图形更具节日氛围。
    • 在最后展示了制作者信息和日期,为作品留下了标记。
  5. 动态效果:

    • 通过适度的延时和清空画布的操作,使得整体图形呈现出动态的效果,使观赏者能够更好地感受到节日的欢乐氛围。
  6. 代码清晰度:

    • 代码结构相对清晰,注释也有助于理解,提高了代码的可读性。
    • 采用了适当的缩进和空行,使得代码布局整洁。

总的来说,这段代码成功地通过简单的图形绘制展现了圣诞节的欢快氛围,结合了创意、色彩和动态效果,展示了Turtle图形库的灵活性和便捷性。

🎅圣诞节快乐!

圣诞节快乐!愿你的圣诞充满温馨和喜悦,与亲朋好友共度美好时光。愿你在新的一年里充满幸福、健康和成功。祝福你和你的家人,平安喜乐!🎄🎅🎁
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/265181.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数字通信原理】复习笔记

哈喽&#xff89;hi~ 小伙伴们许久没有更新啦~ 花花经历了漫长的考试周~ 要被累成花干啦。今天来更新《数字通信原理》手写笔记给需要的小伙伴~ &#xff08;注:这是两套笔记&#xff0c;是需要结合来看的哦~&#xff09; 第一套的笔记请结合bilibili:张锦皓的复习课程来哦。 第…

sql_lab之sqli中的报错注入,less13

报错注入&#xff08;less-13&#xff09; 正常报错注入&#xff1a; 1.输入用户名和密码123 123显示登录错误 2.输入用户名和密码123’ 123显示登录错误 123后面有’)说明是’)注入 3.查询数据库名 1) and updatexml(<a><b></b></a>,concat(1111…

二维码智慧门牌管理系统升级:强化用户管理合规性

文章目录 前言一、功能优化和多层级管理二、强大的合规性与权限配置三、提升管理效率与系统安全性 前言 随着科技迅速发展&#xff0c;二维码智慧门牌管理系统已经成为各组织机构首选的入口&#xff0c;提高了信息管理效率并确保了数据安全。然而&#xff0c;用户需求变化和法…

<HarmonyOS第一课>运行Hello World

下载与安装DevEco Studio 在HarmonyOS应用开发学习之前&#xff0c;需要进行一些准备工作&#xff0c;首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。 进入DevEco Studio下载官网&#xff0c;单击“立即下载”进入下载页面。 DevEco Studio提供了Windows版本和…

OC学习笔记--基础篇

本文简要介绍了一些oc的基础类型&#xff0c;包括数组、字典、字符串、消息传递、类、对象、方法、属性、协议和转发&#xff0c;希望对你有帮助。 OC数据类型 打印—类似print NSlog("hello word");数组 NSMutableArray &#xff08;可变数组&#xff09;和 NSAr…

音画欣赏|《同杯万古尘》

《同杯万古尘》 尺寸&#xff1a;69x35cm 陈可之2023年绘 《拟古十二首-其九》 李白 生者为过客&#xff0c;死者为归人。 天地一逆旅&#xff0c;同悲万古尘。 月兔空捣药&#xff0c;扶桑已成薪。 白骨寂无言&#xff0c;青松岂知春。 前后更叹息&#xff0c;浮荣安足珍&am…

【SpringMVC】REST(Representation State Transfer)ful开发

REST全称Representation State Transfer&#xff0c;表现形式状态转换 文章目录 1. 为什么提出了REST&#xff1f;2. RESTful入门案例案例代码修改请求方式修改成RESTful风格&#xff0c;并以POST方式提交 RESTful格式下传参RESTful入门案例总结RequestBody&#xff0c;Reques…

2023 Intellij IDEA的热部署配置

第一步&#xff1a;导入依赖 <!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>第二步&#xff1a;配置idea

【Git 小妙招】学习多人协作场景(万字图文讲解+实战练习)

文章目录 前言1. 多人协作(场景一)2. 多人协作(场景二)3. 解决一个问题总结 前言 还记得我们学习 Git 是为了什么吗? 当然是实现多人协作了. 在学习了解博主前面关于 Git 的文章后, 我们就可以模拟来进行一些超超超简单的多人协作场景了. 本文就简单举两个多人协作的例子. 关…

C++ 强制类型转换static_cast<typeName>

C允许通过强制类型转换机制显式地进行类型转换。强制类型转换的格式有两种。 如&#xff1a; 为将存储在变量nData中的int值转换为long类型&#xff0c;可以使用下面的表达式中的一种&#xff1a; (long)nData …

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时,动态变化时无法及时刷新更新适配界面的问题

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 目录 Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 一、简单介绍…

js中将数字转成中文

文章目录 一、实现二、最后 一、实现 如果要将数字10、100和1000转换成中文的"十"、“一百"和"一千”&#xff0c;可以使用以下 JavaScript 代码实现&#xff1a; function numberToChinese(num) {const chineseNums [零, 一, 二, 三, 四, 五, 六, 七, …

最新版 JESD79-5B,2022年,JEDEC 内存SDRAM规范

本标准定义了DDR5 SDRAM规范&#xff0c;包括特性、功能、交流和直流特性、封装以及球/信号分配。本标准旨在为x4、x8和x16 DDR5 SDRAM设备定义符合JEDEC标准的8 Gb至32 Gb的最低要求。该标准是基于DDR4标准&#xff08;JESD79-4&#xff09;和DDR、DDR2、DDR3和LPDDR4标准的一…

IP应用场景的规划

IP地址作为互联网通信的基石&#xff0c;在现代社会中扮演着至关重要的角色。本文将深入探讨IP地址在不同应用场景中的规划与拓展&#xff0c;探讨其在网络通信、安全、商业、医疗和智能城市等领域的关键作用与未来发展趋势。 IP地址的基本原理 IP地址是分配给网络上设备的数…

NC65 查询单据所处的流程状态以及流程平台客户端工具类

1、查询单据所处的流程状态 nc.bs.wfengine.engine.EngineService的queryFlowStatus()方法 /*** 查询单据所处的流程状态* * param billId* param billType* param result* return* throws DbException*/public int queryFlowStatus(String billId, String billType, int flo…

每日一练2023.12.23——考试座位号【PTA】

题目链接&#xff1a;L1-005 考试座位号 题目要求&#xff1a; 每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系…

手机无人直播:解放直播的新方式

现如今&#xff0c;随着科技的迅猛发展&#xff0c;手机已经成为我们生活中不可或缺的一部分。除了通讯、娱乐等功能外&#xff0c;手机还能够通过直播功能将我们的生活实时分享给他人。而针对传统的直播方式&#xff0c;使用手机进行无人直播成为了一种全新的选择。 手机无人…

聊聊软件行业那些事

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

2023-12-22 linux C语言pthread_kill函数,pthread_kill(tid, 0)可以用来判断线程是否存在

一、该函数其实不是kill线程&#xff0c;而是向线程发送一个signal&#xff0c;pthread_kill()函数的作用是向某个线程传递一个信号&#xff0c;创建的线程中signal(SIGKILL,sig_handler)函数去处理对应的信号&#xff0c;如果你给一个线程发送了SIGQUIT、SIGKILL&#xff0c;但…

【vue】开发常见问题及解决方案

有一些问题不限于 Vue&#xff0c;还适应于其他类型的 SPA 项目。 1. 页面权限控制和登陆验证页面权限控制 页面权限控制是什么意思呢&#xff1f; 就是一个网站有不同的角色&#xff0c;比如管理员和普通用户&#xff0c;要求不同的角色能访问的页面是不一样的。如果一个页…