数学#
介绍#
Math includes both built-in Python functions and the full math
module, which is automatically available in VEXcode GO. These tools allow you to perform everything from basic arithmetic to advanced trigonometry, rounding, and logarithmic operations.
使用这些函数和常量来计算机器人的位置、角度、距离和其他数值。您还可以在角度和弧度之间转换、计算表达式的值,以及处理无穷大和 NaN 等特殊值。
以下是可用的数学函数、常量和实用程序的列表:
内置函数——Python 附带的常见数学工具。
abs – 返回数字的绝对值。
round – 将数字四舍五入到指定的小数位数。
min – 返回输入值的最小值。
max – 返回输入值的最大值。
sum —— 将可迭代对象中的所有值相加。
divmod – 以元组形式返回商和余数。
pow – 对数字进行幂运算,可选择使用模数。
int – 将值转换为整数。
float – 将值转换为浮点数。
Constants – Predefined values from the math
module.
三角学——计算角度和边之间的关系。
math.sin – 以弧度为单位的角的正弦。
math.cos – 以弧度为单位的角度的余弦。
math.tan – 以弧度为单位的角的正切。
math.atan – 弧度值的反正切。
math.atan2 – 考虑象限,以弧度为单位计算 y/x 的反正切。
math.asin – 弧度值的反正弦。
math.acos – 弧度值的反余弦。
math.degrees – 将弧度转换为度数。
math.radians – 将度数转换为弧度。
舍入和绝对值——调整精度或方向。
math.ceil – 向上舍入到最接近的整数。
math.floor – 向下舍入到最接近的整数。
math.trunc – 删除小数部分。
math.fabs – 以浮点数形式返回绝对值。
指数和对数——幂、根和对数计算。
math.pow – 对数字进行幂运算。
math.sqrt – 返回平方根。
math.exp – 计算 e 的 x 次方。
math.log – 计算 x 的对数。
math.log10 – 计算 x 以 10 为底的对数。
浮点运算——检查或分解浮点值。
math.modf – 返回浮点数的小数部分和整数部分。
math.frexp – 将数字分解为尾数和指数。
math.fmod – 被除数的余数(带符号)。
math.copysign – 返回带有另一个值的符号的值。
math.ldexp – Computes
x * (2 ** exp)
.
内置函数#
Python 提供了几个内置函数,允许您在项目内部执行数学运算。
abs#
abs
returns the absolute value of a number, removing any negative sign.
Usage:
abs(x)
范围 |
描述 |
---|---|
|
整数或浮点数。 |
def main():
# Get the absolute value of -10
abs_result = abs(-10)
console.print(abs_result)
console.new_line()
# abs_result = 10
# Start threads — Do not delete
start_thread(main)
round#
round
rounds a number to a specified number of decimal places.
Usage:
round(x, ndigits)
范围 |
描述 |
---|---|
|
整数或浮点数。 |
|
可选。要四舍五入的小数位数。默认值为 0。 |
def main():
# Round 5.7 to the nearest integer
round_int_result = round(5.7)
console.print(round_int_result)
console.new_line()
# round_int_result = 6
# Start threads — Do not delete
start_thread(main)
def main():
# Round 3.14159 to 2 decimal places
round_result = round(3.14159, 2)
console.print(round_result)
console.new_line()
# round_result = 3.14
# Start threads — Do not delete
start_thread(main)
min#
min
returns the smallest value from multiple arguments or an iterable.
Usage:
min(arg1, arg2, …)
or min(sequence)
范围 |
描述 |
---|---|
|
要比较的数字。 |
|
包含数字的列表、元组或其他序列。 |
def main():
# Get the smallest number from 3, 7, and 1
min_result = min(3, 7, 1)
console.print(min_result)
console.new_line()
# min_result = 1
# Start threads — Do not delete
start_thread(main)
def main():
# Get the smallest value from a list
min_list_result = min([10, 4, 25, 1])
console.print(min_list_result)
console.new_line()
# min_list_result = 1
# Start threads — Do not delete
start_thread(main)
max#
max
returns the largest value from multiple arguments or an iterable.
Usage:
max(arg1, arg2, …)
or max(sequence)
范围 |
描述 |
---|---|
|
要比较的数字。 |
|
包含数字的列表、元组或其他序列。 |
def main():
# Get the largest number from 3, 7, and 1
max_result = max(3, 7, 1)
console.print(max_result)
console.new_line()
# max_result = 7
# Start threads — Do not delete
start_thread(main)
def main():
# Get the largest value from a list
max_list_result = max([10, 4, 25, 1])
console.print(max_list_result)
console.new_line()
# max_list_result = 25
# Start threads — Do not delete
start_thread(main)
sum#
sum
adds up all values in an iterable, with an optional starting value.
Usage:
sum(sequence, start)
范围 |
描述 |
---|---|
|
包含数字的列表、元组或其他序列。 |
|
可选。要添加到总和的值。默认值为 0。 |
def main():
# Calculate the sum of a list of numbers
sum_result = sum([1, 2, 3, 4, 5])
console.print(sum_result)
console.new_line()
# sum_result = 15
# Start threads — Do not delete
start_thread(main)
def main():
# Calculate the sum of a list with a starting value of 10
sum_with_start = sum([1, 2, 3], 10)
console.print(sum_with_start)
console.new_line()
# sum_with_start = 16
# Start threads — Do not delete
start_thread(main)
divmod#
divmod
returns a tuple containing the quotient and remainder of a division operation.
Usage:
divmod(a, b)
范围 |
描述 |
---|---|
|
股息。 |
|
除数。 |
def main():
# Perform integer division and remainder of 10 / 3
divmod_result = divmod(10, 3)
console.print(divmod_result)
console.new_line()
# divmod_result = (3, 1)
# Start threads — Do not delete
start_thread(main)
pow#
pow
raises a number to a power and optionally performs a modulus operation.
Usage:
pow(x, y, mod)
范围 |
描述 |
---|---|
|
基数。 |
|
指数。 |
|
Optional. A modulus value. If provided, returns |
def main():
# Calculate 2 raised to the power of 3
pow_result = pow(2, 3)
console.print(pow_result)
console.new_line()
# pow_result = 8
# Start threads — Do not delete
start_thread(main)
int#
int
converts a number or string into an integer. It also supports base conversion when converting from a string.
Usage:
int(x, base)
范围 |
描述 |
---|---|
|
要转换的数字、字符串或其他对象。 |
|
可选。用于转换的进制数。默认值为 10。 |
def main():
# Convert a float to an integer to get rid of decimals
price = 19.99
price_int = int(price)
console.print("{} coins".format(price_int))
console.new_line()
# Output: 19 coins
# Start threads — Do not delete
start_thread(main)
def main():
# Convert a string into an integer to use in calculations
user_input = "55"
user_number = int(user_input)
console.print(user_number * 2)
console.new_line()
# Output: 110
# Start threads — Do not delete
start_thread(main)
float#
float
converts a number or string into a floating-point number.
Usage:
float(x)
范围 |
描述 |
---|---|
|
要转换的数字、字符串或其他对象。 |
def main():
# Convert division result to a float
num_apples = 6
num_people = 2
apples_per_person = float(num_apples) / num_people
console.print(apples_per_person)
console.new_line()
# Output: 3.00
# Start threads — Do not delete
start_thread(main)
def main():
# Convert a string into a float to use in calculations
user_input = "23.4"
user_number = float(user_input)
console.print(user_number * 3)
console.new_line()
# Output: 70.20
# Start threads — Do not delete
start_thread(main)
数学模块#
The math
module in MicroPython provides additional methods for performing common mathematical calculations. These methods include trigonometric, logarithmic, and other numerical operations.
The math
module is imported by default in VEXcode.
Constants#
常量是预定义的值,在项目执行过程中保持不变。它们可以在计算中使用,无需任何定义或赋值。
圆周率#
pi
gives the mathematical constant π, the ratio of a circle’s circumference to its diameter.
Usage:
math.pi
def main():
# Calculate the area of a circle with radius 5 using pi
circle_area = math.pi * 5 * 5
console.print(circle_area)
console.new_line()
# circle_area = 78.54
# Start threads — Do not delete
start_thread(main)
tau#
tau
gives the value of 2π.
Usage:
math.tau
def main():
# Calculate the circumference of a circle with radius
circumference = math.tau * 5
console.print(circumference)
console.new_line()
# circumference = 31.42
# Start threads — Do not delete
start_thread(main)
e#
e
gives the base of the natural logarithm.
Usage:
math.e
def main():
# Calculate e raised to the power of 2
e_power = math.pow(math.e, 2)
console.print(e_power)
console.new_line()
# e_power = 7.39
# Start threads — Do not delete
start_thread(main)
Trigonometry#
罪#
sin
calculates the sine of an angle in radians and returns a float.
Usage:
math.sin(x)
范围 |
描述 |
---|---|
|
表示弧度角的浮点数或整数。 |
def main():
# Calculate the sine of
# 30 degrees in radians
result = math.sin(math.radians(30))
console.print(result)
console.new_line()
# result = 0.50
# Start threads — Do not delete
start_thread(main)
余弦#
cos
calculates the cosine of an angle in radians and returns a float.
Usage:
math.cos(x)
范围 |
描述 |
---|---|
|
表示弧度角的浮点数或整数。 |
def main():
# Calculate the cosine of
# 60 degrees in radians
result = math.cos(math.radians(60))
console.print(result)
console.new_line()
# result = 0.50
# Start threads — Do not delete
start_thread(main)
棕褐色#
tan
calculates the tangent of an angle in radians and returns a float.
Usage:
math.tan(x)
范围 |
描述 |
---|---|
|
表示弧度角的浮点数或整数。 |
def main():
# Calculate the tangent of
# 45 degrees in radians
result = math.tan(math.radians(45))
console.print(result)
console.new_line()
# result = 1.00
# Start threads — Do not delete
start_thread(main)
阿辛#
asin
calculates the inverse sine (arc sine) of a number and returns a float representing the angle in radians.
Usage:
math.asin(x)
范围 |
描述 |
---|---|
|
-1 到 1 之间的浮点数或整数。 |
def main():
# Calculate the arc sine
# of 0.5 in degrees
result = math.degrees(math.asin(0.5))
console.print(result)
console.new_line()
# result = 30.00
# Start threads — Do not delete
start_thread(main)
阿科斯#
acos
calculates the inverse cosine (arc cosine) of a number and returns a float representing the angle in radians.
Usage:
math.acos(x)
范围 |
描述 |
---|---|
|
-1 到 1 之间的浮点数或整数。 |
def main():
# Calculate the arc cosine
# of 0.5 in degrees
result = math.degrees(math.acos(0.5))
console.print(result)
console.new_line()
# result = 60.00
# Start threads — Do not delete
start_thread(main)
阿坦#
atan
calculates the inverse tangent (arc tangent) of a number and returns a float representing the angle in radians.
Usage:
math.atan(x)
范围 |
描述 |
---|---|
|
浮点数或整数。 |
def main():
# Calculate the arc tangent
# of 1 in degrees
arc_tan = math.atan(1.0)
result = math.degrees(arc_tan)
console.print(result)
console.new_line()
# result = 45.00
# Start threads — Do not delete
start_thread(main)
反义词#
atan2
calculates the principal value of the inverse tangent of y/x and returns a float representing the angle in radians.
Usage:
math.atan2(y, x)
范围 |
描述 |
---|---|
|
表示 y 坐标的浮点数或整数。 |
|
表示 x 坐标的浮点数或整数。 |
def main():
# Calculate the inverse tangent
# of 1/1 in degrees
atan2 = math.atan2(1.0, 1.0)
result = math.degrees(atan2)
console.print(result)
console.new_line()
# result = 45.00
# Start threads — Do not delete
start_thread(main)
度#
degrees
converts an angle from radians to degrees.
Usage:
math.degrees(x)
范围 |
描述 |
---|---|
|
表示弧度角的浮点数或整数。 |
def main():
# Convert pi radians to degrees
degrees_result = math.degrees(math.pi)
console.print(degrees_result)
console.new_line()
# degrees_result = 180.00
# Start threads — Do not delete
start_thread(main)
弧度#
radians
converts an angle from degrees to radians.
Usage:
math.radians(x)
范围 |
描述 |
---|---|
|
表示角度(以度为单位)的浮点数或整数。 |
def main():
# Convert 180 degrees to radians
radians_result = math.radians(180)
console.print(radians_result)
console.new_line()
# radians_result = 3.14
# Start threads — Do not delete
start_thread(main)
Rounding & Absolute Values#
天花板#
ceil
rounds a number up to the nearest integer.
Usage:
math.ceil(x)
范围 |
描述 |
---|---|
|
要向上舍入的浮点数或整数。 |
def main():
# Round 3.7 up to the nearest integer
ceil_result = math.ceil(3.7)
console.print(ceil_result)
console.new_line()
# ceil_result = 4
# Start threads — Do not delete
start_thread(main)
地面#
floor
rounds a number down to the nearest integer.
Usage:
math.floor(x)
范围 |
描述 |
---|---|
|
要向下舍入的浮点数或整数。 |
def main():
# Round 3.7 down to the nearest integer
floor_result = math.floor(3.7)
console.print(floor_result)
console.new_line()
# floor_result = 3
# Start threads — Do not delete
start_thread(main)
截断#
trunc
removes the decimal part of a number without rounding.
Usage:
math.trunc(x)
范围 |
描述 |
---|---|
|
要截断的浮点数。 |
def main():
# Remove the decimal part of 3.7
trunc_result = math.trunc(3.7)
console.print(trunc_result)
console.new_line()
# trunc_result = 3
# Start threads — Do not delete
start_thread(main)
晶圆厂#
fabs
returns the absolute value of a number as a float.
Usage:
math.fabs(x)
范围 |
描述 |
---|---|
|
浮点数或整数。 |
def main():
# Get the absolute value of -3.7
fabs_result = math.fabs(-3.7)
console.print(fabs_result)
console.new_line()
# fabs_result = 3.70
# Start threads — Do not delete
start_thread(main)
Exponents & Logarithms#
日志#
log
calculates the logarithm of a number and returns a float.
Usage:
math.log(x, base)
范围 |
描述 |
---|---|
|
正浮点数或整数。 |
|
可选。要使用的对数底数。默认情况下,此参数为自然对数。 |
def main():
# Calculate the natural logarithm
# (base e) of 7.389056
log_result = math.log(7.389056)
console.print(log_result)
console.new_line()
# log_result = 2
# Start threads — Do not delete
start_thread(main)
def main():
# Calculate the log base 2 of 8
log_result = math.log(8, 2)
console.print(log_result)
console.new_line()
# log_result = 3
# Start threads — Do not delete
start_thread(main)
log10#
log10
calculates the base-10 logarithm of a number and returns a float.
Usage:
math.log10(x)
范围 |
描述 |
---|---|
|
正浮点数或整数。 |
def main():
# Calculate the base-10 logarithm of 100
log10_result = math.log10(100)
console.print(log10_result)
console.new_line()
# log10_result = 2
# Start threads — Do not delete
start_thread(main)
战俘#
pow
raises x to the power of y and returns a float, even if both inputs are integers.
Usage:
math.pow(x, y)
范围 |
描述 |
---|---|
|
浮点数或整数基数。 |
|
浮点数或整数指数。 |
# Calculate 2 raised to the power of 3
power_result = math.pow(2, 3)
console.print(power_result)
console.new_line()
# power_result = 8.00
平方根#
sqrt
calculates the square root of a number and returns a float, even for perfect squares.
Usage:
math.sqrt(x)
范围 |
描述 |
---|---|
|
非负浮点数或整数。 |
def main():
# Calculate 2 raised to the power of 3
power_result = math.pow(2, 3)
console.print(power_result)
console.new_line()
# power_result = 8.00
# Start threads — Do not delete
start_thread(main)
经验值#
exp
calculates the exponential of a number and returns a float.
Usage:
math.exp(x)
范围 |
描述 |
---|---|
|
浮点数或整数。 |
def main():
# Calculate e raised to the power of 1
exp_result = math.exp(1)
console.print(exp_result)
console.new_line()
# exp_result = 2.72
# Start threads — Do not delete
start_thread(main)
Floating Point Operations#
修改#
modf
decomposes a number into its fractional and integer parts and returns a tuple (fractional part, integer part)
, both as floats.
Usage:
math.modf(x)
范围 |
描述 |
---|---|
|
要分解的浮点数或整数。 |
def main():
# Decompose 3.14159 into fractional and integer parts
fractional_part, integer_part = math.modf(3.14159)
console.print(fractional_part)
console.new_line()
console.print(integer_part)
console.new_line()
# fractional_part = 0.14
# integer_part = 3.00
# Start threads — Do not delete
start_thread(main)
frexp#
frexp
decomposes a number into its mantissa and exponent and returns a tuple (mantissa, exponent)
, where the mantissa is a float and the exponent is an integer.
Usage:
math.frexp(x)
范围 |
描述 |
---|---|
|
要分解的浮点数或整数。 |
def main():
# Decompose 16 into its mantissa and exponent
mantissa, exponent = math.frexp(16)
console.print(mantissa)
console.new_line()
console.print(exponent)
console.new_line()
# mantissa = 0.50
# exponent = 5
# Start threads — Do not delete
start_thread(main)
fmod#
fmod
returns the remainder of division while keeping the sign of the dividend (x
).
Usage:
math.fmod(x, y)
范围 |
描述 |
---|---|
|
股息。 |
|
除数。 |
def main():
# Calculate remainder of 10 / 3
# that preserves the sign of 10
fmod_result = math.fmod(10, 3)
console.print(fmod_result)
console.new_line()
# fmod_result = 1.00
# Start threads — Do not delete
start_thread(main)
版权声明#
copysign
returns x with the sign of y
.
Usage:
math.copysign(x, y)
范围 |
描述 |
---|---|
|
要修改的值。 |
|
其符号将被复制的值。 |
def main():
# Return -10 with the sign of 3 (positive)
copysign_result = math.copysign(-10, 3)
console.print(copysign_result)
console.new_line()
# copysign_result = 10.00
# Start threads — Do not delete
start_thread(main)
ldexp#
ldexp
computes x * (2 ** exp)
, which is equivalent to x * 2exp{code}
.
Usage:
math.ldexp(x, exp)
范围 |
描述 |
---|---|
|
基值。 |
|
指数。 |
def main():
# Compute 3 * (2 ** 4)
ldexp_result = math.ldexp(3, 4)
console.print(ldexp_result)
console.new_line()
# ldexp_result = 48.00
# Start threads — Do not delete
start_thread(main)