在Python中获取数字的前两位

要获取数字的前两位数:

  1. 使用 str() 类将数字转换为字符串。
  2. 使用字符串切片来选择字符串的前 2 个字符。
  3. 使用 int() 类将结果转换为整数。
number = 13579

first_2 = int(str(number)[:2])
print(first_2)  # 👉️ 13

我们使用 str() 函数将整数转换为字符串,因此我们可以使用字符串切片。

切片 my_str[:2] 从索引 0 开始并上升到但不包括索引 2。

字符串切片的语法是 my_str[start:stop:step]

start 索引是包含性的,而 stop 索引是排他性的(直到,但不包括)。

Python 索引是从零开始的,因此字符串中的第一个字符的索引为 0,最后一个字符的索引为 -1 或 len(my_str) - 1

一旦我们有了前 2 位数字,我们就使用 int() 函数将字符串转换为整数。

number = 13579

first_2 = int(str(number)[:2])
print(first_2)  # 👉️ 13

我们可以使用相同的方法来获取数字的前 N 位。

number = 13579


first_3 = int(str(number)[:3])
print(first_3)  # 👉️ 135

first_4 = int(str(number)[:4])
print(first_4)  # 👉️ 1357

或者,我们可以使用递归。

def get_first_two_digits(number):
    if number < 100:
        return number
    return get_first_two_digits(number // 10)


print(get_first_two_digits(2468))  # 👉️ 24
print(get_first_two_digits(514))  # 👉️ 51
print(get_first_two_digits(95))  # 👉️ 95
print(get_first_two_digits(7))  # 👉️ 7

该函数检查数字是否小于 100,如果满足条件,则返回该数字。

否则,它返回调用自身的结果,其数字是 floor 除以 10。

整数除法 / 产生一个浮点数,而 floor 除法 // 产生一个整数。

使用 floor 除法运算符的结果是对结果应用 floor() 函数的数学除法。

my_num = 50

print(my_num / 5)  # 👉️ 10.0 (float)
print(my_num // 5)  # 👉️ 10 (int)

我们将数字除以 10,直到得到一个 2 位数字并返回结果。

选择哪种方法是个人喜好的问题。 我会继续将数字转换为字符串并使用字符串切片,因为我发现它非常直观且更具可读性。