Целочисленная арифметика


Для целых чисел определены операции +, -, //, * и **. Операция деления / для целых чисел возвращает вещественное число (значение типа float). Также функция возведения в степень возвращает значение типа float, если показатель степени – отрицательное или вещественное число.

Операция целочисленного деления, отбрасывающая дробную часть, обозначается // (она соответствует операции div в Паскале), возвращающая целую часть частного. Операция взятия остатка от деления – % (соответствует – mod в Паскале).

Действительные числа

Здесь будет рассматриваться тип float.

При вводе с клавиатуры действительного числа функцией input() необходимо преобразовывать к типу float:

Вещественные числа могут быть записаны с плавающей точкой в виде мантиссу и порядок.

Например, 0.000001=0.1e-5, где 0.1 – мантисса, а е-5 – запись порядка -5.

Преобразование действительных чисел к целому производится с округлением в сторону нуля, то есть int(3.14) =3, int(-3.14) =-3.

Библиотека math

Для вычисления выражений, содержащих функции с действительными значениями, используется библиотека math, которая подключается следующим образом

import math

Ниже приведен список основных функций модуля math.

Функция Описание

Округление

int(x) – Округляет число в сторону нуля. Это стандартная функция, не требующая подключения модуля math.

round(x) – Округляет число до ближайшего целого.

round(x, n) – Округляет число x до n знаков после точки. Это стандартная функция.

floor(x) – Округляет число вниз, при этом floor(1.6)=1, floor(-1.6)=-2

ceil(x) – Округляет число вверх, при этом ceil(1.6)=2, ceil(-1.6)=-1

abs(x) – Абсолютная величина. Это — стандартная функция.

Корни, логарифмы

sqrt(x) – Квадратный корень.

log(x) – Натуральный логарифм. log(x, b) – логарифм по основанию b.

Тригонометрия

sin(x) – Синус угла, задаваемого в радианах

cos(x) – Косинус угла, задаваемого в радианах

tan(x) – Тангенс угла, задаваемого в радианах

asin(x) – Арксинус, возвращает значение в радианах

acos(x) – Арккосинус, возвращает значение в радианах

atan(x) – Арктангенс, возвращает значение в радианах

atan2(y,x) – Полярный угол (в радианах) точки с координатами (x, y).

degrees(x) – Преобразует угол, заданный в радианах, в градусы.

radians(x) – Преобразует угол, заданный в градусах, в радианы.

Pi – Константа π = 3.1415...

Упражнения.

1. Дано трехзначное натуральное число а. Получить двузначное число b из a, вычеркиванием средней цифры. Например: 123 >13.

2. Дано трехразрядное натуральное число а. Найти сумму цифр этого числа. (Например: 124 > 7).

3. Дано трехразрядное натуральное число а. Найти произведение цифр этого числа.

4. Дано натуральное число n. Найдите произведение всех цифр заданного числа n, за исключением нулей.

5. Найдите сумму 1+11+111+1111+...1111...1, если последнее слагаемое состоит из n цифр.

6. Найдите все натуральные числа от 1 до n , которые равны сумме кубов своих цифр.

7. Дано натуральное число n. Найти последнюю цифру числа.

8. Дано натуральное число n. Найти первую цифру числа n.

9. Дано натуральное число n. Найти количество цифр в числе n.

10. Дано натуральное число n. Найти сумму его цифр.

11. Дано натуральное число п. Найти сумму первой и последней цифры.

12. Автоморфным называем такое число, цифры которого совпадают с последними цифрами его квадрата. Например 6*6=36, 25*25=625, 76*76=5776. Найдите автоморфные числа в интервале [m,n].

13. Дано натуральное число n. Найти знакочередующуюся сумму цифр числа n. Например: n=4569, найти 4-5+6-9=-4.).

14. Задана последовательность чисел от 1 до 1000. Определить общее число значащих 0 в двоичном представлении данных чисел.

15. Дано натуральное число n. Выяснить, входит ли цифра 3 в запись числа n2.

16. Дано натуральное число n. Найти сумму четных цифр.

17. Дано натуральное число n. Посчитать число цифр равных к.

18. Дано натуральное число n. Получить число с обратным значением цифр, где 0®9, 1®8, 2®7, 3®6, 4®5 и наоборот 5®4, 6®3, 7®2, 8®1, 9®0. Например, 347 ® 652

19. Дано натуральное число n. Поменять порядок цифр числа n на обратный.

20. Определить является ли заданное натуральное число палиндромом, т.е. таким, десятичная запись которого читается одинаково слева направо и справа налево (например 121 и 4334).

21. Дано натуральное число n. Переставить первую и последнюю цифру числа n.

