Hướng dẫn how do you count the number of digits in python? - làm thế nào để bạn đếm số chữ số trong python?

Ví dụ 1: Số lượng chữ số trong một số nguyên sử dụng trong khi vòng lặp

num = 3452
count = 0

while num != 0:
    num //= 10
    count += 1

print("Number of digits: " + str(count))

Đầu ra

Number of digits: 4

Trong chương trình này, vòng lặp trong khi được lặp lại cho đến khi biểu thức kiểm tra

Number of digits: 4
1 được đánh giá thành 0 (sai).

  1. Sau lần lặp đầu tiên,
    Number of digits: 4
    2 sẽ được chia cho 10 và giá trị của nó sẽ là 345. Sau đó,
    Number of digits: 4
    3 được tăng lên 1.
  2. Sau lần lặp thứ hai, giá trị của
    Number of digits: 4
    2 sẽ là 34 và
    Number of digits: 4
    3 được tăng lên 2.
  3. Sau lần lặp thứ ba, giá trị của
    Number of digits: 4
    2 sẽ là 3 và
    Number of digits: 4
    3 được tăng lên 3.
  4. Sau lần lặp thứ tư, giá trị của
    Number of digits: 4
    2 sẽ là 0 và
    Number of digits: 4
    3 được tăng lên 4.
  5. Sau đó, biểu thức kiểm tra được đánh giá là sai và vòng lặp chấm dứt.

Ví dụ 2: Sử dụng các phương pháp sẵn có

num = 123456
print(len(str(num)))

Đầu ra

6

Trong chương trình này, vòng lặp trong khi được lặp lại cho đến khi biểu thức kiểm tra

Number of digits: 4
1 được đánh giá thành 0 (sai).

Đã vài năm kể từ khi câu hỏi này được hỏi, nhưng tôi đã biên soạn một điểm chuẩn của một số phương pháp để tính độ dài của một số nguyên.

def libc_size(i): 
    return libc.snprintf(buf, 100, c_char_p(b'%i'), i) # equivalent to `return snprintf(buf, 100, "%i", i);`

def str_size(i):
    return len(str(i)) # Length of `i` as a string

def math_size(i):
    return 1 + math.floor(math.log10(i)) # 1 + floor of log10 of i

def exp_size(i):
    return int("{:.5e}".format(i).split("e")[1]) + 1 # e.g. `1e10` -> `10` + 1 -> 11

def mod_size(i):
    return len("%i" % i) # Uses string modulo instead of str(i)

def fmt_size(i):
    return len("{0}".format(i)) # Same as above but str.format

(Hàm LIBC yêu cầu một số thiết lập mà tôi chưa bao gồm)

num = 123456
print(len(str(num)))
2 là cảm ơn Brian Preslopsky,
num = 123456
print(len(str(num)))
3 là nhờ GeekTantra, và
num = 123456
print(len(str(num)))
4 là nhờ John La Rooy

Đây là kết quả:

Time for libc size:      1.2204 μs
Time for string size:    309.41 ns
Time for math size:      329.54 ns
Time for exp size:       1.4902 μs
Time for mod size:       249.36 ns
Time for fmt size:       336.63 ns
In order of speed (fastest first):
+ mod_size (1.000000x)
+ str_size (1.240835x)
+ math_size (1.321577x)
+ fmt_size (1.350007x)
+ libc_size (4.894290x)
+ exp_size (5.976219x)

(Tuyên bố miễn trừ trách nhiệm: Hàm được chạy trên các đầu vào từ 1 đến 1.000.000)

Dưới đây là kết quả cho

num = 123456
print(len(str(num)))
5 đến
num = 123456
print(len(str(num)))
6:

Time for libc size:      1.4686 μs
Time for string size:    395.76 ns
Time for math size:      485.94 ns
Time for exp size:       1.6826 μs
Time for mod size:       364.25 ns
Time for fmt size:       453.06 ns
In order of speed (fastest first):
+ mod_size (1.000000x)
+ str_size (1.086498x)
+ fmt_size (1.243817x)
+ math_size (1.334066x)
+ libc_size (4.031780x)
+ exp_size (4.619188x)

Như bạn có thể thấy,

num = 123456
print(len(str(num)))
7 (
num = 123456
print(len(str(num)))
8) là nhanh nhất, nhanh hơn một chút so với sử dụng
num = 123456
print(len(str(num)))
9 và nhanh hơn đáng kể so với những người khác.

  1. Làm thế nào để
  2. Python làm thế nào
  3. Tìm số chữ số trong một số trong Python

