使用我的代码,我想得到整数的最后两位数.但是当我创建xa正数时,它将采用前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)
Run Code Online (Sandbox Code Playgroud)
Bat*_*eba 19
为什么不提取数模100的绝对值?也就是说,使用
abs(num) % 100
Run Code Online (Sandbox Code Playgroud)
提取最后两位数?
在性能和清晰度方面,这种方法很难被击败.
要获得最后 2 位数字,num我将使用 1 行简单的 hack:
str(num)[-2:]
Run Code Online (Sandbox Code Playgroud)
这将给出一个字符串。要获得 int,只需用 int 包裹:
int(str(num)[-2:])
Run Code Online (Sandbox Code Playgroud)
提取数字最后两位数字的更简单方法(效率较低)是将数字转换为数字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`
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过使用模%运算符(更有效)来实现它,(要了解更多信息,请查看% 在 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
Run Code Online (Sandbox Code Playgroud)
示例运行:
>>> get_last_digits(95432)
32
>>> get_last_digits(2)
2
>>> get_last_digits(34644, last_digits_count=4)
4644
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16194 次 |
| 最近记录: |