22. Дано натуральное число n. Приписать по единице в начало и в конец записи числа n.

23. Дано число n, Удалить из ее записи цифры 0 и 5, оставив прежним порядок остальных цифр. Например, из числа 9505109 должно получиться 919.

24. Дано число n, Удалить из ее записи нечетные цифры, оставив прежним порядок остальных цифр. Например, из числа 95052109 должно получиться 20.

25. Дано натуральные числа n, m. Получить сумму m последних цифр числа n.

26. Вывести все 3-х значные числа, сумма цифр которых четно.

27. Вывести все 3-х значные числа, цифр которых четны.

28. Вывести все 4-х значные числа, содержащие нечетную цифру.

29. Напечатать все четырехзначные натуральные числа, в десятичной записи которых нет двух одинаковых цифр.

30. Даны натуральные числа n и k. Напечатать k-ю цифру в записи числа n.

31. Даны натуральные числа n и k. Напечатать цифру k-го разряда в записи числа n.

32. *Дано натуральное число k. Напечатать k-ю цифру последовательности.

а) 12345678910111213..., в которой выписаны подряд все натуральные числа.

б) 123410111213142021..., в которой выписаны подряд все натуральные числа в пятеричном представлении.

в) 149162536..., в которой выписаны подряд квадраты всех натуральных чисел.

г) 1123581321..., в которой выписаны подряд все числа фибоначчи.

33. Напечатать цифры числа 7123.

34. Для заданных натуральных n и k определить, равно ли число n сумме k-х степеней своих цифр.

35. Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр.

36. Дано натуральное число n. Напечатать его вразбивку, т.е. ставя перед каждой цифрой столько пробелов, каково значение этой цифры. Например, число 1234 печатается 1 2 3 4.

37. Для заданного натурального числа найти наименьшее из чисел, составленных из тех же цифр. Например: 437065 > 34567.

38. Для заданного натурального числа найти наименьшее из чисел, полученной перестановкой цифр с начала числа в конец. Например: 437065 ® 65437.

39. Найти первые четыре натуральных числа, пятая степень, которых оканчивается тремя одинаковыми цифрами, кроме нулей.

40. Число из n цифр называется числом Армстронга, если сумма цифр, возведенных в n-ю степень, равна самому числу. Написать программу нахождения всех чисел Армстронга, состоящих из двух трех и четырех цифр.

41. * Для данного числа написать программу вычисления числа Креккера, который определяется добавлением цифр в записи числа (для числа 123 число Креккера будет 123+1+2+3=129).

42. * Для данного числа написать программу проверки является ли оно числом Креккера (См. предыдущее упражнение. Например, 13=11+1+1 - число Креккера, а 9 не является числом Креккера).