Được tạo ra: Tháng 6 năm 07, 2021 | Cập nhật: Tháng 8 đến 10 tháng 8 năm 2021

  1. Tìm số chữ số bên trong một số có hàm
    6
    0 trong Python
  2. Tìm số chữ số bên trong một số có hàm
    num = 123456
    print(len(str(num)))
    1 trong Python

Hướng dẫn này sẽ giới thiệu các phương thức để đếm số chữ số bên trong một số trong Python.

Tìm số chữ số bên trong một số có hàm 60 trong Python

Tìm số chữ số bên trong một số có hàm

num = 123456
print(len(str(num)))
1 trong Python

Hướng dẫn này sẽ giới thiệu các phương thức để đếm số chữ số bên trong một số trong Python.

import math
n = -10
if n > 0:
    digits = int(math.log10(n))+1
elif n == 0:
    digits = 1
elif n < 0:
    digits = int(math.log10(-n))+2
print(digits)

Output:

3

Hàm

6
0 bên trong mô -đun
6
4 của Python được sử dụng để tìm nhật ký của cơ sở 10 cho bất kỳ số được chỉ định nào. Vì các số nguyên cũng nằm trong cơ sở 10, chúng ta có thể có số lượng các chữ số bên trong số nguyên được chỉ định với phương pháp này.

Đoạn mã sau đây cho chúng ta thấy cách chúng ta có thể tìm thấy số chữ số bên trong một số có hàm

6
0.

Chúng tôi đã tính toán số chữ số bên trong số -10 với hàm

6
0 trong mã trên. Mã này cũng xử lý trường hợp số là 0, vì nhật ký của 0 không thể được tính toán. Trước tiên chúng tôi kiểm tra xem số lớn hơn 0. Nếu số lớn hơn 0, chúng tôi tính toán các chữ số bằng cách lấy nhật ký và thêm 1 vào kết quả. Quá trình này được thực hiện vì nhật ký của bất kỳ số nào là ít hơn 1 so với số chữ số bên trong số đó.

Tìm số chữ số bên trong một số có hàm num = 123456 print(len(str(num)))1 trong Python

Hướng dẫn này sẽ giới thiệu các phương thức để đếm số chữ số bên trong một số trong Python.

Hàm

6
0 bên trong mô -đun
6
4 của Python được sử dụng để tìm nhật ký của cơ sở 10 cho bất kỳ số được chỉ định nào. Vì các số nguyên cũng nằm trong cơ sở 10, chúng ta có thể có số lượng các chữ số bên trong số nguyên được chỉ định với phương pháp này.

n = -100.90
digits = len(str(n))
print(digits)

Output:

Number of digits: 4
0

Đoạn mã sau đây cho chúng ta thấy cách chúng ta có thể tìm thấy số chữ số bên trong một số có hàm

6
0.

Chúng tôi đã tính toán số chữ số bên trong số -10 với hàm

6
0 trong mã trên. Mã này cũng xử lý trường hợp số là 0, vì nhật ký của 0 không thể được tính toán. Trước tiên chúng tôi kiểm tra xem số lớn hơn 0. Nếu số lớn hơn 0, chúng tôi tính toán các chữ số bằng cách lấy nhật ký và thêm 1 vào kết quả. Quá trình này được thực hiện vì nhật ký của bất kỳ số nào là ít hơn 1 so với số chữ số bên trong số đó.

