当前位置:首页 > 项目案例 > 正文内容

python好玩的代码,探索Python乐趣,创意代码精选

wzgly1个月前 (07-18)项目案例2
Python是一门富有创意的编程语言,其中蕴含着许多有趣的代码,从简单的计算器到复杂的游戏,Python都能轻松实现,使用Python可以轻松创建一个猜数字游戏,或者编写一个简单的聊天机器人,Python的图形库如Pygame,还能帮助你制作出精美的游戏,Python的代码世界充满无限可能,等待着你的探索和创造。

嗨,大家好!我是Python编程的小白,最近在学习Python的过程中发现了很多有趣的代码,它们不仅让我在编程的道路上越走越远,还让我感受到了编程的乐趣,我就来和大家分享一下我发现的几个好玩的Python代码,希望能激发大家对Python的兴趣。

一:趣味图形绘制

使用turtle库绘制图形 Python的turtle库是一个非常有趣的库,它可以帮助我们绘制各种图形,我们可以用turtle绘制一个五角星:

python好玩的代码
import turtle
star = turtle.Turtle()
star.speed(1)
for _ in range(5):
    star.forward(100)
    star.right(144)
turtle.done()

绘制彩色心形turtle库还可以绘制彩色心形,效果非常漂亮:

import turtle
heart = turtle.Turtle()
heart.speed(1)
heart.color("red", "pink")
heart.begin_fill()
heart.left(140)
heart.forward(180)
for _ in range(200):
    heart.right(1)
    heart.forward(2)
heart.left(120)
for _ in range(200):
    heart.right(1)
    heart.forward(2)
heart.forward(180)
heart.end_fill()
turtle.done()

绘制旋转的螺旋 螺旋图形也是一种很有趣的图形,我们可以用turtle库轻松实现:

import turtle
spiral = turtle.Turtle()
spiral.speed(0)
spiral.color("blue")
for i in range(36):
    spiral.forward(100)
    spiral.right(10)
turtle.done()

二:趣味游戏编写

简单猜数字游戏 猜数字游戏是一种非常经典的编程练习,我们可以用Python编写一个简单的猜数字游戏:

import random
target = random.randint(1, 100)
guess = None
while guess != target:
    guess = int(input("请输入你猜的数字:"))
    if guess < target:
        print("太小了!")
    elif guess > target:
        print("太大了!")
    else:
        print("恭喜你,猜对了!")
print(f"你一共猜了{guess}次。")

猜拳游戏 猜拳游戏也是一款非常有趣的游戏,我们可以用Python编写一个简单的猜拳游戏:

import random
choices = ["石头", "剪刀", "布"]
user_choice = input("请输入你的选择(石头、剪刀、布):")
computer_choice = random.choice(choices)
print(f"你的选择是:{user_choice},电脑的选择是:{computer_choice}")
if user_choice == computer_choice:
    print("平局!")
elif (user_choice == "石头" and computer_choice == "剪刀") or \
     (user_choice == "剪刀" and computer_choice == "布") or \
     (user_choice == "布" and computer_choice == "石头"):
    print("你赢了!")
else:
    print("你输了!")

简单的贪吃蛇游戏 贪吃蛇游戏是一款经典的休闲游戏,我们可以用Python编写一个简单的贪吃蛇游戏:

python好玩的代码
import turtle
import time
import random
delay = 0.1
score = 0
high_score = 0
# 设置屏幕
wn = turtle.Screen()"贪吃蛇游戏")
wn.bgcolor("black")
wn.setup(width=600, height=600)
wn.tracer(0)
# 创建贪吃蛇头部
head = turtle.Turtle()
head.speed(0)
head.shape("square")
head.color("white")
head.penup()
head.goto(0, 0)
head.direction = "stop"
# 创建贪吃蛇食物
food = turtle.Turtle()
food.speed(0)
food.shape("circle")
food.color("red")
food.penup()
food.goto(0, 100)
segments = []
# 分数板
score_board = turtle.Turtle()
score_board.speed(0)
score_board.shape("square")
score_board.color("white")
score_board.penup()
score_board.hideturtle()
score_board.goto(0, 260)
score_board.write("得分:0  最高分:0", align="center", font=("Courier", 24, "normal"))
# 控制贪吃蛇移动
def go_up():
    if head.direction != "down":
        head.direction = "up"
def go_down():
    if head.direction != "up":
        head.direction = "down"
def go_left():
    if head.direction != "right":
        head.direction = "left"
def go_right():
    if head.direction != "left":
        head.direction = "right"
