【创意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 = 0for i in range(16):z = z*z + cif abs(z) > 2:breakrow.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 97new_pos = (ord(char) - offset + (shift if mode == 'encrypt' else -shift)) % 26result += chr(new_pos + offset)else:result += charreturn resultmessage = "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 animationdef 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] = 0else:if total == 3:new_grid[i, j] = 1img.set_data(new_grid)grid[:] = new_grid[:]return imgN = 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()
需要numpy
和matplotlib
库,模拟康威生命游戏的演化过程。