Python. 10 класс

Практика

Ссылка на онлайн компилятор https://www.onlinegdb.com/online_python_compiler






Дата 24.11.2022

Текст программы
a=input()
print('Hello,',a)

Пояснение: при запуске данная программа сначала ожидает ввод данных с клавиатуры (данные набираем с клавиатуры в консоли IDEL или, если это онлайн-компилятор, в строке ввода, нажимаем клавишу Enter), эти данные присваиваются переменной a. Затем функция print печатает в окне вывода Sell Hello, значение переменной а

Пример:
мир
Hello, мир






Дата 01.12.2022

Задача: вычислить значение выражения y=(2*x5+20)/30, где x вводиться с клавиатуры

Текст программы
x=int(input())
y=(2*x**5+20)/30
print(y)

Пояснение: при работе с консолью IDEL программу набираем и запускаем в окне file, результат будет в окне вывода Sell

Пример:
2
2,8

Задача: с клавиатуры вводятся две строковых переменных a и b. Выводим следующие новые строки: a+b, 4 строки a + 2 строки b, 3 раза сумму строки a и знака $ + 2 раза сумму строки b и знака !

Текст программы
a=input()
b=input()
print(a+b)
print(a*4+b*2)
print((a+'$')*3+(b+'!')*2)

Пример:
Привет
 Маша
Привет Маша
ПриветПриветПриветПривет Маша Маша
Привет$Привет$Привет$ Маша! Маша!



Дата 12.01.2023

Задача: диалог, при вводе ответа на вопрос, выдаются различные варианты действий
Текст примерной программы
print('Сегодня хорошая погода? (ответьте да или нет)')
a=input()
if a=='да':
    print('иди гулять')
else:
    print('сиди дома')







Дата 19.01.2023

Задача: вычислить среднее арифметическое чисел от 1 до n– целое число, вводимое с клавиатуры
Пояснение: допустим n=5, среднее арифметическое будет (1+2+3+4+5)/5=3. Если мы зададим i in range(1,5) , то примет значения: 1, 2, 3, 4. Следовательно нужно брать промежуток range(1,6) где 6=5+1 или n+1. Для подсчета суммы нужен будет накопитель s с начальным значением 0. В цикле считаем сумму и выводим среднее арифметическое.

Текст программы
n=int(input())
s=0
for i in range(1,n+1):
    s=s+i
print(s/n)

Задача: n – целое число, вводимое с клавиатуры. Проверить является ли n простым числом (простое число имеет всего два делителя - 1 и само число)
Пояснение: 
Вариант 1. В цикле будем перебирать делители от 1 до n и если условие на кратность будет выполнятся, то будем увеличивать на 1 количество делителей d=d+1 (как обычно в начале d=0). И после цикла проверять значение d.
Вариант 2. Присвоить переменной  otvet значение 'простое' и в цикле перебирать делители от 2 до n//2 (если их нет в этом промежутке, дальше можно не смотреть). Если есть кратность, менять значение переменной otvet на 'непростое'

Текст программы
Вариант 1
n=int(input())
d=0
for i in range(1,n+1):
    if n%i==0:
        d=d+1
if d==2:
    print(n,'простое')
else:
    print(n,'непростое')

