Программирование на Python3 с PyQt5

Сергей Николаевич Талипов, 2020

Основы программирования на Python3 с визуальными компонентами PyQt5 (для PyCharm Community).

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Программирование на Python3 с PyQt5 предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

ЛЕКЦИЯ 2 — ОСНОВНЫЕ ТИПЫ ДАННЫХ, УСЛОВИЯ И ОПЕРАЦИИ

К неизменяемым (immutable) типам относятся: целые числа (int), числа с плавающей точкой (float), комплексные числа (complex), логические переменные (bool), кортежи (tuple), строки (str) и неизменяемые множества (frozen set).

К изменяемым (mutable) типам относятся: списки (list), множества (set), словари (dict).

2.1 Числовые и строковые переменные

Целые числа могут быть любой длины, они ограничиваются лишь доступной памятью.

Числа с плавающей запятой имеют ограниченную точность. Визуально разницу между целым числом и числом с плавающей запятой можно заметить в консоли по наличию точки: 1 — целое число, 1.0 — с плавающей запятой.

Комплексные числа записываются в форме x+yj, где x — действительная часть числа, а y — мнимая: c = 1+2j

Мы можем преобразовывать значения из одного типа в другой с помощью таких функций, как int(), float(), str().

Строка представляет собой последовательность символов. Можно использовать одинарные или двойные кавычки для создания строки.

# Это комментарий

box1 = 15

box2 = 25

box3 = box1 + box2

print(box3)

s1 = 'Вам: '

s2 = ' лет'

name = input('Введите ваше имя: ')

age = input('Введите сколько вам лет: ')

name = 'Вас зовут: ' + name

age2 = s1 + age + s2

print(name)

print(age2)

b = 100 — int(age)

f = 100.5 — float(age)

print('Вам осталось жить где-то: ' + str(b))

print('А точнее где-то: ' + str(f))

40

Введите ваше имя: tsn

Введите сколько вам лет: 43

Вас зовут: tsn

Вам: 43 лет

Вам осталось жить где-то: 57

А точнее где-то: 57.5

Список использованных команд:

• print('Какой то текст') — печатает текст;

• print(a) — печатает значение переменной a (вместо a может быть любое имя переменной);

• a=input('Пояснение что надо ввести') — ожидает от пользователя ввода какого то значения и помещает его в переменную с типом строка (вместо a может быть любое имя переменной);

• int(a) — преобразовывает переменную типа строка в число (вместо a может быть любое имя переменной);

• str(i) — преобразовывает переменную числового типа в строку (вместо i может быть любое имя переменной).

2.1.1 Встроенные функции

Язык Python включает много уже определенных, т. е. встроенных в него, функций. Программист не видит их определений, они скрыты в"недрах"языка. Достаточно знать, что эти функции принимают и что возвращают, то есть их интерфейс.

Ряд встроенных функций, касающихся ввода-вывода и типов данных, мы уже использовали. Это print(), input(), int(), float(), str(). Рассмотрим другие встроенные функции:

print(ord('z')) # Код символа: 122

print(ord('ф')) # 1092

print(chr(87)) # Символ по коду: W

print(chr(10045)) # ✽

print(len('abc')) # Длина строки: 3

print(abs(-2.2)) # Модуль числа: 2.2

a = 10 / 3 # Вещественное деление: 3.3333333333333335

b = 10 % 3 # Остаток от целочисленного деления: 1

c = 10 // 3 # Деление нацело. Целая часть при делении: 3

print(a) # 3.3333333333333335

print(b) # 1

print(c) # 3

print(round(a, 2)) # Округление для двух знаков: 3.33

print(round(a)) # Округление до целого числа: 3

print("Number: %.2f"% a) # Number: 3.33

print(divmod(10, 3)) # Целая часть и остаток при целочисленном делении: (3, 1)

print(pow(2, 4)) # 2 в степени 4: 16

