您可以通过以下几种方式查看:
要知道你刚刚写的字符的宽度
您可以通过始终在写字符之前拿起笔并让乌龟随着字符移动来做到这一点。如果你在写之前和之后记录下海龟的位置,那么你就可以计算出并返回宽度:
import turtle
def write_character(t: turtle, char: str, font: str = "Arial") -> float:
"""Write character and return width"""
pen_was_down = t.isdown()
if pen_was_down:
t.penup()
x_start, _ = t.position()
t.write(char, move=True, font=(font, 50, "normal"))
x_end, _ = t.position()
if pen_was_down:
t.pendown()
return x_end - x_start
这样您就可以将箭头向前移动返回的宽度。
使用固定宽度字符
正如你所发现的,有些字体没有固定的。然而,有些人这样做 - 这些被称为等宽。一个常用的例子是 Courier。下面的 sn-p 使用前面的方法来检查 Arial 和 Courier 字体的字符宽度分布:
print("Arial", Counter(
[write_character(turtle.Turtle(), c, "Arial") for c in string.ascii_lowercase]
))
print("Courier", Counter(
[write_character(turtle.Turtle(), c, "Courier") for c in string.ascii_lowercase]
))
哪个输出:
Arial Counter({27.0: 11, 24.0: 7, 11.0: 3, 13.0: 2, 41.0: 1, 16.0: 1, 36.0: 1})
Courier Counter({30.0: 26})
在这里我们可以看到 Arial 有 7 种不同的字符宽度,而 Courier 只有一个字符宽度。