Tích của các số đã cho trong python

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên


Trình chỉnh sửa mã Python

Có một cách khác để giải quyết giải pháp này?

Trước. Viết chương trình Python để tìm tích lớn nhất và nhỏ nhất từ ​​các cặp bộ trong một danh sách cho trước.
Tiếp theo. Viết chương trình Python để xen kẽ nhiều danh sách có cùng độ dài.

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



con trăn. Lời khuyên trong ngày

Lambda

Lambda giống như một chức năng nhỏ một dòng do người dùng định nghĩa. Khi bạn có một chức năng không quá phức tạp và có thể được thực hiện dưới dạng lambda, việc nhập nó trong 1 dòng đơn giản sẽ thuận tiện hơn nhiều. Làm cho bạn nhận ra mức độ thực tế của Python

Tên chương trình này là Tích của các số đã cho. Viết chương trình Python về Tích của các số đã cho, nó có hai trường hợp kiểm tra

Liên kết bên dưới chứa câu hỏi, giải thích và trường hợp kiểm tra Sản phẩm của các số đã cho

https. //lái xe. Google. com/file/d/183UAEG0VEPhi_5aoLZwcBOK2iUALpI2G/view?usp=sharing

Chúng tôi cần đầu ra chính xác khi mã được chạy

//Để tìm Tổng và Tích của các chữ số riêng lẻ của một số đã cho
n = int(input("Nhập số. "))
a = 1
c = 0
trong khi n > 0.
b = n % 10
a = a * b
c = c + b
n = int(n/10)

print(a," là tích của một chữ số")
print(c," là tích của một chữ số")

Một trong những nhiệm vụ thường xuyên được sử dụng cho người mới bắt đầu học lập trình là tìm tổng và tích của các chữ số của một số. Số có thể được nhập từ bàn phím hoặc có thể tạo một số ngẫu nhiên. Nhiệm vụ được xây dựng như sau

Một số được đưa ra. Tìm tổng và tích các chữ số của nó

Ví dụ, tổng các chữ số của số 253 là 10, vì 2 + 5 + 3 = 10. Tích các chữ số của số 253 là 30, vì 2 * 5 * 3 = 30

Người ta thường giả định rằng một vấn đề nhất định nên được giải quyết theo phương pháp số học. Tức là với một số đã cho, phải thực hiện một số phép toán số học nhất định để có thể rút ra tất cả các số từ nó, sau đó cộng và nhân chúng

Và ở đây các hoạt động của bộ phận hoàn toàn và tìm kiếm phần còn lại đến giải cứu. Nếu chia một số cho 10 thì chữ số tận cùng của số đó sẽ bị "mất". Ví dụ: 253 ÷ 10 = 25 (dư 3). Mặt khác, chữ số bị mất này là phần còn lại của phép chia. Nhận được con số này, chúng ta có thể cộng nó với tổng các chữ số và nhân tích các chữ số của số đó với nó

Đặt n là chính số đó, tổng tổng các chữ số của nó và nhân tích. Sau đó, thuật toán tìm tổng và tích của các số có thể được mô tả bằng lời nói như sau

  1. Gán 0 cho biến suma
  2. Đặt biến nhiều thành một. Bạn không thể gán 0, vì nhân với 0 sẽ ra 0
  3. Trong khi giá trị của biến n lớn hơn 0, hãy lặp lại các bước sau
    1. Tìm số dư của phép chia n cho 10, tức là lấy chữ số tận cùng của số
    2. Thêm chữ số trích xuất vào tổng và tăng sản phẩm bằng chữ số này
    3. Loại bỏ chữ số cuối cùng của n bằng cách chia cho 10

Trong Python, thao tác tìm số dư của một phép chia được biểu thị bằng dấu phần trăm - 

n = int (input ())

suma = 0
mult = 1

while n> 0:
    digit = n% 10
    suma = suma + digit
    mult = mult * digit
    n = n // 10

print ("Sum:", suma)
print ("Product:", mult)
9.  Phép chia số nguyên - hai dấu gạch chéo - 
253
Amount: 10
Composition: 30
0

mã ví dụ

n = int (input ())

suma = 0
mult = 1

while n> 0:
    digit = n% 10
    suma = suma + digit
    mult = mult * digit
    n = n // 10

print ("Sum:", suma)
print ("Product:", mult)

đầu ra

253
Amount: 10
Composition: 30

Việc thay đổi giá trị ​​ của các biến có thể viết dưới dạng rút gọn

...
while n> 0:
    digit = n% 10
    suma + = digit
    mult * = digit
    n // = 10
...

Chương trình trên chỉ phù hợp để tìm tổng và tích các chữ số của một số tự nhiên, nghĩa là các số nguyên lớn hơn 0. Nếu số ban đầu có thể là bất kỳ số nguyên nào, hãy xem xét xử lý số âm và số không

Nếu số âm, nó không ảnh hưởng đến tổng các chữ số của nó. Trong trường hợp này, chỉ cần sử dụng hàm abc () có sẵn trong Python là đủ, hàm này trả về giá trị tuyệt đối của đối số được truyền cho nó. Nó sẽ chuyển đổi một số âm thành một số dương và vòng lặp while

253
Amount: 10
Composition: 30
1 sẽ hoạt động như trước với điều kiện của nó

