практикумы по языку Питон. Питон. Практикум Загидуллин Наиль Рашитович мбоу сош 2 Оглавление Введение в Питон 4 Команда вывода 4
Скачать 7.93 Mb.
|
Структурные типы данныхСтрокиКоды символовНапишем программу, которая запрашивает номер английской буквы в алфавите и выводит саму букву, например: Ввод 2 Вывод: А Решение: s = int(input()) print(chr(s+64)) Буквы А – Z в таблице начинаются с кода 65. Поэтому, когда мы вводим 1, получаем код 1+64 = 65 т.е. код буквы А. Функция chr() – выводит символ по его коду. ord(‘A’) – это обратная функция, которая по букве выводит его код Операции со строкамиДана задача: Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 1000 идущих подряд цифр 8? ПОКА нашлось (999) ИЛИ нашлось (888) ЕСЛИ нашлось (888) ТО заменить (888, 9) ИНАЧЕ заменить (999, 8) Решение: s = '8'*1000 while s.count('999') or s.count('888'): if s.count('888'): s = s.replace('888','9',1) else: s = s.replace('999','8',1) print(s) Ответ: 8998 Срезыs = 'spameggs' s[0] # 's' s[3:5] # 'me' s[2:-2] # 'ameg' убираем слева и справа 2 символа s[:6] # 'spameg' первая цифра по умолчанию 0 s[1:] # 'pameggs' s[::-1] # 'sggemaps' перевернутый текст Задание: Напишите программу, которая запрашивает любую одну букву из A-Z и выводит его код с помощью функции ord() Напишите программу, которая циклически выводит все буквы от A - Z . Используйте функцию chr() С помощью среза проверьте, является ли введенное слово палиндромом. (палиндром это слово, которое и слева и справа читается одинаково, например «123» и «321» Напишите программу и решите задачу: Какая строка получится в результате применения приведённой ниже программы к строке вида 1…12…2 (40 единиц и 40 двоек)? НАЧАЛО ПОКА нашлось (111) заменить (111, 2) заменить (222, 1) КОНЕЦ ПОКА КОНЕЦ МассивыНапишем программу, которая запрашивает день недели и выводит его название, например, вводим 1 выводится Понедельник. Решим эту задачу, создав одномерный массив days = ['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье'] day = int(input()) print(days[day - 1]) # счет в массивах начинается с нуля Создадим массив из цифр числа, отсортировав его по возрастанию s = input() list1 =[] # создаем пустой массив for a in s: # перебираем все цифры числа list1.append(a) # добавляем элемент в массив list1.sort() # сортируем print(list1) Можно и короче: s = input() list1 = [a for a in s] list1.sort() print(list1) Ещё короче: list1 =[a for a in input()] list1.sort() # list1.sort(reverse=True) – сортирует по убыванию print(list1) С помощью join() можно обратно свернуть массив в число, у которого цифры отсортированы print(''.join(list1)) Задания Напишите программу, которая запрашивает любое трехзначное число, в котором нет цифры 0, выводит максимальное и минимальное число, составленное из цифр этого числа. Решите предыдущую задачу, если цифра 0 тоже может присутствовать, но имейте ввиду, что 0 не может быть первой цифрой 3-хзначного числа. Обработка массивовСоздадим массив из 30 элементов с помощью генератора случайных целых чисел из диапазона [0,10] import random # импортируем модуль для работы со случайными числами m = [random.randint(0,10) for i in range(30)] print(m) Пузырьковая сортировка массивовimport random n = 10 m = [random.randint(0,10) for i in range(n)] print(m) # сортировка for i in range(1,n): for j in range(0,n-i): if m[j]>m[j+1]: m[j],m[j+1] = m[j+1],m[j] # меняем местами print(m) Сравниваются последовательно соседние элементы, если предыдущий элемент в паре больше последующей, то они меняются местами. В итоге, после первого прохода, самый большой элемент оказывается на последнем месте. Потом перебор начинается с начала, сравниваются вновь пары, кроме последней. После каждого прохода, число сравниваемых пар уменьшается. Если нужно сортировать по убыванию, то нужно менять знак больше на меньше, в итоге самый маленький объект, после первого прохода, окажется на последнем месте. Сортировка пузырьком (танец) http://www.youtube.com/watch?v=5ybLoO4mAY4 Сортировка расчёскойПочитайте про сортировку расческой здесь https://thecode.media/comb-sort/ import random, math n = 10 m = [random.randint(0,10) for i in range(n)] print(m) factor = 1.247 gapFactor = n/factor while (gapFactor > 1): gap = math.round(gapFactor) for i in range(n-gap-1): if (m[i] > m[gap+i]): m[i],m[gap+i] = m[gap+i],m[i] gapFactor = gapFactor/factor print(m) Отсортировать массив можно с помощью функции sort() (для сортировки списков и кортежей используется sorted() ) m = [1,5,2,8,3] m.sort() print(m) # m = [1,5,2,8,3] m.sort(reverse =True) # сортировка по убыванию print(m) # [8, 5, 3, 2, 1] Задание Создайте одномерный массив из 10 элементов с помощью генератора целых чисел в промежутке [10,100]. Выведите все элементы массива построчно Выведите все элементы массива в одну строку Выведите только четные элементы Выведите максимальный и минимальный элементы массива Отсортируйте массив по возрастанию. |