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] # 60 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] # 61. Đâ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] # 63. 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] # 64 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] # 65 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] # 65 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] # 61, 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àmnumber = 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] # 61
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ủanumber = 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] # 69
Để 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ã của mình trực tuyến 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