Làm thế nào để bạn tính tổng một số có 3 chữ số 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 để chuyển đổi áp suất tính bằng kilopascal sang pound trên inch vuông, milimét thủy ngân [mmHg] và áp suất khí quyển.
Tiếp theo. Viết chương trình Python để sắp xếp ba số nguyên mà không sử dụng câu lệnh điều kiện và vòng lặp.

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



Chia sẻ Hướng dẫn / Bài tập này trên. FacebookTwitter

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

Loại bỏ các ký tự không mong muốn

Bạn có thể loại bỏ khoảng trắng hoặc bất kỳ ký tự cụ thể nào bằng các phương thức dải trong Python. Bạn có thể sử dụng một trong hai dải trơn cho cả hai bên, lstrip cho bên trái và rstrip chỉ cho bên phải

Cho một số nguyên. Làm cách nào để tổng tất cả các chữ số của số này để tính crossfoot [tổng chéo]?

Xem xét các ví dụ sau

  • 12 – > 1+2 = 3
  • 123 – > 1+2+3 = 3
  • 244 – > 2+4+4 = 10
  • 981223 – > 9+8+1+2+2+3 = 25

Phương pháp 1. tổng [] với Biểu thức trình tạo

Hàm

number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
0 tích hợp trong Python tính tổng tất cả các phần tử trong
number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
1. Đây có thể là một danh sách, một bộ, một tập hợp hoặc bất kỳ cấu trúc dữ liệu nào khác cho phép bạn lặp lại các phần tử

Để tính tổng tất cả các chữ số của một số nguyên nhất định, hãy chuyển biểu thức trình tạo ____22 vào hàm _ _ _ _ _

number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
3. Biểu thức trình tạo chuyển đổi số thành chuỗi bằng cách sử dụng hàm
number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
4 tích hợp, lặp qua từng ký tự chữ số và chuyển đổi từng ký tự thành số nguyên. Hàm
number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
5 tính tổng trên tất cả các ký tự đó

number = 123
res = sum[int[digit] for digit in str[number]]

print[res]
# 6

Bạn có thể tìm hiểu thêm về hàm

number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
5 trong video này

Danh sách sum[] trong Python - Hướng dẫn minh họa đơn giản


Xem video này trên YouTube

Phương pháp 2. bản đồ [] Chức năng

Một cách khác được đưa ra tiếp theo

Để tính tổng tất cả các chữ số của một số nguyên đã cho bằng cách sử dụng hàm

number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
1, hãy làm theo các bước sau

  • Chuyển đổi số thành chuỗi bằng cách sử dụng
    number = 123
    res = sum[map[int, str[number]]]
    
    print[res]
    # 6
    4
  • Truyền kết quả vào hàm
    number = 123
    res = sum[map[int, str[number]]]
    
    print[res]
    # 6
    3 dưới dạng đối số
    number = 123
    res = sum[map[int, str[number]]]
    
    print[res]
    # 6
    1 thứ hai. Truyền hàm
    number = 123
    res = sum[map[int, str[number]]]
    
    print[res]
    # 6
    5 tích hợp làm đối số
    number = 123
    res = sum[map[int, str[number]]]
    
    print[res]
    # 6
    6 đầu tiên. Điều này chuyển đổi từng chữ số ký tự thành một số nguyên
  • Chuyển kết quả lặp lại của các chữ số nguyên vào hàm
    number = 123
    res = sum[map[int, str[number]]]
    
    print[res]
    # 6
    3 để tính tổng của tất cả các chữ số
number = 123
res = sum[map[int, str[number]]]

print[res]
# 6

Vui lòng xem video sau để đi sâu vào chức năng

number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
1

Làm chủ chức năng bản đồ Python [+Video]


Xem video này trên YouTube

Phương pháp 3. Giải pháp chỉ dành cho số nguyên nhanh

Hai giải pháp trước chuyển đổi số nguyên thành một chuỗi và các chữ số trở lại số nguyên. Điều này tương đối tốn kém và không thực sự cần thiết. Một giải pháp "dựa trên số nguyên" thuần túy đạt được hiệu suất tốt hơn nhiều

number = 123
res = 0
while number:
    res += number % 10
    number //= 10
print[res]

Mã thực hiện các bước sau để tính tổng của tất cả các chữ số

  • Bắt đầu với kết quả 0
  • Nói lại
  • … Sử dụng phép cộng tại chỗ để cộng vào tổng hiện tại của tất cả các chữ số, giá trị nguyên của vị trí cuối cùng của số có nhiều chữ số của kết quả modulo của
    number = 123
    res = sum[map[int, str[number]]]
    
    print[res]
    # 6
    9. Ví dụ, kết quả của
    number = 123
    res = 0
    while number:
        res += number % 10
        number //= 10
    print[res]
    0 là
    number = 123
    res = 0
    while number:
        res += number % 10
        number //= 10
    print[res]
    1, i. e. , chỉ giá trị của chữ số cuối cùng
  • … Xóa vị trí cuối cùng của số có nhiều chữ số bằng cách chia nó cho 10 bằng phép chia số nguyên. Ví dụ, kết quả của
    number = 123
    res = 0
    while number:
        res += number % 10
        number //= 10
    print[res]
    2 là
    number = 123
    res = 0
    while number:
        res += number % 10
        number //= 10
    print[res]
    3, tôi. e. , chữ số cuối cùng đã bị xóa
  • Kết thúc vòng lặp ngay khi số nhận giá trị 0

Đây là giải pháp nhanh nhất cho đến nay vì nó không cần chuyển đổi từ số nguyên sang chuỗi và ngược lại

Trong trường hợp bạn cần một số thông tin cơ bản, hãy xem video sau về bổ sung tại chỗ

[Tổng quan] Toán tử gán tại chỗ của Python. toán tử hợp chất


Xem video này trên YouTube

Phương pháp 4. Giải pháp đệ quy

Giải pháp đệ quy sử dụng thực tế là để tính tổng của

number = 123
res = 0
while number:
    res += number % 10
    number //= 10
print[res]
4 chữ số [e. g. ,
number = 123
res = 0
while number:
    res += number % 10
    number //= 10
print[res]
5 chữ số cho số
number = 123
res = 0
while number:
    res += number % 10
    number //= 10
print[res]
6] bạn có thể tính tổng của
number = 123
res = 0
while number:
    res += number % 10
    number //= 10
print[res]
7 chữ số đầu tiên
number = 123
res = 0
while number:
    res += number % 10
    number //= 10
print[res]
8 và thêm chữ số cuối cùng vào đó, i. e. ,
number = 123
res = 0
while number:
    res += number % 10
    number //= 10
print[res]
9

Đây là cách bạn triển khai điều này trong Python

number = 123
res = sum[map[int, str[number]]]

print[res]
# 6
9

Để tìm hiểu về toán tử bậc ba được sử dụng trong câu lệnh return, hãy xem video sau

Toán tử Ternary Python – Và một vụ hack một lớp đáng ngạc nhiên


Xem video này trên YouTube

Đi đâu từ đây?

Đủ lý thuyết. Hãy thực hành một số

Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa

Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?

Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế

Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?

🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn

Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã trực tuyến của mình cũng như cách bạn có thể làm được—từ sự thoải mái của bạn

Tham gia hội thảo trên web miễn phí ngay bây giờ

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Chủ Đề