print(max(10, 12, 3)) # Макимальное число в списке: 12

print(min(10, 12, 3, 9)) # Манимальное число в списке: 3

print(sum((10, 12, 3, 10))) # Сумма чисел в списке: 35

2.1.2 Собственные функции

Иногда, набор каких-то повторяющихся команд нужно выполнять несколько раз. Такие блоки команд обычно выносят в отдельные кусочки программы. Именно из функций состоят внешние модули, которые можно подключать к программам. У функции могут быть входные параметры, называемые аргументами — это одна или несколько переменных, которые пишутся в скобках после имени функции. Также функция может возвращать одно или несколько значений с помощью команды return. Объявление функции начинается с ключевого слова def, далее следует имя функции, аргументы в скобках, и программный код отделённый четырьмя пробелами.

def pribavka(zarplata, avto):

k = 0

if (avto > 10):

k = round((avto — 10) * 0.02 * zarplata)

return k

a = int(input('Введите зарплату сотрудника: '))

b = int(input('Введите количество автомобилей проданных за месяц: '))

c = pribavka(a, b)

print('В этом месяце прибавка к зарплате составит: ' + str(c))

2.1.3 Функции математического модуля math

math.acos(X) — арккосинус X. В радианах

math.acosh(X) — вычисляет обратный гиперболический косинус

math.asin(X) — арксинус X. В радианах

math.asinh(X) — вычисляет обратный гиперболический синус

math.atan(X) — арктангенс X. В радианах

math.atan2(Y, X) — арктангенс Y/X. В радианах. С учетом четверти, в которой находится точка (X, Y)

math.atanh(X) — вычисляет обратный гиперболический тангенс

math.ceil(X) — округление до ближайшего большего числа

math.copysign(X, Y) — возвращает число, имеющее модуль такой же, как и у числа X, а знак — как у числа Y

math.cos(X) — косинус X (X указывается в радианах)

math.cosh(X) — вычисляет гиперболический косинус

math.degrees(X) — конвертирует радианы в градусы

math.e — e = 2,718281…

math.erf(X) — функция ошибок

math.erfc(X) — дополнительная функция ошибок (1 — math.erf(X))

math.exp(X) — eX

math.expm1(X) — eX — 1. При X → 0 точнее, чем math.exp(X)-1

math.fabs(X) — модуль X

math.factorial(X) — факториал числа X

math.floor(X) — округление вниз

math.fmod(X, Y) — остаток от деления X на Y

math.frexp(X) — возвращает мантиссу и экспоненту числа

math.fsum(последовательность) — сумма всех членов последовательности. Эквивалент встроенной функции sum(), но math.fsum() более точна для чисел с плавающей точкой

math.gamma(X) — гамма-функция X

math.hypot(X, Y) — вычисляет гипотенузу треугольника с катетами X и Y (math.sqrt(x * x + y * y))

math.isfinite(X) — является ли X числом

math.isinf(X) — является ли X бесконечностью

math.isnan(X) — является ли X NaN (Not a Number — не число)

math.ldexp(X, I) — X * 2i. Функция, обратная функции math.frexp()

math.lgamma(X) — натуральный логарифм гамма-функции X

math.log(X, [base]) — логарифм X по основанию base. Если base не указан, вычисляется натуральный логарифм

math.log10(X) — логарифм X по основанию 10

math.log1p(X) — натуральный логарифм (1 + X). При X → 0 точнее, чем math.log(1+X)

math.log2(X) — логарифм X по основанию 2

math.modf(X) — возвращает дробную и целую часть числа X. Оба числа имеют тот же знак, что и X

math.pi — pi = 3,1415926…

math.pow(X, Y) — XY

math.radians(X) — конвертирует градусы в радианы

math.sin(X) — синус X (X указывается в радианах)

math.sinh(X) — вычисляет гиперболический синус

math.sqrt(X) — квадратный корень из X