Nếu số bằng 0, chúng tôi đặt các chữ số bằng 1. Nếu số nhỏ hơn 0, chúng tôi tính toán số chữ số bằng cách lấy nhật ký của nghịch đảo phụ gia của số âm đó và thêm 2 vào kết quả. Trong trường hợp số âm, chúng tôi thêm 1 vì chúng tôi coi dấu 67 là một chữ số trong ví dụ này. Cuối cùng, chúng tôi in số chữ số trên màn hình.

  • Phương pháp này là tuyệt vời để sử dụng nếu chúng ta muốn xác định số lượng chữ số bên trong số nguyên. Tuy nhiên, nó không hoạt động với số thập phân hoặc bất kỳ số nào có điểm thập phân nổi.
  • Hàm
    num = 123456
    print(len(str(num)))
    1 là một hàm tích hợp trong Python được sử dụng để tính toán số lượng ký tự bên trong một biến chuỗi. Hàm
    num = 123456
    print(len(str(num)))
    1 lấy một chuỗi làm tham số đầu vào và trả về số lượng ký tự bên trong chuỗi đó. Để tính toán số chữ số bên trong một số bằng hàm
    num = 123456
    print(len(str(num)))
    1, trước tiên chúng ta phải chuyển đổi số đó thành một chuỗi với hàm
    num = 123456
    print(len(str(num)))
    0.
  • Hàm
    num = 123456
    print(len(str(num)))
    0 cũng là một hàm tích hợp trong Python được sử dụng để chuyển đổi các đối tượng thuộc các loại khác nhau thành một biến chuỗi. Đoạn mã sau đây cho chúng ta thấy cách chúng ta có thể tìm thấy số chữ số bên trong một số có hàm
    num = 123456
    print(len(str(num)))
    1:
  • Chúng tôi đã tính toán số chữ số bên trong số -100,90 với hàm
    num = 123456
    print(len(str(num)))
    1 trong mã trên. Đầu tiên, chúng tôi đã chuyển đổi số thành một chuỗi bằng hàm
    num = 123456
    print(len(str(num)))
    0. Sau đó, chúng tôi đã chuyển chuỗi kết quả cho hàm
    num = 123456
    print(len(str(num)))
    1 và lưu trữ các giá trị được trả về bởi hàm
    num = 123456
    print(len(str(num)))
    1 bên trong biến
    def libc_size(i): 
        return libc.snprintf(buf, 100, c_char_p(b'%i'), i) # equivalent to `return snprintf(buf, 100, "%i", i);`
    
    def str_size(i):
        return len(str(i)) # Length of `i` as a string
    
    def math_size(i):
        return 1 + math.floor(math.log10(i)) # 1 + floor of log10 of i
    
    def exp_size(i):
        return int("{:.5e}".format(i).split("e")[1]) + 1 # e.g. `1e10` -> `10` + 1 -> 11
    
    def mod_size(i):
        return len("%i" % i) # Uses string modulo instead of str(i)
    
    def fmt_size(i):
        return len("{0}".format(i)) # Same as above but str.format
    
    9. Cuối cùng, chúng tôi đã in giá trị bên trong biến
    def libc_size(i): 
        return libc.snprintf(buf, 100, c_char_p(b'%i'), i) # equivalent to `return snprintf(buf, 100, "%i", i);`
    
    def str_size(i):
        return len(str(i)) # Length of `i` as a string
    
    def math_size(i):
        return 1 + math.floor(math.log10(i)) # 1 + floor of log10 of i
    
    def exp_size(i):
        return int("{:.5e}".format(i).split("e")[1]) + 1 # e.g. `1e10` -> `10` + 1 -> 11
    
    def mod_size(i):
        return len("%i" % i) # Uses string modulo instead of str(i)
    
    def fmt_size(i):
        return len("{0}".format(i)) # Same as above but str.format
    
    9. Đầu ra cho thấy rõ rằng phương pháp này cũng được áp dụng cho các số thập phân hoặc số có chứa một điểm thập phân nổi.
  • Làm thế nào để bạn đếm số chữ số trong một số trong Python?

    Chúng ta có thể giải quyết vấn đề này theo cách sau,..
    Lấy đầu vào 'n' làm số ..
    Một hàm số hàm (n) lấy 'n' đầu vào và trả về số lượng của chữ số làm đầu ra ..
    Lặp lại tất cả các chữ số của số và tăng biến bộ đếm ..
    Trả lại quầy ..

    Làm thế nào để bạn tìm thấy số chữ số trong một số?

    Công thức sẽ là số nguyên của (log10 (số) + 1).Ví dụ, nếu số là 1245, thì nó trên 1000 và dưới 10000, do đó giá trị nhật ký sẽ nằm trong phạm vi 3 integer of (log10(number) + 1). For an example, if the number is 1245, then it is above 1000, and below 10000, so the log value will be in range 3 < log10(1245) < 4. Now taking the integer, it will be 3. Then add 1 with it to get number of digits.

    Làm thế nào để bạn đếm số chữ số trong một mảng trong Python?

    Phương thức Len () trả về số lượng các phần tử trong danh sách.Điều này chỉ hoạt động cho một danh sách hoặc mảng một chiều, nhưng in len ([[0, 0], [0, 0]]) xuất hiện dưới dạng 2, cũng như Len (mảng ([[0, 0], [[0, 0]])).len() returns the number of elements in the list. This only works for a flat, one dimensional list or array, but print len([[0, 0], [0, 0]]) comes out as 2, as does len(array([[0, 0], [0, 0]])) .

    Làm thế nào để bạn đếm số chữ số trong một chuỗi?

    Để đếm số chữ số trong một chuỗi, hãy sử dụng phương thức thay thế () để thay thế tất cả các ký tự không chữ số bằng một chuỗi trống và truy cập thuộc tính độ dài trên kết quả.Phương thức thay thế trả về một chuỗi mới với các trận đấu được thay thế.use the replace() method to replace all non digit characters with an empty string and access the length property on the result. The replace method returns a new string with the matches replaced.