整数的最后2位?蟒蛇 3
Posted
技术标签:
【中文标题】整数的最后2位?蟒蛇 3【英文标题】:Last 2 digits of an integer? Python 3 【发布时间】:2017-05-30 14:35:18 【问题描述】:使用我的代码,我想获取整数的最后两位。但是当我将 x 设为正数时,它将取前 x 位,如果是负数,则会删除前 x 位。
代码:
number_of_numbers = 1
num = 9
while number_of_numbers <= 100:
done = False
num = num*10
num = num+1
while done == False:
num_last = int(repr(num)[x])
if num_last%14 == 0:
number_of_numbers = number_of_numbers + 1
done = True
else:
num = num + 1
print(num)
【问题讨论】:
只要abs(num) % 100
。
【参考方案1】:
提取数字的最后两位数字的更简单方法(效率较低)是将数字转换为str
,然后对数字的最后两位数字进行切片。例如:
# sample function
def get_last_digits(num, last_digits_count=2):
return int(str(num)[-last_digits_count:])
# ^ convert the number back to `int`
或者,您可以通过使用取模 %
运算符来实现它(更高效),(要了解更多信息,请查看 How does % work in Python?)为:
def get_last_digits(num, last_digits_count=2):
return abs(num) % (10**last_digits_count)
# ^ perform `%` on absolute value to cover `-`ive numbers
示例运行:
>>> get_last_digits(95432)
32
>>> get_last_digits(2)
2
>>> get_last_digits(34644, last_digits_count=4)
4644
【讨论】:
转换操作很昂贵。如果有更简单的方法,为什么要这样做? @Shiva:现在我已经明确提到转换效率较低。 Converison 的实现更简单(至少根据我)【参考方案2】:为什么不提取数模100的绝对值呢?也就是说,使用
abs(num) % 100
提取最后两位数?
在性能和清晰度方面,这种方法很难被击败。
【讨论】:
【参考方案3】:要获得num
的最后 2 位数字,我会使用 1 行简单的 hack:
str(num)[-2:]
这将给出一个字符串。 要获得一个 int,只需用 int 包装:
int(str(num)[-2:])
【讨论】:
【参考方案4】:获取整数的最后 2 位。
a = int(input())
print(a % 100)
【讨论】:
【参考方案5】:你可以试试这个:
float(str(num)[-2:])
【讨论】:
以上是关于整数的最后2位?蟒蛇 3的主要内容,如果未能解决你的问题,请参考以下文章