HOME

Проекты по курсу - Python для начинающих

Угадайка чисел

Описание проекта: программа генерирует случайное число в диапазоне от 1 до 100 и просит пользователя угадать это число.
Если догадка пользователя больше случайного числа, то программа должна вывести сообщение 'Слишком много, попробуйте еще раз'.
Если догадка меньше случайного числа, то программа должна вывести сообщение 'Слишком мало, попробуйте еще раз'.
Если пользователь угадывает число, то программа должна поздравить его и вывести сообщение 'Вы угадали, поздравляем!'.
Ссылка на replit

    from random import randint

    def is_valid(text):
        if text.isdigit():
            if 1 <= int(text) < 100:
                return True
            else:
                return False
        else:
            return False

    
    num = randint(1, 100)

    print('Добро пожаловать в числовую угадайку')

    n = input('Начните угадование числа, введите первое число: ', )

    for i in range(9, 0, -1):
        if is_valid(n):
            number = int(n)
            if number < num:
                print('Ваше число меньше загаданного, попробуйте еще разок')
                print('У вас осталось', i, 'попыток')
                n = input('Ведите число: ', )
            elif number > num:
                print('Ваше число больше загаданного, попробуйте еще разок')
                print('У вас осталось', i, 'попыток')
                n = input('Ведите число: ', )
            else:
                print('Вы угадали, поздравляем!')
                break
        else:
            print('А может быть все-таки введем целое число от 1 до 100?')
            print('У вас осталось', i, 'попыток')
            n = input('Ведите число: ', )


    print('Спасибо, что играли в числовую угадайку. Еще увидимся...')
 

Магический шар 8

Описание проекта: магический шар 8 (шар судьбы) — шуточный способ предсказывать будущее.
Программа должна просить пользователя задать некий вопрос, чтобы случайным образом на него ответить.
Ссылка на replit

    import random

answers = ['Бесспорно', 'Мне кажется - да', 'Пока неясно, попробуй снова', 'Даже не думай','Предрешено', 'Вероятнее всего', 'Спроси позже', 'Мой ответ - нет','Никаких сомнений', 'Хорошие перспективы', 'Лучше не рассказывать', 'По моим данным - нет','Определённо да', 'Знаки говорят - да', 'Сейчас нельзя предсказать','Перспективы не очень хорошие','Можешь быть уверен в этом', 'Да', 'Сконцентрируйся и спроси опять', 'Весьма сомнительно']


print('Привет Мир, я магический шар, и я знаю ответ на любой твой вопрос.')
name = input('А теперь введи мне свое имя: ', )
print('Привет,', name)

n = input('Введите свой вопрос: ', )

while True:
    print(random.choice(answers))

    q = input('Хотите задать еще вопрос, если "Да" введите - Д, в противном случай любую другую букву ', )

    if q.lower() == "д":
        n = input('Введите свой вопрос: ', )
    else:
        print('Возвращайся если возникнут вопросы!')
        break
 

Генератор безопасных паролей

Описание проекта: программа генерирует заданное количество паролей и включает в себя умную настройку на длину пароля,
а также на то, какие символы требуется в него включить, а какие исключить.
Ссылка на replit

    import random


    def generate_password(length, chars):
        for _ in range(n):
            print('Ваш пароль №', _+1, ': ', *random.sample(chars, length), sep='')
    
    
    digits = '0123456789'
    lowercase_letters = 'abcdefghijklmnopqrstuvwxyz'
    uppercase_letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    punctuation = '!#$%&*+-=?@^_.'
    chars = ''
    
    n = int(input('Сколько паролей вы хотите получить? Введите число: '))
    length = int(input('Какой длины должен быть пароль? Введите число: '))
    add_digit = input('Включить цифры? "д" - да, "н" - нет: ').strip().lower()
    add_lowercase = input('Включить прописные буквы? "д" - да, "н" - нет: ').strip().lower()
    add_uppercase = input('Включить строчные буквы? "д" - да, "н" - нет: ').strip().lower()
    add_punctuation = input('Включить символы, такие как !#$%&*+-=?@^_? "д" - да, "н" - нет: ').strip().lower()
    remove_badsymbols = input('Исключить неоднозначные  символы: i l 1 L o 0 O? "д" - да, "н" - нет: ').strip().lower()
    
    if add_digit == 'д':
        chars += digits
    
    if add_lowercase == 'д':
        chars += lowercase_letters
    
    if add_uppercase == 'д':
        chars += uppercase_letters
    
    if add_punctuation == 'д':
        chars += punctuation
    
    if remove_badsymbols == 'д':
        for i in 'il1Lo0O':
            chars = chars.replace(i, '')
    
    generate_password(length, chars)
 

Шифр Цезаря

Шифр Цезаря (шифр сдвига) — один из самых простых и наиболее широко известных методов шифрования.
Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором
постоянном числе позиций левее или правее него в алфавите.
Ссылка на replit

    def caesar_cipher(char, num):
        if ord('A') <= ord(char) <= ord('Z'):
            base = ord('A')
            new_i = (ord(char) - base + num) % 26 + base
            return chr(new_i)
        elif ord('a') <= ord(char) <= ord('z'):
            base = ord('a')
            new_i = (ord(char) - base + num) % 26 + base
            return chr(new_i)
        elif ord('а') <= ord(char) <= ord('я'):
            base = ord('а')
            new_i = (ord(char) - base + num) % 32 + base
            return chr(new_i)
        elif ord('А') <= ord(char) <= ord('Я'):
            base = ord('А')
            new_i = (ord(char) - base + num) % 32 + base
            return chr(new_i)
        else:
            return char

        text = input('Введите текст -> ')

        action = input('Для шифрования текста введите - s, для дешифрования введите - d: ').lower()
        while action != 's' and action != 'd':
        action = input('Что-то не так, введите либо "s" либо "d" ')


        key = input('Введите число сдвига: ')
        while key.isdigit() is not True:
        key = input('Что-то не так, проверьте что это число, а не текст и напишите снова: ')
        key = int(key)

        new_text = ''

        if action == 's':
        for i in text:
            new_text += caesar_cipher(i, key)
        print('Ваш зашифрованный текст:', new_text)
        elif action == 'd':
        for i in text:
            new_text += caesar_cipher(i, -key)
        print('Ваш расшифрованный текст:', new_text)
 

А также