38 lines
1.7 KiB
Python
38 lines
1.7 KiB
Python
import math
|
||
|
||
|
||
def degrees_to_radians(degrees):
|
||
"""degrees go to radians"""
|
||
return degrees / 180 * math.pi
|
||
|
||
|
||
def radians_to_degrees(radians):
|
||
"""radians go to degrees"""
|
||
return radians * 180 / math.pi
|
||
|
||
|
||
def to_signed_number(number, max_bytes):
|
||
"""Converts a binary number to a signed number"""
|
||
if number < 2 ** (8 * max_bytes - 1):
|
||
return number
|
||
else:
|
||
return number - 2 ** (8 * max_bytes)
|
||
|
||
|
||
def pretty_xml(element, indent, newline, level=0): # elemnt为传进来的Elment类,参数indent用于缩进,newline用于换行
|
||
"""为ElementTree处理的XML添加缩进和换行"""
|
||
if element: # 判断element是否有子元素
|
||
if (element.text is None) or element.text.isspace(): # 如果element的text没有内容
|
||
element.text = newline + indent * (level + 1)
|
||
else:
|
||
element.text = newline + indent * (level + 1) + element.text.strip() + newline + indent * (level + 1)
|
||
# else: # 此处两行如果把注释去掉,Element的text也会另起一行
|
||
# element.text = newline + indent * (level + 1) + element.text.strip() + newline + indent * level
|
||
temp = list(element) # 将element转成list
|
||
for subelement in temp:
|
||
if temp.index(subelement) < (len(temp) - 1): # 如果不是list的最后一个元素,说明下一个行是同级别元素的起始,缩进应一致
|
||
subelement.tail = newline + indent * (level + 1)
|
||
else: # 如果是list的最后一个元素, 说明下一行是母元素的结束,缩进应该少一个
|
||
subelement.tail = newline + indent * level
|
||
pretty_xml(subelement, indent, newline, level=level + 1) # 对子元素进行递归操作
|