def move():
    if head.direction == "up":
        y = head.ycor()
        head.sety(y + 20)
    if head.direction == "down":
        y = head.ycor()
        head.sety(y - 20)
    if head.direction == "left":
        x = head.xcor()
        head.setx(x - 20)
    if head.direction == "right":
        x = head.xcor()
        head.setx(x + 20)
# 键盘绑定
wn.listen()
wn.onkeypress(go_up, "w")
wn.onkeypress(go_down, "s")
wn.onkeypress(go_left, "a")
wn.onkeypress(go_right, "d")
# 主游戏循环
while True:
    wn.update()
    # 检查是否碰撞边界
    if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:
        time.sleep(1)
        head.goto(0, 0)
        head.direction = "stop"
        # 隐藏分段
        for segment in segments:
            segment.goto(1000, 1000)
        segments.clear()
        # 重置分数
        score = 0
        score_board.clear()
        score_board.write("得分:{}  最高分:{}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
    # 检查是否吃到食物
    if head.distance(food) < 20:
        # 移动食物到随机位置
        x = random.randint(-290, 290)
        y = random.randint(-290, 290)
        food.goto(x, y)
        # 增加贪吃蛇的长度
        new_segment = turtle.Turtle()
        new_segment.speed(0)
        new_segment.shape("square")
        new_segment.color("grey")
        new_segment.penup()
        segments.append(new_segment)
        # 增加分数
        score += 10
        if score > high_score:
            high_score = score
        score_board.clear()
        score_board.write("得分:{}  最高分:{}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
    # 移动分段
    for index in range(len(segments) - 1, 0, -1):
        x = segments[index - 1].xcor()
        y = segments[index - 1].ycor()
        segments[index].goto(x, y)
    if len(segments) > 0:
        x = head.xcor()
        y = head.ycor()
        segments[0].goto(x, y)
    move()
    # 检查头部和身体碰撞
    for segment in segments:
        if segment.distance(head) < 20:
            time.sleep(1)
            head.goto(0, 0)
            head.direction = "stop"
            # 隐藏分段
            for segment in segments:
                segment.goto(1000, 1000)
            segments.clear()
            # 重置分数
            score = 0
            score_board.clear()
            score_board.write("得分:{}  最高分:{}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
    time.sleep(delay)
wn.mainloop()

三:趣味数据处理

使用pandas库处理数据 Python的pandas库是一个非常强大的数据处理工具,我们可以用它来处理和分析数据,我们可以用pandas读取一个CSV文件,并对其进行简单的统计分析:

import pandas as pd
# 读取CSV文件
data = pd.read_csv("data.csv")
# 显示数据的前几行
print(data.head())
# 计算数据的平均值
print(data.mean())
# 绘制数据分布图
data.hist()
plt.show()

使用matplotlib库绘制图表 Python的matplotlib库可以帮助我们绘制各种图表,比如柱状图、折线图等,我们可以用它来可视化数据:

import matplotlib.pyplot as plt
# 绘制柱状图
plt.bar(data["column1"], data["column2"])
plt.xlabel("X轴")
plt.ylabel("Y轴")"柱状图")
plt.show()
# 绘制折线图
plt.plot(data["column1"], data["column2"])
plt.xlabel("X轴")
plt.ylabel("Y轴")"折线图")
plt.show()

使用NumPy库进行数值计算 Python的NumPy库是一个非常强大的数值计算库,我们可以用它来进行矩阵运算、线性代数

其他相关扩展阅读资料参考文献:

趣味算法的奇妙之旅

python好玩的代码
  1. 斐波那契数列的趣味生成
    用递归或迭代生成斐波那契数列是经典案例,但若结合turtle绘图,便能将数字转化为视觉艺术。

    import turtle  
    def draw_fibonacci(n):  
     a, b = 0, 1  
     for _ in range(n):  
         turtle.forward(b)  
         turtle.right(90)  
         a, b = b, a + b  
    draw_fibonacci(10)  

    代码会绘制出由斐波那契数列长度决定的螺旋图形,递归的效率问题图形的美感形成鲜明对比,让人直观理解算法的双面性。

  2. 素数筛的视觉化
    埃拉托斯特尼筛法是判断素数的高效方法,但用颜色标记法能让结果更生动。

    import matplotlib.pyplot as plt  
    def sieve(n):  
     is_prime = [True] * (n+1)  
     is_prime[0] = is_prime[1] = False  
     for i in range(2, int(n**0.5)+1):  
         if is_prime[i]:  
             for j in range(i*i, n+1, i):  
                 is_prime[j] = False  
     plt.imshow([is_prime], cmap='hot', interpolation='nearest')  
     plt.show()  
    sieve(100)  

    运行后会生成一个热力图,素数区域呈现冷色调非素数区域则为暖色,将数学概念转化为直观图像。

  3. 随机迷宫生成
    深度优先搜索算法生成迷宫是编程与逻辑的结合。

    import random  
    def generate_maze(width, height):  
     maze = [[1 for _ in range(height)] for _ in range(width)]  
     visited = [[False for _ in range(height)] for _ in range(width)]  
     def dfs(x, y):  
         visited[x][y] = True  
         maze[x][y] = 0  
         directions = [(0,1),(1,0),(0,-1),(-1,0)]  
         random.shuffle(directions)  
         for dx, dy in directions:  
             nx, ny = x + dx*2, y + dy*2  
             if 0 <= nx < width and 0 <= ny < height and not visited[nx][ny]:  
                 dfs(nx, ny)  
     dfs(0,0)  
     return maze  

    此代码通过递归随机选择方向,生成不同形态的迷宫,甚至可进一步用pygame实现路径寻找功能,算法的随机性与确定性在此碰撞出趣味火花。

创意艺术的编程实现

  1. 动态图案生成
    利用turtle库的绘图功能,通过数学公式创造动态效果。

    import turtle  
    for i in range(360):  
     turtle.circle(100, i)  
     turtle.left(59)  

    这段代码会绘制出旋转的圆形轨迹,形成类似星云的视觉效果,数学规律与艺术美感的结合让编程充满想象力。

  2. 生成艺术图像
    使用numpy和matplotlib生成随机参数的抽象画。

    import numpy as np  
    import matplotlib.pyplot as plt  
    x = np.linspace(0, 2*np.pi, 1000)  
    y = np.sin(x) + np.random.normal(0, 0.1, len(x))  
    plt.plot(x, y, 'r-')  
    plt.show()  

    随机噪声的加入让正弦曲线变得抽象,代码的简洁性与图像的复杂性形成反差,展现编程的创造力。

  3. 文字转图像
    PIL库将文本转化为像素艺术。

    from PIL import Image, ImageDraw, ImageFont  
    img = Image.new('RGB', (200, 100), color='white')  
    draw = ImageDraw.Draw(img)  
    font = ImageFont.load_default()  
    draw.text((10,10), "Python", font=font, fill='blue')  
    img.show()  

    文字的像素化处理让编程成为艺术创作工具,图像与文本的结合打破传统编程的局限。

互动游戏的编程乐趣

  1. 猜数字游戏
    经典的猜数字游戏可通过随机模块实现,但加入进度条会让体验更直观。

    import random  
    import time  
    target = random.randint(1, 100)  
    for i in range(1, 11):  
     guess = int(input(f"第{i}次猜测:"))  
     print(f"{'正确' if guess == target else '错误'}")  
     time.sleep(0.5)  

    每次猜测的反馈倒计时机制让游戏更具挑战性,简单逻辑构建复杂互动体现编程的灵活性。

  2. 俄罗斯方块变体
    pygame库实现基础俄罗斯方块,但简化规则可增加趣味性。

    import pygame  
    pygame.init()  
    screen = pygame.display.set_mode((200, 400))  
    while True:  
     for event in pygame.event.get():  
         if event.type == pygame.QUIT:  
             pygame.quit()  
             exit()  
     screen.fill((0,0,0))  
     pygame.draw.rect(screen, (255,0,0), (50,50,100,100))  
     pygame.display.flip()  

    仅保留一个方块的简化版游戏,通过键盘控制移动,让初学者快速体验游戏开发的快感。

  3. 文字冒险游戏
    命令行交互实现简单的文字冒险,分支剧情增加代入感。

    print("你进入了一座迷雾森林,前方有两条路:")  
    print("1. 向左走")  
    print("2. 向右走")  
    choice = input("请选择(1/2):")  
    if choice == '1':  
     print("你遇到了一只发光的狐狸,它带你找到了宝藏!")  
    else:  
     print("你掉入了陷阱,游戏结束。")  

    简单的条件判断构建出多结局的叙事结构文字与逻辑的结合让编程成为故事创作的工具。

网络爬虫的趣味应用

  1. 抓取天气数据
    使用requests库获取天气信息,可视化天气变化

    import requests  
    import matplotlib.pyplot as plt  
    response = requests.get("https://api.weatherapi.com/v1/current.json?key=YOUR_KEY&q=Beijing")  
    data = response.json()  
    temp = data['current']['temp_c']  
    plt.plot([temp], 'ro')  f"北京当前气温:{temp}℃")  
    plt.show()  

    API调用的便捷性数据可视化结合,代码的实用性与趣味性并存

  2. 抓取网页图片
    BeautifulSoup和requests提取网页中的图片链接,批量下载

    import requests  
    from bs4 import BeautifulSoup  
    url = "https://example.com"  
    response = requests.get(url)  
    soup = BeautifulSoup(response.text, 'html.parser')  
    for img in soup.find_all('img'):  
     print(img['src'])  
    ```  的解析**让编程成为信息获取的利器,**代码的简洁性与功能的多样性**令人惊叹。
  3. 抓取社交媒体动态
    Twitter API获取推文,生成词云

    import tweepy  
    from wordcloud import WordCloud  
    auth = tweepy.OAuthHandler("API_KEY", "API_SECRET")  
    api = tweepy.API(auth)  
    tweets = api.user_timeline(screen_name="Python", count=100)  
    text = " ".join([tweet.text for tweet in tweets])  
    wordcloud = WordCloud().generate(text)  
    wordcloud.to_image().show()  

    社交媒体数据的实时性词云的视觉化结合,代码的复杂性与结果的直观性形成反差,展现编程的无限可能。

通过这些代码示例,Python的趣味性不仅体现在功能实现上,更在于创造可能性,无论是算法、艺术还是游戏,代码的简洁与强大总能带来意想不到的惊喜。

扫描二维码推送至手机访问。

版权声明:本文由码界编程网发布,如需转载请注明出处。

本文链接:http://b2b.dropc.cn/xmal/14980.html

分享给朋友:

“python好玩的代码,探索Python乐趣,创意代码精选” 的相关文章

各种编程语言的区别,编程语言多样性与差异解析

各种编程语言的区别,编程语言多样性与差异解析

编程语言种类繁多,各具特色,区别主要体现在语法结构、应用领域和执行环境上,Python以简洁易学著称,适合快速开发;Java具有跨平台能力,适用于企业级应用;C语言底层操作能力强,常用于系统编程,C++兼具效率和对象导向特性;JavaScript主要用于网页开发,与HTML和CSS协同工作,不同语言...

织梦行云离歌,织梦行云,离歌悠扬

织梦行云离歌,织梦行云,离歌悠扬

《织梦行云离歌》是一部融合了梦幻与离愁的作品,通过细腻的笔触描绘了一幅诗意盎然的画卷,故事中,主人公在追逐梦想的旅程中,经历了云卷云舒的变幻与离别的哀愁,在这段旅程中,他学会了珍惜、成长,并在离歌中找到了内心的宁静与力量。织梦行云离歌,这是一个充满诗意和哲思的主题,让我来尝试解答一下,这个主题究竟蕴...

java环境安装包麦块,Java环境安装包下载攻略

java环境安装包麦块,Java环境安装包下载攻略

Java环境安装包麦块,是一款专门用于安装Java开发环境的工具,它简化了Java安装过程,提供了一键式安装和配置服务,用户只需下载麦块安装包,按照提示操作,即可快速完成Java环境的搭建,无需手动配置环境变量,适用于Windows、MacOS和Linux操作系统,该工具支持多种Java版本,并自动...

colspan 2是什么标记的属性,colspan 2属性详解,跨两列的HTML标记技巧

colspan 2是什么标记的属性,colspan 2属性详解,跨两列的HTML标记技巧

colspan 是一个用于 HTML 表格 ` 或 标签的属性,用于指定单元格应跨越的列数,colspan="2"` 表示该单元格将占据两列的宽度,这个属性有助于在表格中创建跨多列的单元格,从而更好地组织数据或显示标题。解析HTML中的colspan属性:colspan 2的奥秘 作为一名经...

php类,PHP类设计与实现指南

php类,PHP类设计与实现指南

PHP类是PHP编程语言中用于组织代码和实现复用的一种结构,它通过定义属性(变量)和方法(函数)来封装数据和操作,使得代码更加模块化和易于维护,类可以创建对象,对象是类的实例,可以通过对象调用类中定义的方法和访问属性,使用类可以提高代码的可读性、可扩展性和可重用性,是PHP面向对象编程(OOP)的核...

vb读取sql数据库数据,VB编程,高效读取SQL数据库数据教程

vb读取sql数据库数据,VB编程,高效读取SQL数据库数据教程

使用VB(Visual Basic)读取SQL数据库数据,首先需建立数据库连接,通过ADO(ActiveX Data Objects)或ADO.NET组件实现,具体步骤包括:设置连接字符串,创建连接对象,打开连接,创建命令对象,执行查询命令,获取结果集,遍历结果集并处理数据,最后关闭连接,此过程涉及...