อ่าน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ศึก input() ปะทะ sys.stdin
- แยกตัวเลขจำนวนมากในบรรทัดเดียว
- ส่งข้อมูลออกเป็นชุดอย่างถูกวิธี
- อ่าน N บรรทัดและกรณีขอบ