Làm thế nào để bạn chia một số nguyên thành hai phần trong python?

Khả năng hiểu danh sách cung cấp chức năng mạnh mẽ trong python để viết mã trong một dòng và đạt được kết quả mong muốn

Chúng ta đã xem qua một ví dụ mã chứng minh việc tách các số bằng vòng lặp for. Bây giờ chúng ta sẽ viết lại chương trình tương tự bằng cách sử dụng các kỹ thuật hiểu và hiểu danh sách

givenNumber = 987654321
charterList = [receivedDigit for receivedDigit in str(givenNumber)]
print(charterList)

Kết quả

['9', '8', '7', '6', '5', '4', '3', '2', '1']

Giải trình

  • Chuyển đổi số đã cho thành chuỗi dưới dạng str(givenNumber). Tại sao?
  • Khả năng hiểu danh sách ngắt chuỗi đã cho (được chuyển đổi từ số) thành các chữ số rời rạc như được định nghĩa là gotDigit trong chương trình
  • Đã thu thập danh sách các chữ số (là danh sách các ký tự) dưới dạng CharterList và in. /li>

Bây giờ chúng tôi đã nhận được một danh sách các ký tự riêng lẻ thay vì danh sách các số riêng lẻ được mong đợi là. Chính xác?

Chỉ cần chuyển đổi ký tự thành int trong phạm vi hiểu danh sách. Đây là mã trình diễn dễ đọc

givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)

Ở đây int(receivedDigit) chuyển đổi từng ký tự qua phép lặp và đầu ra cuối cùng trở thành danh sách các số riêng lẻ như mong đợi như bên dưới

Nhận một số dương từ người dùng và in từng chữ số của một số

ví dụ 1

số = 12

đầu ra

2

1

ví dụ 2

số = 123

đầu ra

3

2

1




Hãy thiết kế một logic

số = 12

Đầu tiên chúng ta hãy suy nghĩ, làm thế nào để tách chữ số cuối cùng 2 từ số 12

Vì các số là số thập phân (cơ số 10), phạm vi của mỗi chữ số phải từ 0 đến 9

Vì vậy, chúng ta có thể dễ dàng thực hiện bằng cách thực hiện modulo 10

Giống,

12 % 10 => 2 ( ta đã tách chữ số 2 từ số 12)

Bây giờ, chúng ta phải tách chữ số 1 từ số 12

Điều này có thể đạt được bằng cách chia số cho 10 và lấy modulo 10

Giống,

12/10 => 1

Bây giờ lấy modulo 10

1 % 10 = 1

Sử dụng phương pháp trên, chúng ta có thể tách từng chữ số từ một số




Hợp lý

Cho đến khi số trở thành 0

làm

Lấy số % 10 và in kết quả

Chia số đó cho 10. (số = số / 10)




Thí dụ

Hãy lấy num = 123

Bước 1

Num = 123 (không bằng 0)

Mod = 123% 10 ==> 3

Số = 123/10 ==> 12

Bước 2

Num = 12 (không bằng 0)

Mod = 12% 10 ==> 2

Số = 12/10 ==> 1

Bước 3

Num = 1 (không bằng 0)

Chế độ = 1% 10 ==> 1

Số = 1/10 ==> 0

Bước 4

Num = 0 (bằng 0, dừng quá trình)


Giải thích bằng hình ảnh

Làm thế nào để bạn chia một số nguyên thành hai phần trong python?



Chương trình

Thí dụ

/*****************************
 *Program : split the digits *
 *Language : C               *
 *****************************/
 
#include

int main()
{
    int num;
    
    scanf("%d",&num);
    
    while(num > 0) //do till num greater than  0
    {
        int mod = num % 10;  //split last digit from number
        printf("%d\n",mod); //print the digit. 
    
        num = num / 10;    //divide num by 10. num /= 10 also a valid one 
    }
    
    return 0;
}


chạy nó


Chủ đề bạn có thể thích

Hiểu danh sách là một cách ngắn gọn và duyên dáng hơn nhiều để tạo danh sách sẽ được hình thành dựa trên các giá trị đã cho của danh sách đã tồn tại

Trong phương pháp này, các hàm

givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
8 và
givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
9 cũng được sử dụng cùng với khả năng hiểu Danh sách để chia số nguyên thành các chữ số. Các hàm
givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
8 và
givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
9 được sử dụng để chuyển đổi một số thành một chuỗi và sau đó thành một số nguyên tương ứng

Đoạn mã sau sử dụng khả năng hiểu danh sách để chia một số nguyên thành các chữ số trong Python

