说我有一个度值数组,像这样:
DEGREES = [
0, 15, 30, 45, 60,
75, 90, 105, 120,
135, 150, 165, 180,
195, 210, 225, 240,
255, 270, 285, 300,
315, 330, 345,
]
Run Code Online (Sandbox Code Playgroud)
我会选择一个角度,然后能够将这个假设圆二等分,以便更轻松地找到到达目标方向的最短路径。
这样说,我如何选择一个特定的值(例如)90,然后能够找到该值后面的前12个元素,包括结束时环绕的索引?
因此,采用该更早的值并将其应用于该列表,我将得到如下信息:
[90, 75, 60, 45, 30, 15, 0, 345, 330, 315, 300, 285, 270]
Run Code Online (Sandbox Code Playgroud)
使用切片符号,我尝试这样做:
index = DEGREES.index(90)
print(DEGREES[index-12:index]) # start 12 values back, stop at index
Run Code Online (Sandbox Code Playgroud)
但这只会打印一个空数组。
有没有办法对列表进行切片,这样我就可以得到所使用索引后面的12个先前值?
编辑:
原来这是一个XY问题,我不好。最初,我试图在Pygame中创建一个平滑的旋转系统,但尝试计算角度不起作用,我问了这个问题以解决另一个我尝试实现的想法的问题。我最终接受了有助于建立平滑旋转系统的答案,但是下面的原始问题有相关答案。
如何将图像加载到精灵中而不是为精灵绘制形状?例如:我将一个 50x50 的图像加载到一个精灵中而不是绘制一个 50x50 的矩形
到目前为止,这是我的精灵代码:
class Player(pygame.sprite.Sprite):
def __init__(self, color, width, height):
super().__init__()
#Config
self.image = pygame.Surface([width, height])
self.image.fill(WHITE)
self.image.set_colorkey(WHITE)
# Draw
pygame.draw.rect(self.image, color , [0, 0, width, height])
# Fetch
self.rect = self.image.get_rect()
def right(self, pixels):
self.rect.x += pixels
def left(self, pixels):
self.rect.x -= pixels
def up(self, pixels):
self.rect.y -= pixels
def down(self, pixels):
self.rect.y += pixels
Run Code Online (Sandbox Code Playgroud) 我想使用 python 和 smtp 回复特定消息。我已经看过这些帖子:
如何使用 Python imaplib 回复电子邮件并包含原始消息?
但不幸的是,它只发送带有“---------转发消息----------”的回复,而不是以正常方式回复。
请帮忙!
代码已附上
def reply_to_msg(self, original_msg, reply_body):
# fetch msg
self.login_imap(host="imap.gmail.com", port=993, username='username@gmail.com', password="pass",
use_ssl=True)
# Filter by subject because it is unique subject (uuid)
# Get message ID
mail_ids = self.receive_mail_ids(subject_filter=original_msg["Subject"])
msg = MIMEMultipart("mixed")
body = MIMEMultipart("alternative")
text, _ = self.append_orig_text(reply_body, "", original_msg, True)
body.attach(MIMEText(text, 'plain'))
msg.attach(body)
msg.attach(MIMEMessage(original_msg))
msg["Message-ID"] = email.utils.make_msgid()
msg['To'] = original_msg["From"]
msg['Subject'] = "Re: " + original_msg["Subject"]
msg['In-Reply-To'] = msg['References'] = mail_ids[-1]
# …Run Code Online (Sandbox Code Playgroud)