Перейти к содержанию

Программирование и научные вычисления на языке Python/§1/Упражнения

Материал из Викиверситета

Тест

  

1 Каким образом в Python обозначается возведение в степень?

^
^^
**

2 Какие из этих переменных названы правильно?

first_step
1day
NAME
name
print
{b}
a2

3 Какой символ ставится перед комментарием в Python?

/*
$$
#

4 Какую операцию осуществляет сочетание символ \n ?

Переход на новую строку.
Очистка старой строки.
Разбиение строк до и после символа слэша.


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. Также, если вы хорошо владеете английским, вас может заинтересовать список успешных применений.

Идем дальше

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