Python задачи и решения за упражнение

Python задачи и решения за упражнение
  • 1179 преглеждания

Python програмирането е отличен избор за начинаещи, които искат да навлязат в света на ИТ по достъпен начин. Неговият лесен синтаксис и разбираемост го правят идеално начало.

Както всяко ново умение, за да овладеете Python, е необходимо да се упражнявате редовно. В статията сме събрали няколко разнообразни задачи на Python, заедно с техните решения, предназначени да ви помогнат да упражнявате уменията си за програмиране.

Независимо дали сте начинаещ, или вече имате някакъв опит, тези упражнения ще ви предизвикат и ще подобрят уменията ви.

Задачи за упражнение по програмиране с Python

1. Марко Поло

Напишете програма на Python, която отпечатва числата от 1 до 100 със следните условия:

За числа, кратни на 3, програмата трябва да изкара “Марко”
За числа, кратни на 5, програмата трябва да изкара “Поло”
За числа, кратни на 3 и на 5, програмата трябва да изкара “МаркоПоло”

2. Проверка на палиндром

Палиндромът е дума, която се чете по същия начин както напред, така и назад (например “капак”). Напишете функция на Python, която проверява дали даден стринг е палиндром.

3. Поредица на Фибоначи

Последователността на Фибоначи е поредица, в която всеки следващ член е сумата от предишните два члена. Първите два члена са 0 и 1. Напишете програма на Python, която да генерира последователността на Фибоначи до n-тия член.

4. Проверка на просто число

Просто число е число, по-голямо от 1, което няма други делители освен 1 и самото себе си. Напишете функция на Python, която да проверява дали дадено число е просто число.

5. Проверка на анаграма

Две думи са анаграми, ако съдържат едни и същи символи с еднаква честота (например “бира - риба”). Напишете функция на Python, която проверява дали два стринга са анаграми.

6. Броене на гласни

Напишете функция на Python за преброяване на броя на гласните в даден стринг.

7. Сума от цифри

Напишете функция на Python за изчисляване на сумата от цифрите на дадено число (например 146 → 1+4+6 = 11).

8. Обръщане на стринг

Напишете функция на Python за обръщане на даден стринг (например конфитюр - рютифнок).

9. Изчисляване на факториал

Факториалът на дадено число е произведението на всички цели положителни числа, по-малки или равни на него. Напишете функция на Python за изчисляване на факториала на дадено число с помощта на рекурсия.

10. Намиране на най-голям елемент в списък

Напишете функция на Python за намиране на най-големия елемент в даден списък.

Как ви се струват задачите - лесни или сложни? Във всеки случаи, отдолу ще намерите решенията им. Дори да имате грешки, не забравяйте, че това е възможност да се научите от тях и да усъвършенствате знанията и уменията си по програмиране с Python.

Напомняме ви, че Advance Academy организира обучение по програмиране с Python - за по-малко от шест месеца ще се запознаете с Пайтън в дълбочина и ще придобиете нужните знания да започнете успешна кариера в IT сектора. 

Решения на задачи за упражение по Python програмиране

Задача 1

for i in range(1, 101):
    if i % 3 == 0 and i % 5 == 0:
        print("МаркоПоло")
    elif i % 3 == 0:
        print("Марко")
    elif i % 5 == 0:
        print("Поло")
    else:
        print(i)

Този код преминава през числата от 1 до 100. За всяко число се проверява дали то се дели на 3 и 5, само на 3 или само на 5 и се отпечатва съответната дума. Ако нито едно от тези условия не е изпълнено, отпечатва самото число.

Задача 2

def is_palindrome(s):
    return s == s[::-1]

# Test the function
print(is_palindrome("капак"))  # Output: True
print(is_palindrome("муха"))  # Output: False

Тази функция проверява дали стрингът е равен на обратната си стойност. “s[::-1]” създава обърната версия на стринга s.

Задача 3

def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        print(a, end=" ")
        a, b = b, a + b

# Generate the first 10 terms
fibonacci(10)

Този код инициализира първите два члена на последователността на Фибоначи и използва цикъл за генериране и отпечатване на последователността до n-тия член.

Задача 4

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

# Test the function
print(is_prime(29))  # Output: True
print(is_prime(15))  # Output: False

Тази функция проверява за множители на числото от 2 до квадратния корен на числото. Ако бъдат открити фактори, числото не е просто.

Задача 5

def are_anagrams(str1, str2):
    return sorted(str1) == sorted(str2)

# Test the function
print(are_anagrams("майка", "кайма"))  # Output: True
print(are_anagrams("мишка", "котка"))  # Output: False

Тази функция сортира двата стринга и ги сравнява. Ако при сортирането те са еднакви, стринговете са анаграми.

Задача 6

def count_vowels(s):
    vowels = "аъоуеиАЪОУЕИ"
    return sum(1 for char in s if char in vowels)

# Test the function
print(count_vowels("Адванс Академи"))  # Output: 6
print(count_vowels("Пайтън програмиране"))  # Output: 7

Тази функция преминава през стринга и преброява символите, които са гласни, като използва набор от гласни за сравнение.

Задача 7

def sum_of_digits(n):
    return sum(int(digit) for digit in str(n))

# Test the function
print(sum_of_digits(1234))  # Output: 10
print(sum_of_digits(567))   # Output: 18

Тази функция преобразува числото в стринг, за да премине през всяка цифра, преобразува всяка цифра обратно в цяло число и след това ги сумира.

Задача 8

def reverse_string(s):
    return s[::-1]

# Test the function
print(reverse_string("Адванс"))  # Output: "снавдА"
print(reverse_string("академи"))  # Output: "имедака"

Тази функция използва т.нар. slicing на стринга, за да го обърне.

Задача 9

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

# Test the function
print(factorial(5))  # Output: 120
print(factorial(7))  # Output: 5040

Тази рекурсивна функция се извиква с n-1, докато достигне 0, след което връща 1. Резултатите от всяко рекурсивно извикване се умножават, за да се получи факториалът.

Задача 10

def find_largest(lst):
    if not lst:
        return None
    largest = lst[0]
    for item in lst:
        if item > largest:
            largest = item
    return largest

# Test the function
print(find_largest([1, 2, 3, 4, 5]))  # Output: 5
print(find_largest([-1, -2, -3, -4, -5]))  # Output: -1

Тази функция инициализира най-голямата стойност с първия елемент от списъка, след което преминава през списъка, за да намери и върне най-големия елемент.

Практикуването на Python чрез упражнения е ефективен начин да подобрите уменията си за програмиране.

Задачите по-горе обхващат различни аспекти на програмирането в Python - от основен синтаксис и структури от данни до по-сложни концепции като рекурсия.

Като работите по тези задачи и разбирате техните решения, можете да изградите солидна основа в Python и да станете по-умел програмист. Продължавайте да програмирате и не се страхувайте да се предизвиквате с нови и по-сложни проблеми, докато напредвате.