Задачи
Создайте в отдельном файле функцию, переводящую градусы по шкале Цельсия в градусы по шкале Фаренгейта по формуле: T F = 9/5 * T C + 32
def converter_to_f(cel):
return 9/5 * cel + 32
print(converter_to_f(25))
Создайте в отдельном файле функции, вычисляющие площадь и периметр квадрата
def area(x):
a = x * x
print('Square area:', a)
def perimeter(x):
p = x * 4
print('Perimeter of the area:', p)
x = 2
area(x)
perimeter(x)
Напишите функцию в отдельном файле, вычисляющую среднее арифметическое трех чисел
def average(a, b, c):
return (a + b + c)/3
print(average(3, 5, 7))
Напишите функцию в отдельном файле, вычисляющую среднее арифметическое трех чисел. Задайте значения по умолчанию, в момент вызова используйте ключевые аргументы
def average(a, b=4, c=8):
return (a + b + c)/3
print(average(3)
Попросите пользователя ввести свое имя и после этого отобразите на экране строку вида: Привет, <имя>! Вместо <имя> должно указываться то, что пользователь ввел с клавиатуры
name = (input("Как тебя зовут?" ))
print("Привет, "+ name + "!")
Напишите программу, определяющую сумму и произведение трех чисел (типа int, float), введенных с клавиатуры
def sum(a, b, c):
x = a + b + c
return x
def mult(a, b, c):
y = a * b * c
return y
a = (float(input("Введите первое число: " )))
b = (float(input("Введите второе число: " )))
c = (float(input("Введите третье число: " )))
print("Сумма введенных чисел:", sum(a, b, c))
print("Произведение введенных чисел:", mult(a, b, c))
Как вычислить 1/x, чтобы не возникало ошибки деления на нуль?
>>> x = 1
>>> x and 1/x
1.0
>>> x = 0
>>> x and 1/x
0
>>>
Напишите программу для определения индекса массы тела BMI
def bmi(m, h):
i = m / h**2
if i < 16:
print("Выраженный дефицит массы тела")
elif 16 < i < 18.5:
print("Недостаточная (дефицит) масса тела")
elif 18.5 < i < 24.99:
print("Норма")
elif 25 < i < 30:
print("Избыточная масса тела (предожирение)")
elif 30 < i < 35:
print("Ожирение")
elif 35 < i < 40:
print("Ожирение резкое")
elif i >= 40:
print("Очень резкое ожирение")
m = float(input("Введите свою массу в килограммах: "))
h = float(input("Введите свой рост в метрах: "))
bmi(m, h)
Напишите собственную программу, определяющую максимальное из двух введенных чисел. Реализовать в виде вызова собственной функции, возвращающей большее из двух переданных ей чисел.
def compare(x, y):
if x > y:
print(x)
elif y > x:
print(y)
else:
print("Числа равны. Но некоторые равнее.")
x = float(input("Введите число: "))
y = float(input("Введите ещё одно число: "))
compare(x,y)
Напишите программу, проверяющую целое число на четность. Реализовать в виде вызова собственной функции
def even_or_odd(number):
if number % 2 == 0:
print("Чётное")
else:
print("Нечётное")
number = float(input("Введите число: "))
even_or_odd(number)
Напишите программу, которая по коду города и длительности переговоров вычисляет их стоимость и результат выводит на экран: Екатеринбург-код 343, 15 руб/мин; Омск-код 381, 18 руб/мин; Воронеж-код 473, 13 руб/мин; Ярославль-код 485, 11руб/мин.
def conversation(city, time):
if code == 343:
cost = time * 15
print('Стоимоть разговора с Екатеринбургом', cost, 'руб. за', time, 'мин.')
elif code == 831:
cost = time * 18
print('Стоимоть разговора с Омском', cost, 'руб. за', time, 'мин.')
elif code == 473:
cost = time * 13
print('Стоимоть разговора с Воронежом', cost, 'руб. за', time, 'мин.')
elif code == 485:
cost = time * 11
print('Стоимоть разговора с Яровславлем', cost, 'руб. за', time, 'мин.')
else:
print("Нет данных")
code = int(input('Код города: '))
time = int(input('Длительность разговора (мин): '))
conversation(code, time)
Напишите программу, которая запрашивает у пользователя значение pH (с плавающей точкой) и выводит на экран вещество, соответствующее введенному pH (https://tinyurl.com/pfrtnyh) (“Яблочный сок”, “Шампунь”, “Мыло для рук”). Определение pH производится в отдельной функции, которая возвращает строку с названием вещества или фразу “Не найдено”
def aqueous(pH):
if pH == 3.0:
return print (pH, "Яблочный сок")
elif pH == 5.5:
return print(pH, "Шампунь")
elif 9.0 < pH < 10.0:
return print(pH, "Мыло для рук")
else:
print("Не найдено")
value = input("Введите pH: ")
if len(value) > 0:
pH = float(value)
aqueous(pH)
else:
print("Введите pH!")
Найдите площадь треугольника с помощью формулы Герона. Стороны задаются с клавиатуры. Реализовать вычисление площади в виде функции, на вход которой подаются три числа, на выходе – площадь. Функция находится в отдельном модуле, где происходит разделение между запуском и импортированием
import geometry
a = float(input('Введите длину первой стороны: '))
b = float(input('Введите длину второй стороны: '))
c = float(input('Введите длину третей стороны: '))
print(geometry.heron(a, b, c))
geometry.py
import math
def heron(a, b, c):
p = float((a+b+c)/2)
return math.sqrt(p*(p-a)*(p-b)*(p-c))
if __name__ == "__main__":
print("Code from module is executed")
a = float(input('Введите длину первой стороны: '))
b = float(input('Введите длину второй стороны: '))
c = float(input('Введите длину третей стороны: '))
print(heron(a, b, c))
Вывести число Пи с точностью до сотых
import math
print(round((math.pi),2))
Создайте в отдельном модуле функцию для вычисления выражения: квадратный корень из (1 - sin^2 * x)
import calculations
x = float(input('Введите число: '))
print(calculations.func(x))
calculations.py
import math
def func(x):
return math.sqrt(1-(math.sin(x)**2))
Напишите программу-игру в виде отдельного модуля. Компьютер загадывает случайное число, пользователь пытается его угадать. Программа запрашивает число ОДИН раз. Если число угадано, то выводим на экран «Победа», иначе – «Повторите еще раз». Для написания программы понадобится функция randint() из модуля random
import number
x = int(input('Угадайте число: '))
number.func(x)
number.py
import math
from random import randint
def func(x):
comp = randint(1,10)
if x == comp:
print('Победа')
else:
print('Повторите ещё раз')
Напишите функцию, вычисляющую значение: x^4 + 4^x Автоматизируйте процесс тестирования функции с помощью модуля doctest.
def func(x):
"""
>>> func(2)
32
"""
return (x**4)+(4**x)
print(func(2))
import doctest
doctest.testmod()
Напишите программу для моделирования бросания игрального кубика каждым из двух игроков. Определить, кто из игроков получил на кубике больше очков.
from random import randint
x = randint(1,6)
y = randint(1,6)
if x > y:
print("Первый игрок:",x,". Второй игрок:",y,". Первый игрок победил.")
elif x < y:
print("Первый игрок:",x,". Второй игрок:",y,". Второй игрок победил.")
else:
print("Ничья")
Строки
s = "У лукоморья 123 дуб зеленый 456" 1. Определить, встречается ли в строке буква 'я'. Вывести на экран ее позицию (индекс) в строке. 2. Определить, сколько раз в строке встречается буква 'у'. 3. Определить, состоит ли строка только из букв, ЕСЛИ нет, ТО вывести строку в верхнем регистре. 4. Определить длину строки. ЕСЛИ длина строки превышает 4 символа, ТО вывести строку в нижнем регистре. 5. Заменить в строке первый символ на 'О'. Результат вывести на экран
s = "У лукоморья 123 дуб зеленый 456"
#1
if s.count('я') > 0:
print(s.find('я'))
#2
print(s.count('у'))
#3
if not s.isalpha():
print(s.upper())
# if s.isalpha() == True:
# print("Есть цифры")
# else
# print(s.upper())
#4
if len(s) > 4:
print(s.lower())
#5
print('O'+ s[1:])
Написать в отдельном модуле функцию, которая на вход принимает два аргумента: строку (s) и целочисленное значение (n). ЕСЛИ длина строки s превышает n символов, ТО функция возвращает строку s в верхнем регистре, ИНАЧЕ возвращается исходная строка s.
import comparison
s = input("Введите строку: ")
n = int(input("Введите целое число: "))
comparison.func(s, n)
comparison.py
def func(s,n):
if len(s) > n:
print(s.upper())
else:
print(s)
Списки
L = [3, 6, 7, 4, -5, 4, 3, -1]
Определите сумму элементов списка L. ЕСЛИ сумма превышает значение 2, ТО
вывести на экран число элементов списка.
Определить разность между минимальным и максимальным элементами списка. ЕСЛИ
абсолютное значение разности больше 10, ТО вывести на экран отсортированный по
возрастанию список, ИНАЧЕ вывести на экран фразу «Разность меньше 10».
L = [3, 6, 7, 4, -5, 4, 3, -1]
# 1
if sum(L) > 2:
print(len(L))
# 1
if abs(max(L) - min(L)) > 10:
print(sorted(L))
else:
print('Разность меньше 10')
L = [3, 'hello', 7, 4, 'привет', 4, 3, -1]
Определите наличие строки «привет» в списке. ЕСЛИ такая строка в списке присутствует, ТО вывести ее на экран, повторив 10 раз.
L = [3, 'hello', 7, 4, 'привет', 4, 3, -1]
if 'привет' in L:
print(L*10)
L = [3, 'hello', 7, 4, 'привет', 4, 3, -1]
Определите наличие строки «привет» в списке. ЕСЛИ такая строка в списке
присутствует, ТО удалить ее из списка, ИНАЧЕ добавить строку в список.
Подсчитать, сколько раз в списке встречается число 4, ЕСЛИ больше одного раза, ТО
очистить список.
L = [3, 'hello', 7, 4, 'привет', 4, 3, -1]
# 1
if 'привет' in L:
L.remove('привет')
else:
L.append('привет')
# 2
if L.count(4) > 1:
L.clear()
print(L)
Напишите программу, которая запрашивает у пользователя две строки и формирует из этих строк список. Если строки состоят только из чисел, то программа добавляет в середину списка сумму введенных чисел, иначе добавляется строка, образованная из слияния двух введенных ранее строк. Итоговая строка выводится на экран.
x = input('Введите что-нибудь: ')
y = input('Введите что-нибудь ещё: ')
A = list(x)
B = list(y)
C = A + B
if x.isdigit() and y.isdigit():
(C.insert( int(len(C)/2), int(x)+int(y) ))
print(C)
else:
print(x+y)
Задан список слов. Необходимо выбрать из него случайное слово. Из выбранного случайного слова случайно выбрать букву и попросить пользователя ее угадать.
Задан список слов: [ ' самовар ' , ' весна ' , ' лето ' ] Выбираем случайное слово: ' весна ' Выбираем случайную букву: ' с ' Выводим на экран: ве?на Пользователь пытается угадать букву.
Подсказка: используйте метод choice() модуля random.
from random import choice, randint
l = [ 'самовар' , 'весна' , 'лето' ]
word = choice(l) # выбираем случайное слово
lst = list(word) # преобразуем слово в список
letter = choice(lst) # выбираем из списка случайную букву
p = lst.index(letter) # возвращаем позицию случайной буквы
lst[p] = '?' # заменяем буку на знак "?"
word = ''.join(lst) # соединяем список в строку
print(word)
Циклы
Найдите все значения функции y(x) = x^2 + 3 на интервале от 10 до 30 с шагом 2.
y = 0
for x in range(10,30,2):
y = x**2 + x
print("Зачение уравнения y = x**2+x, при x =", x ,"равно", y) # доделать для фукнции
L = [-8, 8, 6.0, 5, 'строка', -3.1]
Определить сумму чисел, входящих в список L. Подсказка: для определения типа объекта можно воспользоваться сравнением вида type(-8) == int.
L = [-8, 8, 6.0, 5, 'строка', -3.1]
sum = 0
for i in L:
if type(i) != str:
sum = sum + i
print(sum)
С помощью диапазона найти сумму чисел на интервале от 1 до 100
sum(list(range(1, 101)))
Написать программу в которой в ручную задаются длина списка и значения
a = []
n = int(input()) # количество элементов в списке
for i in range(n):
new_alement = int(input()) # считывание очередного элемента
a.append(new_alement) # добавление его в список
# a.append(int(input()) # вместо двух последних строчек
print(a)
A = [input() for i in range(int(input()))] # решение этой задачи через списковое включение в одну строку
Дан список числовых значений, насчитывающий N элементов. Поменяйте местами первую и вторую половины списка
l = [1,6,2,9,5,23,5]
print(l)
n = len(l) # определяем длину списка
n =(int(n/2)) # делим длину на две части для последующего среза
b = l[:n] # срез первой половины
c = l[n:] # срез второй половины
a = c + b # сложение второй части и первой
print(a)
Напишите программу-игру. Компьютер загадывает случайное число, пользователь пытается его угадать. Пользователь вводит число до тех пор, пока не угадает или не введет слово «Выход». Компьютер сравнивает число с введенным и сообщает пользователю больше оно или меньше загаданного
from random import randint
comp = randint(1,10)
print("Угадайте число загаднное компютером или введите \"Выход\" если сдаетесь.")
while True:
user = input("Ваш вариант: ")
if user == "Выход":
print("Удачи")
break
elif comp == int(user):
print("Угадал")
break
elif comp > int(user):
print('Моё число больше')
elif comp < int(user):
print('Моё число меньше')
else:
print("Не угадали")
Написать программу считающую сумму чисел в строке
s = '21wfdsf32sf54'
total = 0
for i in range(len(s)):
if s[i].isalpha(): # посимвольная проверка наличия буквы
continue # переход к следующеку шагу цикла
total = total + int(s[i]) # накапливание суммы, если встретилась цифра
print("Сумма чисел:", total)
Дано число, введенное с клавиатуры. Определите сумму квадратов нечетных цифр в числе.
num = input("Введите число: ")
total = 0
for i in num: # перебор всех символов в строке
if (int(i))%2 == 0: # проверка на четность
total = (int(i))**2 + total
print("Сумма квадратов четных чисел: ", total)
Найдите сумму чисел, вводимых с клавиатуры. Количество вводимых чисел заранее неизвестно. Окончание ввода, например, слово «Стоп».
l = []
while True:
x = input("Введите число или введите \"Cтоп\" для окончания ввода: ")
if x.isdigit() == True: # проверяем, состоит ли строка только из чисел
x = int(x)
l.append(x) # добавляем значение в список
elif x == "Стоп":
break
else:
print("Некорректное значение.")
sum = 0
for i in range(len(l)):
sum = sum + l[i] # суммируем значения
print("Сумма введеных чисел:", sum)
Задана строка из стихотворения: «Мой дядя самых честных правил, Когда не в шутку занемог, Он уважать себя заставил И лучше выдумать не мог» Удалите из строки все слова, начинающиеся на букву «м». Результат вывести на экран в виде строки. Подсказка: вспомните про модификацию списков.
s = "Мой дядя самых честных правил, Когда не в шутку занемог, Он уважать себя заставил И лучше выдумать не мог"
n = " ".join(x for x in s.split() if not x.startswith(("м", "М")))
print(n)
# С помощью метода split преобразуем строку в список, исключая слова начинающиеся с буквы "м" (метод startswith)
# С помощью метода join преобразуем список в строку.
Дан произвольный текст. Найдите номер первого самого длинного слова в нем.
s = 'Дан произвольный текст. Найдите номер первого самого длинного слова в нем.'
s = s.split() # преобразование строки в список
t = [] # список для хранения длин объектов
for i in s: # перебрать все элементы списка
x = len(i) # перебрать длины всех объектов списка
t.append(x) # добавить длины в список
m = max((t)) # выбрать объект с максимальной длиной
for i in s: # перебрать все элементы списка
if len(i) == m: # если длина объекта равна максильной длине
print(i) # то вывести в консоль
print(s.index(i)+1) # и вывести номер позиции
Дан произвольный текст. Напечатайте все имеющиеся в нем цифры, определите их количество, сумму и найти максимальное
1 вариант
s = 'sf3op322d2e sf eee3fwef w344 44w42 '
l = s.split() # преобразрвать строку в список
lst = []
for i in l: # перебрать каждый объект списка
for x in i: # каждый объект списка перебрать побуквенно,
if x.isdigit() == True: # если число
x = int(x)
lst.append(x) # то добавить в список
print(t)
print(max(lst)) # максимальное число
print(len(lst)) # количетво
total = 0
for i in lst: # сумма
total = i + total
print(total)
2 вариант
s = 'sf3op322d2e sf eee3fwef w344 44w42 '
l = list(s) # преобразованике строки в лист
sum = 0
lst = []
for i in range(len(l)):
num = l[i] # присваивание переменной num значения элемента из листа
if num.isdigit() == True: # проверка строки из переменной num: состоит ли строка только из чисел
sum = sum + int(num)
lst.append(num)
print(len(lst))
print(sum)
print(max(lst))
Last updated