It would certainly not slow down your program to almost any measurable extent to convert the units in Python, and neither would it reduce accuracy. 1 knot is exactly equal to 1.852 km/h and 1 foot is exactly equal to 0.3048 meters, thus we get:
knots = speed / 1.852
altft = alt / 0.3048
And these numbers are as exact as possible.
As to how much error these would do, such divisions are safe operations w.r.t. precision, lets assume that the 32-bit IEEE floats are used, and you do 1 extra multiplication and 1 extra division. Each of these would have a maximum error of 0.5 binary digits of precision, for a total of 1 binary digit of error out of 23 bits of precision. Thus the maximum of the error is certainly not more than 1 / (2^22), or 1/4194304. For speeds in range of 500 knots, it would make a difference of 8.7 inches per hour, for altitudes of ~30000 feet it would make a difference of 0.86 inches (oops, maybe your GPS receiver is upside down). If you think these errors are significant, you should know that any sane library and Python alike use doubles already, and thus the error would be approximately 1073741824 times smaller.