Barcha qo'llanmalarga qaytish
Python Asoslari10 daqiqa

O'zgaruvchilar, Ma'lumot turlari va Tezkor Kiritish-Chiqarish (Fast I/O)

Python tilida o'zgaruvchilar dinamik tipga ega. Musobaqa dasturlashda va katta hajmli ma'lumotlar bilan ishlashda standart input() funksiyasi sekin ishlashi mumkin. Ushbu darsda tezkor ma'lumot kiritish usullarini ko'rib chiqamiz.

1. Asosiy ma'lumot turlari

Python dasturlash tilida quyidagi asosiy ma'lumot turlari mavjud: • int — butun sonlar (masalan: 42, -100). Python-da butun sonlar xotira ruxsat berganicha cheksiz aniqlikda bo'lishi mumkin. • float — haqiqiy sonlar (masalan: 3.14159, -0.001). • str — satrlar (matnlar). Satrlar o'zgarmas (immutable) hisoblanadi. • bool — mantiqiy qiymat (True yoki False). • list — dinamik massiv. Elementlarni o'zgartirish, qo'shish va o'chirish mumkin. • tuple — o'zgarmas ro'yxat (immutable list). • dict — xesh-jadval (kalit-qiymat juftliklari). Kalitlar bo'yicha qidirish o'rtacha O(1) vaqt oladi. • set — takrorlanmas elementlar to'plami.

Python 3 namunasiUTF-8
# Ma'lumot turlari namunasi
son = 100
haqiqiy = 3.14
matn = "AlgoSet platformasi"
massiv = [1, 2, 3, 4, 5]
lugat = {"kalit": "qiymat", "algoritm": "tezkor"}

print(type(son))    # <class 'int'>
print(type(lugat))  # <class 'dict'>

2. Fast I/O — Katta hajmdagi ma'lumotlarni o'qish

Olimpiada va musobaqalarda (masalan, Codeforces, LeetCode, ICPC) test fayllari 100,000 yoki 1,000,000 qatordan iborat bo'lishi mumkin. Bunday hollarda standart `input()` funksiyasi ko'p vaqt oladi va 'Time Limit Exceeded' (TLE) xatoligi kelib chiqadi. Shu sababli `sys.stdin.readline` dan foydalanish tavsiya etiladi:

Python 3 namunasiUTF-8
import sys

# Tezkor kiritish uchun standart funksiya
input = sys.stdin.readline

def solve():
    # Bitta qatorda berilgan ikkita sonni o'qish
    a, b = map(int, input().split())
    
    # N ta sondan iborat massivni o'qish
    arr = list(map(int, input().split()))
    
    # Natijani tezkor chiqarish
    sys.stdout.write(f"Yig'indi: {a + b}\n")

3. Amaliy maslahatlar va eng ko'p uchraydigan xatolar

• Satr oxiridagi bo'sh joylar: `sys.stdin.readline()` satr oxiridagi '\n' (yangi qator) belgisini ham o'qiydi. Agar sizga faqat toza matn kerak bo'lsa, `input().strip()` dan foydalaning. • Massivlarni ko'paytirish xatosi: `[[0] * m] * n` yozsangiz, barcha qatorlar bitta xotira manziliga havola qiladi. Buning o'rniga ro'yxat generatoridan foydalaning: `[[0] * m for _ in range(n)]`.

Python 3 namunasiUTF-8
# To'g'ri 2D matritsa yaratish
n, m = 3, 4
matritsa = [[0] * m for _ in range(n)]
matritsa[0][0] = 5
print(matritsa)  # Faqat birinchi katak 5 ga aylanadi