Nếu một số bằng không, thì theo logic, tổng các chữ số của nó và tích của chúng phải có giá trị bằng không. Vòng lặp sẽ không hoạt động. Vì giá trị ban đầu của nhiều là 1, nên kiểm tra thêm để xem số đã cho có bằng 0 không

Một chương trình xử lý tất cả các số nguyên có thể bắt đầu như thế này

n = abs (int (input ()))

suma = 0
mult = 1
if n == 0:
    mult = 0
...

Lưu ý rằng nếu chính số đó chứa chữ số 0 (ví dụ: 503), thì tích của tất cả các chữ số sẽ bằng 0. Hãy làm phức tạp nhiệm vụ

Một số tự nhiên được nhập. Tìm tổng và tích của các chữ số tạo nên số này. Hơn nữa, nếu số chứa chữ số 0 thì không nên tính đến khi tìm tác phẩm

Để giải quyết vấn đề như vậy, kiểm tra chữ số được trích xuất cho bất đẳng thức của nó bằng 0 được thêm vào vòng lặp. Â Điều này phải được thực hiện trước khi nhân giá trị của biến sản phẩm với nó

n = int (input ())

suma = 0
mult = 1

while n> 0:
    digit = n% 10
    if digit! = 0:  
        suma + = digit
        mult * = digit
    n = n // 10

print ("Sum:", suma)
print ("Product:", mult)

Lưu ý rằng tiêu đề của một câu lệnh có điều kiện 

253
Amount: 10
Composition: 30
2 trong Python có thể được viết tắt đơn giản là 
253
Amount: 10
Composition: 30
3. Vì 0 là sai. Tất cả các số khác được coi là đúng

Thuật toán toán học ở trên để tìm tổng và tích của các chữ số của một số có thể được gọi là cổ điển hoặc phổ quát. Â Theo cách tương tự, vấn đề có thể được giải quyết bằng tất cả các ngôn ngữ mệnh lệnh, bất kể sự phong phú của các công cụ của chúng. Â Tuy nhiên, phương tiện của ngôn ngữ lập trình có thể cho phép giải quyết vấn đề theo những cách khác, thường đơn giản hơn. Â Ví dụ: trong Python, bạn không thể chuyển đổi chuỗi đã nhập thành một số, nhưng trích xuất các ký tự riêng lẻ từ chuỗi đó, bạn có thể chuyển đổi chuỗi này thành kiểu số nguyên int

a = input ()

suma = 0
mult = 1

for digit in a:
    suma + = int (digit)
    mult * = int (digit)

print ("Sum:", suma)
print ("Product:", mult)

Nếu bạn thêm một kiểm tra vào mã để ký tự chuỗi được trích xuất thực sự là một chữ số, thì chương trình sẽ trở nên linh hoạt hơn. Â Với sự trợ giúp của nó, không chỉ có thể tính tổng và tích các chữ số của các số nguyên, mà cả các số thực, cũng như các chữ số được trích xuất từ ​​​​một chuỗi tùy ý

n = int (input ())

suma = 0
mult = 1

while n> 0:
    digit = n% 10
    suma = suma + digit
    mult = mult * digit
    n = n // 10

print ("Sum:", suma)
print ("Product:", mult)
0

Ví dụ thực hiện

n = int (input ())

suma = 0
mult = 1

while n> 0:
    digit = n% 10
    suma = suma + digit
    mult = mult * digit
    n = n // 10

print ("Sum:", suma)
print ("Product:", mult)
1

Phương thức chuỗi isdigit() kiểm tra xem chuỗi chỉ chứa số. Trong trường hợp của chúng tôi, vai trò của một chuỗi được thực hiện bởi một ký tự được trích xuất ở lần lặp hiện tại của vòng lặp

Kiến thức sâu về ngôn ngữ Python cho phép giải quyết vấn đề theo những cách kỳ lạ hơn

n = int (input ())

suma = 0
mult = 1

while n> 0:
    digit = n% 10
    suma = suma + digit
    mult = mult * digit
    n = n // 10

print ("Sum:", suma)
print ("Product:", mult)
2

Hàm tích hợp list() chuyển đổi chuỗi được truyền cho nó thành một danh sách. Vì vậy, nếu chuỗi đã cho là - ______04, thì bạn sẽ nhận được một danh sách 

253
Amount: 10
Composition: 30
5

Biểu thức 

253
Amount: 10
Composition: 30
6là một trình tạo danh sáchÂ.  Trong trường hợp này, bạn sẽ nhận được một danh sách các số.  
253
Amount: 10
Composition: 30
7

Hàm tích hợp sum() tính tổng các phần tử của đối số được truyền cho nó

Hàm reduce() của funcools () nhận hai đối số — một biểu thức lambda và trong trường hợp này là một danh sách.  Ở đây 

253
Amount: 10
Composition: 30
8, tích của tích diễn ra trong biến và 
253
Amount: 10
Composition: 30
9 mỗi giá trị tiếp theo của danh sách diễn ra

Tích của 2 số là gì?

Tích của hai số là kết quả bạn nhận được khi nhân chúng với nhau . Vậy 12 là tích của 3 và 4, 20 là tích của 4 và 5, v.v.

Có chức năng nhân trong Python không?

Hàm multiply() trong Python được sử dụng để nhân các đối số theo từng phần tử.