Вы находитесь на странице: 1из 10

Глава 2 – Переменные, Выражения и Операторы

--- Обработка данных, введенных пользователем

inp = input('Этаж в Европе?')


usf = int(inp) + 1
print('Этаж в США', usf)

-- Результат работы программы

Europe floor? 0
US floor 1

--- Задание

Напишите программу, предлагающую пользователю ввести количество часов и


почасовую ставку для расчета заработной платы.

Укажите количество часов: 35


Укажите ставку: 2.75
Оплата: 96.25

--- Решение

hours = input('Укажите количество часов: ')


rate = input('Укажите ставку: ')
pay = float(rate) * float(hours)
print('Оплата:', pay)
Глава 03 – Обработка условий

--- Двусторонние решения:

x = 4

if x > 2 :
print('Больше')
else :
print('Меньше')

print('Готово')

--- Несколько условий:

if x < 2 :
print('Маленький')
elif x < 10 :
print('Средний')
else :
print('БОЛЬШОЙ')
print('Готово')

--- Запутанность множества условий #1

# Что никогда не будет выведено?


if x < 2 :
print('Меньше 2')
elif x >= 2 :
print('Два или более')
else :
print('Что-то еще')

--- Числовое преобразование с помощью Try / Except

# tryexcept.py
astr =('Привет, Боб')
try:
istr = int(astr)
except:
istr = -1

print('Первый', istr)

astr = '123'
try:
istr = int(astr)
except:
istr = -1

print('Второй', istr)

-- Результат выполнения:

Первый -1
Второй 123

--- Задание

Перепишите программу расчета заработной платы, принимая в


расчет, что за каждый сверхурочный час (после того, как
отработал больше 40 часов) сотрудник получает 1,5-кратную
ставку.

Введите количество часов: 45


Введите ставку: 10
Оплата: 475.0

Обратите внимание, что 475 = 40 * 10 + 5 * 15

---------------- Конец слайда ---------------

Решение:

h = input('Введите количество часов: ')


r = input('Введите ставку: ')
rate = float(r)
hours = float(h)
if hours <= 40 :
pay = rate * hours
else:
pay = 40 * rate + (hours - 40) * 1.5 * rate
print('Оплата:', pay)
Глава 04 – Функции

--- Возвращаем значение при помощи инструкции Return:

def greet(lang):
if lang == 'es':
return 'Hola'
elif lang == 'fr':
return 'Bonjour'
else:
return 'Hello'

print(greet('en'),'Glenn')
print(greet('es'),'Sally')
print(greet('fr'),'Michael')

--- Результат выполнения

Hello Glenn
Hola Sally
Bonjour Michael

--- Задание:

Перепишите программу расчета оплаты с полуторной ставкой за


переработку и создайте функцию с именем computepay, которая
принимает два параметра - количество часов и ставка.

Введите количество часов: 45


Введите ставку: 10
Оплата: 475.0

--- Решение:

def computepay(hh, rr):


if hours <= 40 :
retval = rate * hours
else:
retval = 40 * rate + (hours - 40) * 1.5 * rate
return retval

h = input('Введите количество часов: ')


r = input('Введите ставку: ')
rate = float(r)
hours = float(h)
pay = computepay(hours, rate)
print('Оплата:', pay)

Глава 05 – Циклы

--- Решение для поиска наименьшего значения


smallest = None
print('Начало')
for value in [9, 41, 12, 3, 74, 15] :
if smallest is None :
smallest = value
elif value < smallest :
smallest = value
print(smallest, value)

print('Конец', smallest)

-- Результат выполнения

Начало
9 9
9 41
9 12
3 3
3 74
3 15
Конец 3
Глава 06 - Строки

--- Перебор элементов строки

fruit = 'banana'
for letter in fruit :
print(letter)

-- Результат выполнения

b
a
n
a
n
a

--- Разбор / Извлечение

From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008

>>> data = 'From stephen.marquard@uct.ac.za Sat Jan 5


09:14:16 2008'
>>> atpos = data.find('@')
>>> print(atpos)
21
>>> sppos = data.find(' ',atpos)
>>> print(sppos)
31
>>> host = data[atpos+1 : sppos]
>>> print(host)
uct.ac.za
Глава 07 - Файлы

--- Поиск по файлу

fhand = open('mbox-short.txt')
for line in fhand:
line = line.rstrip()
if line.startswith('From:') :
print(line)

-- Результат выполнения

From: stephen.marquard@uct.ac.za
From: louis@media.berkeley.edu
From: zqian@umich.edu
From: rjlowe@iupui.edu
....
Глава 08- Списки

--- Списки и циклы со счетчиком – лучшие друзья


friends = ['Анатолий', 'Роман', 'Татьяна']

for friend in friends :


print('С Новым Годом:', friend)

print 'Готово!'

- Результат выполнения

С Новым Годом: Анатолий


С Новым Годом: Роман
С Новым Годом: Татьяна
Готово!

--- Лучшие друзья: Строки и списки

>>> abc = 'Эти три слова'


>>> stuff = abc.split()
>>> print stuff
['Эти', 'три', 'слова']
>>> print(len(stuff))
3
>>> print(stuff[0])
Эти
>>> print(stuff)
['Эти', 'три', 'слова']

--- Пример двойного разделения

- Ввод программы

From stephen.marquard@uct.ac.za Sat Jan...

- Программа

words = line.split()
email = words[1]
pieces = email.split('@')
print(pieces[1])
Глава 9 - Словари

--- Когда встречается новое имя


counts = dict()
names = ['csev', 'cwen', 'csev', 'zqian', 'cwen']
for name in names :
if name not in counts:
counts[name] = 1
else :
counts[name] = counts[name] + 1
print(counts)

--- Упрощенный подсчет при помощи метода get

counts = dict()
names = ['csev', 'cwen', 'csev', 'zqian', 'cwen']
for name in names :
counts[name] = counts.get(name, 0) + 1
print(counts)

--- Программа подсчета слов

name = raw_input("Введите имя файла:")


handle = open(name, 'r')
text = handle.read()
words = text.split()

counts = dict()
for word in words:
counts[word] = counts.get(word,0) + 1

bigcount = None
bigword = None
for word,count in counts.items():
if bigcount is None or count > bigcount:
bigword = word
bigcount = count

print(bigword, bigcount)
Глава 10 - Кортежи

--- Кортежи похожи на списки

>>> x = ('Гленн', 'Салли', 'Джозеф')


>>> print(x[2])
Джозеф
>>> y = ( 1, 9, 2 )
>>> print(y)
(1, 9, 2)
>>> print max(y)
9
>>> for iter in y:
... print(iter)
...
1
9
2

--- Сортировка списков кортежей

>>> d = {'a':10, 'b':1, 'c':22}


>>> t = d.items()
>>> t
[('a', 10), ('c', 22), ('b', 1)]
>>> t.sort()
>>> t
[('a', 10), ('b', 1), ('c', 22)]

--- 10 самых часто встречающихся слов


fhand = open('romeo.txt')
counts = dict()
for line in fhand:
words = line.split()
for word in words:
counts[word] = counts.get(word, 0 ) + 1

lst = list()
for key, val in counts.items():
lst.append( (val, key) )

lst.sort(reverse=True)

for val, key in lst[:10] :


print(key, val)

Вам также может понравиться