43. * Для данного числа написать программу определения для скольки чисел оно является числом Креккера (См. предыдущее упражнение. Например, 101=100+1=91+1+9.

44. Написать программу вычисления 2, 3 и 4 разрядных чисел Армстронга. Число называется числом Армстронга, если сумма степеней заданного числа n в n степени равна n.

45. * (1992/1993) Написать программу нахождения наибольшего натурального числа, в десятичной записи которого каждая цифра (кроме крайних) строго меньше полусуммы 2 соседних с ней цифр. (1248: 2<1+4/2, 4<2+8/2)

46. *(1997/1998) Задано натуральное число от 1 до 29999. Написать программу словарной записи данного числа.

Например: 23 - "двадцать три"

47. Для заданного числа n получить число вычеркиванем через одну цифру, начиная с младшего разряда.

Пример: 2345 ® 24 – ответ

48. Для заданного числа n получить число вычеркиванем через одну цифру, начиная со старшего разряда.

Пример: 1234 ® 24 – ответ.

49. Для заданного числа n получить число вычеркиванем через одну цифру, начиная с младшего разряда. Дойдя до старшего разряда, начать с начала. Пока не останется одна цифра.

Пример: 12345 ® 24 ® 2 – ответ.

50. Для заданного числа n получить число вычеркиванем через одну цифру, начиная с младшего разряда. Дойдя до старшего разряда, начать с начала. Пока не останется одна цифра..

Пример: 12345 ® 24 ® 2 – ответ.

51. Для заданного числа n получить число вычеркиванем через одну цифру, начиная с младшего разряда. Дойдя до старшего разряда, продолжить с начала. Пока не останется одна цифра.

Пример: 1234567890 ® 13579 ® 37 ® 3 – ответ.

52. * Для заданных чисел n и k получить цифру вычеркиванем k-ой цифры, начиная с младшего разряда. Дойдя до старшего разряда, продолжить с начала. Пока не останется одна цифра.

Пример:

n=1234567890, k=4. 1234567890 ® 12456890 ® 125680 ® 2560 ® 560 ® 56 ® 6 – ответ.

Строки

Строка считывается стандартной функцией ввода input().

Строка состоит из последовательности символов. Количество символов (длину строки) можно определить при помощи функции len.

Любой объект в PYTHON c помощью функци str() можно перевести в строку.

Строки в Python определяются кавычками «"» или апострофами «'». Внутри кавычек могут присутствовать апострофы или наоборот.

Например 1.

print(«Он сказал 'привет'!») #напечатает – Он сказал 'привет'!

Если нужно использовать строку из несколько строчек, то эту строку надо начинать и заканчивать тремя двойными кавычками «"""».

Можно подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортеже, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом.

Print "Name: %s \n Number: %s \n String: %s" % (my class.name, 3, 3 * "_")

Name: Poromenos

Number: 3

String: ___

strString = """Этот текст расположен

на нескольких строках"""

print "This %(verb)s a %(noun)s." % {"noun": "test", "verb":"is"}

This is a test.

Если S=’язмыш’

Строка S я з м ы ш
Индекс
Индекс -5 -4 -3 -2 -1

Срез с двумя параметрами: S[a:b] возвращает подстроку из b – a символов, начиная с символа c индексом a, то есть до символа с индексом b, не включая его. Например, S[1:3] == 'зм', то же самое получится, если написать S[-4:-2]. Можно использовать как положительные, так и отрицательные индексы в одном срезе, например, S[1:-1] – это строка без первого и последнего символа (срез начинается с символа с индексом 1 и заканчиватеся индексом -1, не включая его).

Пример 2.

Для печати из n элементного массива подмассив с индексами от а до b можно написать следующий фрагмент программы:

n = int(input())

a = [int(s) for s in range(n)] # ввод массива a с индексами от 0 до n-1

b,c = map(int,r().split()) # ввод индексов массива a

print(' '.join(str(s) for s in a[b-1:c])) # перебор элементов массива с заданным

# интервалом индексов и печать собранной последовательности.

Метод find, rfind находят расположение подстроки в тексте.

s.find(ss) – выдает позицию первого вхождения подстроки ss в строку s.

s.rfind(ss) – выдает позицию последнего вхождения подстроки ss в s.

Если эти методы с тремя параметрами, то s.find(ss,b,a) ищет подстроку в интервале от b до a.

Метод replace(old,new,k) k подстрок old в тексте заменяет на подстроку new. Если третий параметр не указан, то метод заменяет все вхождения заданной подстроки.

Метод count(ss) определяет, сколько раз заданная подстрока встречается в тексте.

Пример 3.

С=’Язмыш’

print(C,С.rfind(‘зм’)) # напечатает – Язмыш 1

print(C.replace(‘зм’,’лг’) # напечатает – Ялгыш

С=’алмашлыклар’

print(C,С.count(‘a’),С.count(‘л’,3,10)) #напечатает – алмашлыклар 3 1

К строковым значениям можно применять методы управления, изменяющие регистры написанных символов.

Пример 4.

jazu='Аида, камил, РАВИЛ'

print(jazu) # напечатает – Аида, камил, РАВИЛ

print(jazu.title()) # напечатает – Аида, Камил, Равил

print(jazu.upper()) # напечатает – АИДА, КАМИЛ, РАВИЛ

print(jazu.lower()) # напечатает – аида, камил, равил

Если в текстовой пременной в начале и в конце присутствуют ненужные пробелы, то можно вызывать методы удаления ненужных пробелов.

Пример 5.

jazu=' Аида, Камил, Равил '

Jazu=jazu.strip() # значение – Jazu='Аида, Камил, Равил'

Jazu=jazu.lstrip() # значение – Jazu='Аида, Камил, Равил '

Jazu=jazu.rstrip() # значение – Jazu=' Аида, Камил, Равил'

Строки в языке Python невозможно изменить. Попытка изменить символ в определенной позиции или подстроку вызовет ошибку:

Примеры 6:

a='123'

print(a,1, 2, sep='=', end = '\n')

a[0]='0'

print(1, 2)

выдаст сообщение

Traceback (most recent call last):

File "C:/Users/1/PycharmProjects/untitled2/22.py", line 3, in <module>

a[0]='0'

TypeError: 'str' object does not support item assignment

Правильная запись программы

a='12345678'

print(a) # Напечатает – 12345678

# a[3]='_' - не допустим

a=a[:3]+'_'+a[4:]

print(a) # Напечатает – 123_5678



Дата добавления: 2022-04-12; просмотров: 153;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.025 сек.