num = 13579
x = [int(a) for a in str(num)]
print(x)

đầu ra

Đầu tiên, số

/*****************************
 *Program : split the digits *
 *Language : C               *
 *****************************/
 
#include

int main()
{
    int num;
    
    scanf("%d",&num);
    
    while(num > 0) //do till num greater than  0
    {
        int mod = num % 10;  //split last digit from number
        printf("%d\n",mod); //print the digit. 
    
        num = num / 10;    //divide num by 10. num /= 10 also a valid one 
    }
    
    return 0;
}
2 được chuyển đổi thành một chuỗi bằng cách sử dụng
givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
8 trong đoạn mã trên. Sau đó, tính năng hiểu danh sách được sử dụng để ngắt chuỗi thành các chữ số rời rạc. Cuối cùng, các chữ số được chuyển đổi trở lại thành số nguyên bằng hàm
givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
9

Sử dụng Hàm import math n = 13579 x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)] print(x) 2 và import math n = 13579 x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)] print(x) 3 để chia một số nguyên thành các chữ số trong Python

Thao tác tách số nguyên thành các chữ số trong Python có thể được thực hiện mà không cần chuyển đổi số thành chuỗi trước. Hơn nữa, phương pháp này nhanh gấp đôi so với chuyển đổi nó thành một chuỗi trước tiên

Hàm

import math
n = 13579
x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
print(x)
2 làm tròn một số thành một số nguyên. Hàm
import math
n = 13579
x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
print(x)
3 cung cấp logarit tự nhiên của một số. Để sử dụng cả hai chức năng này, chúng ta nên nhập thư viện
import math
n = 13579
x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
print(x)
6

Mô-đun

import math
n = 13579
x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
print(x)
6 có thể được định nghĩa là mô-đun tiêu chuẩn và luôn có thể truy cập được trong Python. Nó cung cấp quyền truy cập vào các chức năng thư viện C cơ bản

Đoạn mã sau sử dụng khả năng hiểu danh sách, các hàm

import math
n = 13579
x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
print(x)
2 và
import math
n = 13579
x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
print(x)
3 để chia một số nguyên thành các chữ số trong Python

import math
n = 13579
x = [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
print(x)

đầu ra

Sử dụng Hàm ['9', '8', '7', '6', '5', '4', '3', '2', '1'] 40 và ['9', '8', '7', '6', '5', '4', '3', '2', '1'] 41 để tách một số nguyên thành các chữ số trong Python

Hàm

['9', '8', '7', '6', '5', '4', '3', '2', '1']
40 thực hiện một chức năng đã nêu cho mọi mục trong một lần lặp. Mục này sau đó được ký gửi làm tham số cho chức năng

Phương thức

['9', '8', '7', '6', '5', '4', '3', '2', '1']
43, như tên gợi ý, được sử dụng để tách một chuỗi thành một danh sách. Nó có một cú pháp cơ bản và chứa hai tham số,
['9', '8', '7', '6', '5', '4', '3', '2', '1']
44 và
['9', '8', '7', '6', '5', '4', '3', '2', '1']
45

Số cần phải ở định dạng chuỗi để phương pháp này có thể được sử dụng

Đoạn mã sau sử dụng các hàm

['9', '8', '7', '6', '5', '4', '3', '2', '1']
40 và
['9', '8', '7', '6', '5', '4', '3', '2', '1']
41 để chia một số nguyên thành các chữ số trong Python

['9', '8', '7', '6', '5', '4', '3', '2', '1']
4

đầu ra

Ở đây, chúng tôi đã sử dụng phương pháp

['9', '8', '7', '6', '5', '4', '3', '2', '1']
41 để chia số đã cho ở định dạng chuỗi thành danh sách các chuỗi chứa mọi số. Sau đó, hàm
['9', '8', '7', '6', '5', '4', '3', '2', '1']
40 được sử dụng, được sử dụng để tạo đối tượng bản đồ chuyển đổi từng chuỗi thành số nguyên. Cuối cùng,
givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
50 được sử dụng để tạo danh sách từ đối tượng bản đồ

Sử dụng Vòng lặp givenNumber = 987654321 charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)] print(charterList) 51 để chia một số nguyên thành các chữ số trong Python

Trong phương pháp này, chúng tôi sử dụng một vòng lặp và thực hiện kỹ thuật cắt cho đến khi số chữ số được chỉ định (trong trường hợp này là

givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
52) và cuối cùng, sử dụng hàm
givenNumber = 987654321
charterList = [int(receivedDigit) for receivedDigit in str(givenNumber)]
print(charterList)
9 để chuyển đổi thành một số nguyên