math.tan(X) — тангенс X (X указывается в радианах)

math.tanh(X) — вычисляет гиперболический тангенс

math.trunc(X) — усекает значение X до целого

import math

print(math.sin(22))

-0.008851309290403876

2.1.4 Функции и методы строк

...

(таблица)

...

2.2 Условный оператор

sun = input('Введите 1 если погода солнечная, и 2 если пасмурная: ')

if sun == '1':

d = 'Нужно загорать'

else:

d = 'Загорать не выйдет'

print(d)

myname = input('Введите логин: ')

mypass = input('Введите пароль: ')

if ((myname == 'tsn') and (mypass == 'superpassword123')) or ((myname == 'boss') and (mypass == '777')):

print('Привет, ' + myname + '. Добро пожаловать!')

else:

print('Ты хто такой, тавай дасвидания…')

v = int(input('Введите сколько вам лет: '))

if (v < 18):

print('Привет, юный кодер')

elif (v < 30):

print('Здравствуйте, молодой человек')

elif (v < 65):

print('Добрый день. Как семья, дети?')

elif (v < 100):

print('Здорово, Михалыч. Пенсию уже дали?')

elif (v < 100000):

print('Клан бессмертных приветствует тебя!')

Введите 1 если погода солнечная, и 2 если пасмурная: 1

Нужно загорать

Введите логин: tsn

Введите пароль: 123

Ты хто такой, тавай дасвидания…

Введите сколько вам лет: 43

Добрый день. Как семья, дети?

2.2.1 Пример решения квадратного уравнения с защищенными блоками

# Пример решения квадратного уравнения

import math # Подключение математического модуля

try: # Защищенный блок 1

a = float(input("Введите A="))

b = float(input("Введите B="))

c = float(input("Введите C="))

try: # Защищенный блок 2

d = b * b — 4 * a * c

x1 = (-b + math.sqrt(d)) / (2 * a)

x2 = (-b — math.sqrt(d)) / (2 * a)

print('d = ', d)

print('x1 = ', round(x1, 2))

print("x2 ="+ format(x2,"#.2f"))

except: # Обработчик ошибок для защищенного блока 1

print("Нет решения!")

except: # Обработчик ошибок для защищенного блока 2

print("Неверные входные данные!")

input("Нажмите Enter для выхода") # Задержка перед выходом из программы

Введите A=1

Введите B=2

Введите C=-33

d = 136.0

x1 = 4.83

x2 = — 6.83

Нажмите Enter для выхода

2.2.2 Практический пример с условием

# Программа получает ввод чисел X A B, затем выводит значение Y согласно

# y = (10 * (x + a^2)) / (b + a) если x >= 4

# y = 5 * (x + a^2 + b) если x < 4

def main(): # основная функция

# Получаем ввод X A B используя raw_input. Так как данный оператор всегда

# возвращает тип str, преобразовываем его в int используя оператор int()

# В питоне не обязательно объявлять переменные заранее, можно их объявлять

# сразу же присваивая значение. Тип переменной интерпретатор определяет сам

a = int(input('Введите A: '))

b = int(input('Введите B: '))

x = int(input('Введите X: '))

if x >= 4:

y = (10 * (x + a ** 2)) / (b + a)

else:

y = 5 * (x + a ** 2 + b)

# В питоне ' и"равнозначны. Выводим результат на экран. %.1f выводит

# значение типа float с точностью до одной десятой

print("y = %.1f"% y)

# Следующее условие предотвращает запуск программы, если она была импортирована

# в качестве модуля (к примеру import lab1)

if __name__ == '__main__':

main() # вызов основной функции

Введите A: 1

Введите B: 2

Введите X: 3

y = 30.0

2.3 Тернарный условный оператор

a = 10

b = 20

maximum = a if a > b else b

minimum = a if a < b else b

print(minimum, maximum)

10 20

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Программирование на Python3 с PyQt5 предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я