【创意Python代码】

以下是一些有趣且富有创意的Python代码示例,涵盖不同领域(如图形、算法、游戏等):

生成艺术图案(ASCII艺术)

import math
for y in range(-12, 13):
    row = []
    for x in range(-60, 60):
        c = complex(x/30, y/15)
        z = 0
        for i in range(16):
            z = z*z + c
            if abs(z) > 2:
                break
        row.append(' .,:;*%$@'[i % 10] if i < 15 else ' ')
    print(''.join(row))

这段代码生成一个曼德勃罗分形图案,利用复数运算和循环控制字符输出。

用乌龟绘图模拟雪花

import turtle
def koch_curve(t, length, depth):
    if depth == 0:
        t.forward(length)
    else:
        for angle in [60, -120, 60, 0]:
            koch_curve(t, length/3, depth-1)
            t.left(angle)

t = turtle.Turtle()
t.speed(0)
t.penup()
t.goto(-200, 100)
t.pendown()
for _ in range(3):
    koch_curve(t, 400, 4)
    t.right(120)
turtle.done()

递归实现科赫雪花曲线,调整depth参数可以改变复杂度。

文字加密与解密

def caesar_cipher(text, shift, mode='encrypt'):
    result = ""
    for char in text:
        if char.isalpha():
            offset = 65 if char.isupper() else 97
            new_pos = (ord(char) - offset + (shift if mode == 'encrypt' else -shift)) % 26
            result += chr(new_pos + offset)
        else:
            result += char
    return result

message = "Python is fun!"
encrypted = caesar_cipher(message, 5)
decrypted = caesar_cipher(encrypted, 5, 'decrypt')
print(f"Original: {message}\nEncrypted: {encrypted}\nDecrypted: {decrypted}")

实现凯撒密码的加密与解密功能,可自定义偏移量。

快速生成二维码

import qrcode
data = "https://www.python.org"
qr = qrcode.QRCode(version=1, box_size=10, border=4)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color="navy", back_color="white")
img.save("python_qr.png")

需要安装qrcode库,可自定义颜色和尺寸。

模拟生命游戏

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def update(frameNum, img, grid, N):
    new_grid = grid.copy()
    for i in range(N):
        for j in range(N):
            total = int((grid[i, (j-1)%N] + grid[i, (j+1)%N] +
                         grid[(i-1)%N, j] + grid[(i+1)%N, j] +
                         grid[(i-1)%N, (j-1)%N] + grid[(i-1)%N, (j+1)%N] +
                         grid[(i+1)%N, (j-1)%N] + grid[(i+1)%N, (j+1)%N])/1)
            if grid[i, j] == 1:
                if (total < 2) or (total > 3):
                    new_grid[i, j] = 0
            else:
                if total == 3:
                    new_grid[i, j] = 1
    img.set_data(new_grid)
    grid[:] = new_grid[:]
    return img

N = 100
grid = np.random.choice([0, 1], N*N, p=[0.85, 0.15]).reshape(N, N)
fig, ax = plt.subplots()
img = ax.imshow(grid, interpolation='nearest')
ani = animation.FuncAnimation(fig, update, fargs=(img, grid, N), frames=10, interval=50)
plt.show()

需要numpymatplotlib库,模拟康威生命游戏的演化过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值