0Pricing
Competitive Programming Academy · บทเรียน

อ่าน N บรรทัดและกรณีขอบ

วนซ้ำผ่านบรรทัดและจัดการช่องว่างท้ายบรรทัด

อ่าน N บรรทัดและกรณีขอบ เป็นบทเรียน Competitive Programming Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Competitive Programming Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Competitive Programming Academy มีบทเรียนทั้งหมด 4 บทเรียน

รูปแบบ N แล้วตามด้วยบรรทัดข้อมูล

รูปแบบข้อมูลเข้าคลาสสิกจะให้จำนวน N มาก่อน แล้วตามด้วยข้อมูลอีก N บรรทัด ให้อ่านจำนวนนี้ จากนั้นวนซ้ำให้ครบ N ครั้งพอดี

อ่านจำนวนก่อน

ดึงบรรทัดแรกแล้วเปลี่ยนเป็นจำนวนเต็มด้วย int() จำนวนนั้นจะควบคุมว่าคุณต้องอ่านเพิ่มอีกกี่บรรทัด

n = int(input())

วนซ้ำให้ครบ N ครั้งพอดี

ใช้ range(n) เพื่ออ่านเฉพาะจำนวนบรรทัดที่โจทย์ระบุไว้ ไม่มากและไม่น้อยกว่านั้น

for _ in range(n):
    line = input()

รวบรวมบรรทัดลงในรายการ

รวบรวมบรรทัดไปเรื่อย ๆ เพื่อให้ประมวลผลภายหลังได้ การสร้างรายการแบบย่อช่วยทำสิ่งนี้ได้ภายในบรรทัดเดียวที่กระชับ

rows = [input() for _ in range(n)]

ตัดช่องว่างท้ายบรรทัด

ช่องว่างหรือการขึ้นบรรทัดใหม่ที่ซ่อนอยู่สามารถทำให้การเปรียบเทียบผิดพลาดได้ เรียกใช้ .strip() เพื่อล้างข้อมูลแต่ละบรรทัดก่อนนำไปใช้

line = input().strip()

ระวังบรรทัดว่าง

บรรทัดว่างจะกลายเป็น "" หลังจากตัดช่องว่างแล้ว โปรดตัดสินใจว่าจะข้ามบรรทัดนี้หรือถือว่าเป็นข้อมูลที่มีความหมาย

อ่านจนถึง EOF

โจทย์บางข้อไม่ให้จำนวนรายการมา คุณสามารถวนซ้ำกับ sys.stdin โดยตรงเพื่ออ่านทุกบรรทัดจนกว่าข้อมูลขาเข้าจะสิ้นสุดลง

for line in sys.stdin:
    process(line)

จัดการกรณีเป็นศูนย์

เมื่อ N เป็น ศูนย์ ลูปของคุณควรไม่ทำอะไรเลย ตรวจสอบให้แน่ใจว่าโค้ดส่วนที่เหลือยังพิมพ์คำตอบที่ถูกต้องได้

หลีกเลี่ยงการอ่านคลาดไปหนึ่ง

การอ่านน้อยหรือมากเกินไปหนึ่งบรรทัดเป็นข้อผิดพลาดที่พบได้บ่อย ให้จำนวนรอบของลูปตรงกับ N พอดี เพื่อให้การอ่านยังตรงตำแหน่ง

โทเค็นอาจคร่อมหลายบรรทัด

หากคุณอ่านข้อมูลทั้งหมดด้วย read().split() จนหมด ตัวแบ่งบรรทัดจะหายไป ให้ถือว่าข้อมูลขาเข้าเป็นสตรีมแบนของ โทเค็น แทน

it = iter(sys.stdin.read().split())

ดึงโทเค็นทีละรายการ

ด้วยตัววนซ้ำ คุณสามารถดึงโทเค็น ถัดไป ตามต้องการ โดยไม่ต้องสนใจว่าค่าต่าง ๆ กระจายอยู่ในบรรทัดใดบ้าง

n = int(next(it))

ตรวจสอบอย่างรวดเร็ว

หากอ่านครบ N บรรทัดพอดี จะมีความเสี่ยงอะไร

ทบทวน: N บรรทัดและกรณีขอบ

ตอนนี้คุณสามารถอ่าน จำนวน แล้ววนซ้ำ N ครั้ง ตัดช่องว่าง จัดการ N=0 และ EOF และหลีกเลี่ยงการอ่านคลาดไปหนึ่งได้แล้ว 🧹

คำถามที่พบบ่อย

บทเรียน “อ่าน N บรรทัดและกรณีขอบ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “อ่าน N บรรทัดและกรณีขอบ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Competitive Programming Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Competitive Programming Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “อ่าน N บรรทัดและกรณีขอบ”

วนซ้ำผ่านบรรทัดและจัดการช่องว่างท้ายบรรทัด คุณปฏิบัติ Competitive Programming Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Competitive Programming Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Competitive Programming Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “อ่าน N บรรทัดและกรณีขอบ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Competitive Programming Academy นี้ได้ไหม

ได้ บทเรียน Competitive Programming Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ศึก input() ปะทะ sys.stdin
  2. แยกตัวเลขจำนวนมากในบรรทัดเดียว
  3. ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี
  4. อ่าน N บรรทัดและกรณีขอบ
← กลับไปที่ Competitive Programming Academy