แบบฝึกหัด Python สำหรับผู้เริ่มต้น
Sum the Digits of a Number in Python
12345 → 1 + 2 + 3 + 4 + 5 = 15. Do it by turning the number into text, or with % and //.
สิ่งที่คุณจะได้เรียนรู้
- Turning a number into its digits
- sum() with a generator
- The arithmetic version with % 10 and // 10
12345
11
23
36
410
515
Visit every digit
การบวกเลขโดดของตัวเลขต้องแยกแต่ละหลักออกมา ใน Python วิธีง่าย ๆ คือแปลงตัวเลขเป็นสตริง แต่ละหลักจะกลายเป็นตัวอักษรที่วนลูปผ่านได้
ประเด็นสำคัญ
str(12345)gives"12345", and each character is one digit.sum(int(d) for d in str(n))adds them.- Without strings: n
%10 is the last digit and n//10 drops it.
ใช้เมื่อไร?
- เรียนรู้ไวยากรณ์และแนวคิดพื้นฐานของ Python ผ่านตัวอย่างสั้น ๆ ที่เข้าใจง่าย
- สร้างพื้นฐานที่มั่นคงก่อนไปต่อกับโจทย์ที่ซับซ้อนขึ้น
- รันโค้ดในเบราว์เซอร์ได้ทันทีโดยไม่ต้องติดตั้ง Python บนเครื่อง
โค้ดตัวอย่าง
main.py
number = 12345
# Convert each digit character back to an integer.
total = sum(int(digit) for digit in str(abs(number)))
print(f"sum={total}")
ผลลัพธ์จากการรัน
sum=15
อธิบายโค้ด
นิพจน์ str(abs(number)) แปลงตัวเลขเป็นสตริง "12345" โดย abs() ลบเครื่องหมายลบถ้าเป็นจำนวนติดลบ นิพจน์ int(digit) for digit in ... แปลงแต่ละตัวอักษรกลับเป็นตัวเลข แล้ว sum() บวกทั้งหมด ผลลัพธ์คือ 1 + 2 + 3 + 4 + 5 = 15
เปลี่ยนค่าและรันโปรแกรมด้วย คอมไพเลอร์ Python ออนไลน์ของ CodeUtility โดยไม่ต้องติดตั้ง Python
แบบฝึกหัดเพิ่มเติม
ลองแก้โค้ดตามคำแนะนำด้านล่าง การเปลี่ยนโค้ดแล้วดูผลลัพธ์จะช่วยให้เข้าใจบทเรียนได้ดีกว่าการอ่านอย่างเดียวมาก
- เปลี่ยนข้อมูลอินพุตแล้วทายผลลัพธ์ก่อนรัน
- เพิ่มการตรวจสอบข้อมูลว่างหรือข้อมูลที่ไม่ถูกต้อง
- แยกขั้นตอนการประมวลผลเป็นฟังก์ชันและทดสอบกับข้อมูลหลายชุด
ฝึกด้วยโจทย์
ใช้สิ่งที่เรียนในบทนี้แก้ปัญหาจริง ทุกโจทย์รันในเบราว์เซอร์ พร้อมการทดสอบทันทีและรีวิวจาก AI
- ผลรวมของหลักตัวเลข หาผลรวมของหลักตัวเลขในจำนวนเต็มบวกหนึ่งจำนวน ง่าย
- รากดิจิทัล บวกตัวเลขแต่ละหลักซ้ำไปเรื่อย ๆ จนเหลือเพียงหลักเดียว ปานกลาง