Вариант 2
n=int(input())
otvet='простое'
for i in range(2,n//2):
    if n%i==0:
        otvet='непростое'
print(n,otvet)

Задача: дано число n и последовательность из n натуральных чисел (числа вводятся с клавиатуры). Чисел в последовательности не больше 100, числа не превышают 30000. Нужно найти максимальный элемент.

Текст программы
n=int(input())
mx=0
for i in range(n):
    a=int(input())
    if a>mx:
        mx=a
print(mx)


Дата 02.02.2023

Классная работа
Задача: с клавиатуры последовательно вводятся слова, количество слов не известно, но последним будет слово "стоп". Напишите программу, которая собирает эти слова в одну строку, разделяя их между собой пробелами.

Текст программы

s = input()
n = ''
while s != 'стоп':
    n = n + s + ' '
  s = input()
print(n)


Задача: напишите программу, которая переписывает слова по следующему алгоритму: если количество букв в слове четное, то оставляется первый символ, а вместо остальных ставится "!". Если количество букв в слове нечетное, то все идущие с начала символы меняются на "?" и оставляется последний.

В Python у всех символов строки есть номера, и можно получить символ
по его номеру
Символы строки пронумерованы слева направо начиная с 0
Эти номера называются индексами
Индекс записывают в квадратных скобках после строки: строка[индекс]
Например, "текст"[0] — это "т".

Срез строки - это часть строки между заданными индексами
Срез записывают так: строка[старт:финиш]
Срез можно взять с шагом: строка[старт:финиш:шаг]

Текст программы

s = input()
if len(s)%2==0:

    print(s[0]+'!'*(len(s)-1))
else:
    print('?'*(len(s)-1)+s[-1])

Для самостоятельного изучения
Задача: Определите, при каком наименьшем введённом значении переменной s программа выведет число 128.

Текст программы

s = int(input())
n = 2
while s < 37:
    s = s + 3
    n = n * 2

print(n)


Пояснение: решить данную задачу можно используя среду, дополним исходную программу перебором значений для переменной s от 1 до 1000 через функцию for
и если после цикла while n будет принимать значение 128, будем выводить это значение s (которое будет задаваться для начального s через переменную цикла i). Среди полученных чисел выберем наименьшее.

Текст программы
for i in range(1,1000):
    s=i
    n=2
    while s<37:
        s=s+3
        n=n*2
    if n==128:
        print(i)


Дата 02.03.2023

Задача: перевернуть любую введенную с клавиатуры фразу наоборот (фраза должна заканчиваться пробелом).

Вариант через срезы. Вырезаем первое слово до пробела (с помощью метода find находим индекс n первого пробела и делаем срез s[:n]), загружаем в новую строку s1, перезаписываем исходную строку срезом с первого символа после пробела до конца s[n+1:]. Пока длинна строки не равна 0, повторяем эти действия.
Текст программы
s=input()
s1=''
while len(s)!=0:
    n=s.find(' ')
    s1=' '+s[:n]+s1
    s=s[n+1:]
print(s1)

Вариант через посимвольный перебор. Через цикл for перебираем посимвольно, если не пробел собираем слово в новую строку s1, иначе загружаем слово в новую строку s2 и обнуляем s1.
Текст программы
s=input()
s1=''
s2=''
for i in range(len(s)):
    if s[i]!=' ':
        s1=s1+s[i]
    else:
        s2=s1+' '+s2
        s1=''
print(s2)
        

Дата 09.03.2023

Задача: Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 68 идущих подряд цифр 8? В ответе запишите полученную строку.
НАЧАЛО
 ПОКА нашлось (222) ИЛИ нашлось (888)
    ЕСЛИ нашлось (222)
        ТО заменить (222, 8)
        ИНАЧЕ заменить (888, 2)
    КОНЕЦ ЕСЛИ
 КОНЕЦ ПОКА
 КОНЕЦ

Текст программы
s='8'*68
while ('222' in s) or ('888' in s):
    if '222' in s:
        s=s.replace('222','8',1)
    else:
        s=s.replace('888','2',1)
print(s)

В данной программе использовали функцию replace - позволяет производить поиск и замену одних частей строки на другие нужное количество раз
Синтаксис
С помощью функции replace получается следующая строка s1 из строки s:
s1=s.replace(old, new) - находит и меняет все old на new до конца строки s
s1=s.replace(old, new, num) - находит и меняет old на new num раз


Дата 20.04.2023

Задача: алгоритм вычисления значений функций F(n), где n — натуральное число, задан следующими соотношениями:
F(1) = 1; F(2) = 2; F(3) = 3;
F(n) = F(n − 3)*n при n >3
Чему равно значение функции F(10)? В ответе запишите только натуральное число.

Для решения используем встроенную функцию
Функция в python - объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def. Инструкция return говорит, что нужно вернуть значение.

Текст программы:
def f(n):
    if n==1:
        return 1
    elif n==2:
        return 2
    elif n==3:
        return 3
    elif n>3:
        return f(n-3)*n
print(f(10))



Дата

Задача: перевод числа, вводимого с клавиатуры в систему счисления с основанием n

Текст программы:
b=int(input('введите число'))
c=int(input('введите основание системы'))
s=''
while b!=0:
    m=b%c
    s=str(m)+s
    b=b//c
print(s)