from random import randint
def task_26():
"""
26. дано число, введенное с клавиатуры.
определите сумму квадратов нечетных цифр в числе.
"""
def square():
number = int(input("number: "))
s = 0
for x in str(number):
if int(x) % 2 ! = 0:
s += int(x) ** 2
print("cума квадратов нечетных цифр в числе = {}".format(s))
square()
def task_27():
"""
27. найдите сумму чисел, вводимых с клавиатуры.
количество вводимых чисел заранее неизвестно.
окончание ввода, например, слово «стоп».
"""
def number_sum():
numbers_sum = 0
while true:
number = input("number: ")
if number == 'стоп' or number == 'стоп':
break
else:
numbers_sum += int(number)
print('suma {}'.format(numbers_sum))
number_sum()
def task_28():
"""
28. задана строка из стихотворения:
«мой дядя самых честных правил, когда не в шутку занемог,
он уважать себя заставил и лучше выдумать не мог»
удалите из строки все слова, начинающиеся на букву «м».
результат вывести на экран в виде строки.
подсказка: вспомните про модификацию списков.
"""
def word_deleted(line):
line_split = line.split()
for i in range(len(line_split) - 1): # 0,19
if line_split[i][0] == "м" or line_split[i][0] == "м":
del line_split[i]
return line_split
lines = "мой дядя самых честных правил, когда не в шутку занемог, " \
"он уважать себя заставил и лучше выдумать не мог"
print(word_deleted(lines))
def task_32():
"""
32. создайте матрицу (список из вложенных списков)
размера n x n (фиксируются в программе), заполненную случайными
целыми числами.
"""
def new_matrix(n):
matrix = [[randint(0, 100) for x in range(n)] for i in range(n)]
for x in matrix:
print(x)
new_matrix(10)
def task_45():
"""
45. напишите функцию, которая возвращает разность между наибольшим и
наименьшим значениями из списка целых случайных чисел.
"""
def difference():
number_random = [randint(0, 100) for i in range(50)]
print('разность между наибольшим и наименьшим значениями = {}'.format(
(max(number_random) - min(number_random))
))
difference()
def task_46():
"""
46. напишите программу, которая для целочисленного списка из 1000 случайных
элементов определяет, сколько отрицательных элементов располагается
между его максимальным и минимальным элементами.
"""
def num_random_count():
random_numbers = [randint(-500, 500) for i in range(1000)]
index_max = random_numbers.index(max(random_numbers))
index_min = random_numbers.index(min(random_numbers))
count = 0
list_range = random_numbers[index_min: index_max + 1]
for x in list_range:
if int(x) < 0:
count += 1
print("отрицательных элементов между максимальным и "
"минимальным элементами = {}".format(count))
num_random_count()
def task_50():
"""
50. дан список целых чисел. определить количество четных элементов и
количество элементов, оканчивающихся на цифру 5.
"""
def func(n):
test_list = [randint(0, 500) for i in range(n)]
count_num = 0
count_five = 0
for x in test_list:
if x % 2 == 0:
count_num += 1
if x % 10 == 5:
count_five += 1
print("количество четных элементов {}".format(count_num))
print("количество элементов, оканчивающихся на цифру 5. {}".format(
count_five))
func(50)
def task_51():
"""
51. задан список из целых чисел. определить процентное содержание
элементов, превышающих среднеарифметическое всех элементов списка
"""
def func(n):
test_list = [randint(0, 100) for i in range(n)]
average = sum(test_list) / len(test_list)
count = 0
for x in test_list:
if x > average:
count += 1
print("процентное содержание элементов, превышающих"
" среднеарифметическое всех элементов списка = {} %".format(
round((count / average) * 100,
func(100)
if __name__ == "__main__":
task_26()
task_27()
task_28()
task_32()
task_45()
task_46()
task_50()
task_51()
Объяснение:
Метод - це невелика підпрограма, яка виконує, в ідеалі, тільки одну функцію. Методи дозволяють скоротити обсяг коду. Методи разом з полями, є основними членами класу.Раніше, ми вже розглядали методи в уроці Функції в Сі-шарп, але зараз ми розглянемо їх під іншим кутом. В тому уроці ми розглядали статичні методи, а в цьому поговоримо про прості, і про різницю між ними.
Статичний метод - це метод, який не має доступу до полів об'єкта, і для виклику такого методу не потрібно створювати екземпляр (об'єкт) класу, в якому він оголошений.
Простий метод - це метод, який має доступ до даних об'єкта, і його виклик виконується через об'єкт. Прості методи служать для обробки внутрішніх даних об'єкта.
Наведу приклад використання простого методу. Клас Телевізор, у нього є поле switchedOn, яке відображає стан включений / виключений, і два методи - включення і виключення:
class TVSet
{
private bool switchedOn;
public void SwitchOn()
{
switchedOn = true;
}
public void SwitchOff()
{
switchedOn = false;
}
}
class Program
{
static void Main(string[] args)
{
TVSet myTV = new TVSet();
myTV.SwitchOn(); // включаємо телевізор, switchedOn = true;
myTV.SwitchOff(); // виключаємо телевізор, switchedOn = false;
}
}
Щоб викликати простий метод, перед його ім'ям, вказується ім'я об'єкта. Для виклику статичного методу необхідно вказувати ім'я класу.
Статичні методи, зазвичай, виконують якусь глобальну, загальну функцію, обробляють «зовнішні дані». Наприклад, сортування масиву, обробка рядка, зведення числа в ступінь і інше.
Приклад статичного методу, який обрізає рядок до вказаної довжини, і додає крапки:
class StringHelper
{
public static string TrimIt(string s, int max)
{
if (s == null)
return string.Empty;
if (s.Length <= max)
return s;
return s.Substring(0, max) + "...";
}
}
class Program
{
static void Main(string[] args)
{
string s ="Дуже довгий рядок, який необхідно обрізати до зазначеної довжини і додати три крапки";
Console.WriteLine(StringHelper.TrimIt(s, 20)); //"Дуже довгий рядок ..."
Console.ReadLine();
}
}
Статичний метод не має доступу до нестатичних полів класу:
class SomeClass
{
private int a;
private static int b;
public static void SomeMethod()
{
a=5; // помилка
b=10; // допустимо
}
}