Задачи

Создайте в отдельном файле функцию, переводящую градусы по шкале Цельсия в градусы по шкале Фаренгейта по формуле: 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]

  1. Определите сумму элементов списка L. ЕСЛИ сумма превышает значение 2, ТО

    вывести на экран число элементов списка.

  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]

  1. Определите наличие строки «привет» в списке. ЕСЛИ такая строка в списке

    присутствует, ТО удалить ее из списка, ИНАЧЕ добавить строку в список.

  2. Подсчитать, сколько раз в списке встречается число 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