Практика
Ссылка на онлайн компилятор 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 – целое число, вводимое с клавиатуры
Пояснение: допустим n=5, среднее арифметическое будет
(1+2+3+4+5)/5=3. Если мы зададим i in range(1,5) , то i примет значения: 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] — это "т".
Например, "текст"[0] — это "т".
Срез строки - это часть строки между заданными индексами
Срез записывают так: строка[старт:финиш]
Срез можно взять с шагом: строка[старт:финиш:шаг]
Текст программы
s = input()
if len(s)%2==0:
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)