Программирование и научные вычисления на языке Python/§1/Упражнения
Тест
2*2=4
Часто говорят, что что-то просто как дважды два. Просто ли вам написать программу, которая выводит решение этой трудоемкой задачи? На самом деле, задача действительно проста.
Выполним её по аналогии с предыдущей (расчёт ускорения свободного падения).
multiple_2x2.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
# первые две строки указывают обработчику скрипта, с помощью чего исполнять скрипт
# (актуально только для Linux) (следует обратить внимание на комбинацию #! ->
# именно так, и никак иначе, в противном случае исполнение не гарантируется,
# а сама комбинация #! звучит как "слэш-банг" (вольный перевод - "удар топора")),
# вторая строка указывает, что файл сохранён и использует кодировку utf-8
# очень желательно использовать именно её (в Linux просто всё для этого сделано,
# в Windows - снимает массу проблем)
a1 = 2
a2 = 2
result = a1*a2
print(u'Результат умножения ',a1,u' на', a2, '=', result)
Hello, World!
Почти все пособия о любом языке программирования начинаются с программы, выводящей на экран фразу "Hello, World!". Надеюсь, и вы теперь в силах написать этот однострочный код. Назовем программу hello_world.py.
#!/usr/bin/python
# -*- coding: utf8 -*-
hello='Hello, World!'
print (hello)
C этой программы традиционно начинается изучение любого языка. Считается, что написание приветствия миру это нулевая задача, но если учесть, что время затраченное на скачку, установку, поиск исполняющего файла, и элементарное знание языка - совсем не маленькое, то стоит согласиться: "Привет, мир!" - это большая работа.
Единицы длины
В версте 500 саженей, в сажени 3 аршина, в аршине 4 пяди, в пяди 4 вершка. Вершок это 4,445 см. Напишите программу, которая покажет вам сколько сантиметров в пяди, аршине и сажени (с точностью до миллиметра) и с точностью до сантиметра сколько километров в версте. Название программы: length_conversion.py.
#!/usr/bin/python
# -*- coding: utf8 -*-
vershok=4.445
pad=4*vershok
arshin=4*pad
sajen=3*arshin
versta=500*sajen
print ('В пяди', pad, 'см\n', 'В аршине', arshin, 'см\n', 'В сажени', sajen, 'см')
print ('В версте', int(versta), 'см или ', int(versta)/100000.0, 'км')
Плотнее
Как известно, плотность вещества определяется как отношение массы к объему. Если мы возьмем один и тот же объем, то различные вещества ввиду их разной плотности, будут весить неодинаково. Давайте напишем программу, которая выводит массу одного литра каждого вещества. Назовем ее one_liter.py. Чтобы было интересно сравнивать возьмем самые разные субстанции:
Вещество | Плотность, г/см3 |
воздух | 0.0012 |
бензин | 0.67 |
дистиллированная вода | 1.0 |
морская вода | 1.025 |
тело человека | 1.03 |
известняк | 2.6 |
гранит | 2.7 |
железо | 7.8 |
серебро | 10.5 |
ртуть | 13.6 |
золото | 18.9 |
платина | 21.4 |
ядро Земли | 13 |
Луна | 3.3 |
ядро Солнца | 150 |
протон | 2.8 1014 |
Вариант 1:
#!/usr/bin/python
# -*- coding: utf8 -*-
# задаём плотность вещества, в кг/м**3
ves1=1000.0
ves2=6300.0
# задаём массу в килограммах
massa1=2000.0
massa2=16700.0
# вычисляем объём на полкубометра
Polkuba1=massa1/ves1*0.5
Polkuba2=massa2/ves2*0.5
print ('polkuba1=',Polkuba1)
print ('polkuba2=',Polkuba2)
Вариант 2:
#!/usr/bin/python
# -*- coding: utf-8 -*-
v = 0.0012
b = 0.67
dv = 1.0
mv = 1.025
tch = 1.03
i = 2.6
g = 2.7
zh = 7.8
s = 10.5
r = 13.16
z = 18.9
p = 21.4
yaz = 13
l = 3.3
ss = 150
pr = 2.8*10**14
print ("Масса 1 л воздуха = %g г" %(v*1000))
print ("Масса 1 л бензина = %g г" %(b*1000))
print ("Масса 1 л дистилированной воды = %g г" %(dv*1000))
print ("Масса 1 л морской воды = %g г" %(mv*1000))
print ("Масса 1 л тела человека = %g г" %(tch*1000))
print ("Масса 1 л известняка = %g г" %(i*1000))
print ("Масса 1 л гранита = %g г" %(g*1000))
print ("Масса 1 л железа = %g г" %(zh*1000))
print ("Масса 1 л серебра = %g г" %(s*1000))
print ("Масса 1 л ртути = %g г" %(r*1000))
print ("Масса 1 л золота = %g г" %(z*1000))
print ("Масса 1 л платины = %g г" %(p*1000))
print ("Масса 1 л ядра Земли = %g г" %(yaz*1000))
print ("Масса 1 л Луны = %g г" %(l*1000))
print ("Масса 1 л ядра Солнца = %g г" %(ss*1000))
print ("Масса 1 л протона = %g г" %(pr*1000))
Деньги в банке
Пусть у вас есть какая-то начальная сумма денег А, которую вы решили положить в банк под годовой процент p. Программа считает сколько денег будет вам должен банк через n лет и выводит сколько вы получите денег, сколько их было вначале и их разность, то есть ваш доход через n лет. Название программы: interest_rate.py.
Пример программы
Вариант 1:
#!/usr/bin/python
# -*- coding: utf8 -*-
# сумма денег
a=1000
# годовой процент
p=3.5
# количество лет
n=25
#------------------
for i in range(0,n):
a=a/100.0*p+a # итерация с увеличением исходной суммы
print ('Количество денег за', n, ' лет составит', a, 'рублей')
Вариант 2:
#!/usr/bin/python
# -*- coding: utf-8 -*-
A = float(input("Введите начальную сумму денег: "))
p = float(input("Введите годовой процент банка: "))
n = int(input("Через сколько лет вы хотели бы получить деньги? "))
# float() - приведение к числу с точкой
# int() - приведение к целому числу
D = A # Количество денег за 1 год
for i in range(0, n):
D += D/100*p # Итерация с увеличением исходной суммы
print("Через %d лет вы получите %g денег" %(n, D))
print("Вначале у вас было %g денег" %A)
print("Доход через %d лет: %g денег" %(n, D-A))
Найти ошибку
Кто-то написал следующую простую однострочную программу, чтобы вычислить sin(1):
x=1; print 'sin(%g)=%g' % (x, sin(x))
Попробуйте ее запустить. Или, может быть, вы видите ошибку сразу? В чем проблема?
- Без импорта пакета командой "from math import *", программа может не заработать.
Текст
Вот программа, в которой мы на простых геометрических объектах закрепим наши знания о выводе текста. Объясните, что происходит в каждой строчке кода и какой тип форматирования применяется:
pi = 3.14
h = 5.0 # height
b = 2.0 # base
r = 1.5 # radius
area_parallelogram = h*b
print ('The area of the parallelogram is %.3f' % area_parallelogram)
area_square = b**2
print ('The area of the square is %g' % area_square)
area_circle = pi*r**2
print ('The area of the circle is %8.3f' % area_circle)
volume_cone = 1.0/3*pi*r**2*h
print ('The volume of the cone is %.3f' % volume_cone)
- В первом случае идёт вычисление площади параллелограмма.
- Во втором - площадь квадрата
- В третьем - площадь круга.
- В четвёртом - объём конуса.
Впрочем, комментарии на английском - вполне прозрачны.
Как еще применяется Python
Узнайте какие еще применения находит язык программирования Python, кроме тех целей, ради которых мы его избрали. Просмотрите, например, статью википедии w: Проект:Информационные технологии/Списки/Список программного обеспечения, написанного на языке программирования Python. Также, если вы хорошо владеете английским, вас может заинтересовать список успешных применений.
Идем дальше
Если у вас получилось и пройти тест, и выполнить все упражнения, то вы можете отдохнуть и приступить к следующему уроку.