我的全部代码都在下面(我不想错过任何东西)。因为某些原因,我总是得到一个错误,我不能把一个浮点转换成一个整数?在
import math
def getRange(input):
if (1 <= input < 10):
return [1,1,9]
elif (10 <= input < 190):
return [2,10,99]
elif (190 <= input < 2890):
return [3,100,999]
elif (2890 <= input < 38890):
return [4,1000,9999]
elif (38890 <= input < 488890):
return [5,10000,99999]
elif (488890 <= input < 5888889):
return [6,100000,999999]
def getDigit(input):
workingRange=getRange(input)
multi_digit_dec = ((input-workingRange[1])/workingRange[0])+workingRange[1]
multi_digit_float = math.floor((input-workingRange[1])/workingRange[0])+workingRange[1]
print multi_digit_float
multi_digit_int = input(multi_digit_float)
decimal_remainder = multi_digit_int - multi_digit_dec
## digit_id = decimal_remainder * len(str(multi_digit_int))
## actual_digit = str(multi_digit_dec)[digit_id]
## return actual_digit
getDigit(100)
我的错误是:
^{pr2}$上面更新的代码反映了名为int的变量对输入的更改
不要使用
int
作为变量名(函数getDigit
)。在在
elif
语句的堆栈中,如果首先测试输入数是否小于1,则不需要检查除第一个之外的范围的下限。这将省去elif
中的一半措辞,而且,对于这样的测试使用循环更紧凑。例如,下面的代码生成下面显示的输出。在输出:
^{pr2}$问题是您使用了
int
作为变量名,并且隐藏了built-in function。重命名变量。在一般来说,熟悉names of the built-in functions,避免这类问题是值得的。在
相关问题 更多 >
编程相关推荐