Прошёл главу 8
This commit is contained in:
parent
dab0cfc73c
commit
9e8291a54e
32
ch8/average_age.py
Normal file
32
ch8/average_age.py
Normal file
@ -0,0 +1,32 @@
|
||||
def average_age(name):
|
||||
average_age = 0
|
||||
i = 0
|
||||
friends = users[name]['Друзья']
|
||||
for friend in friends:
|
||||
average_age += users[friend]['Возраст']
|
||||
i += 1
|
||||
average_age = average_age / i
|
||||
return average_age
|
||||
|
||||
|
||||
def anti_soc(users):
|
||||
max = 1000
|
||||
for name in users:
|
||||
user = users[name]
|
||||
friends = user['Друзья']
|
||||
if len(friends) < max:
|
||||
most_anti_soc = name
|
||||
max = len(friends)
|
||||
return most_anti_soc
|
||||
|
||||
users = {}
|
||||
users['Ким'] = {'Эл. почта': 'kim@oreilly.com', 'Пол': 'ж', 'Возраст': 27, 'Друзья': ['Джон', 'Джош']}
|
||||
users['Джон'] = {'Эл. почта': 'john@oreilly.com', 'Пол': 'м', 'Возраст': 24, 'Друзья': ['Ким', 'Джош']}
|
||||
users['Джош'] = {'Эл. почта': 'josh@oreilly.com', 'Пол': 'м', 'Возраст': 32, 'Друзья': ['Ким']}
|
||||
|
||||
|
||||
print(average_age('Ким'))
|
||||
print(average_age('Джон'))
|
||||
print(average_age('Джош'))
|
||||
|
||||
print(anti_soc(users))
|
29
ch8/fibonacci.py
Normal file
29
ch8/fibonacci.py
Normal file
@ -0,0 +1,29 @@
|
||||
import time
|
||||
|
||||
cache = {}
|
||||
def fibonacci(n):
|
||||
'''
|
||||
:param n: - число
|
||||
:return: - булево
|
||||
|
||||
Время выполнения будет очень - очень долгим
|
||||
'''
|
||||
global cache
|
||||
if n in cache:
|
||||
return cache[n]
|
||||
if n == 0:
|
||||
return 0
|
||||
elif n == 1:
|
||||
return 1
|
||||
else:
|
||||
result = fibonacci(n - 1) + fibonacci(n - 2)
|
||||
cache[n] = result
|
||||
return result
|
||||
|
||||
|
||||
for i in range(20, 55, 5):
|
||||
start = time.time()
|
||||
result = fibonacci(i)
|
||||
end = time.time()
|
||||
duration = end - start
|
||||
print(i, result, duration)
|
32
ch8/koch.py
Normal file
32
ch8/koch.py
Normal file
@ -0,0 +1,32 @@
|
||||
import turtle
|
||||
|
||||
def setup(pencil):
|
||||
pencil.color('blue')
|
||||
pencil.penup()
|
||||
pencil.goto(-200, 100)
|
||||
pencil.pendown()
|
||||
|
||||
|
||||
def koch(pencil, size, order):
|
||||
if order == 0:
|
||||
pencil.forward(size)
|
||||
else:
|
||||
for angle in [60, -120, 60, 0]:
|
||||
koch(pencil, size/3, order-1)
|
||||
pencil.left(angle)
|
||||
|
||||
|
||||
def main():
|
||||
pencil = turtle.Turtle()
|
||||
setup(pencil)
|
||||
|
||||
order = 4
|
||||
size = 400
|
||||
for i in range(0, 3):
|
||||
koch(pencil, size, order)
|
||||
pencil.right(120)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
turtle.tracer(100)
|
||||
turtle.mainloop()
|
14
ch8/palindrome.py
Normal file
14
ch8/palindrome.py
Normal file
@ -0,0 +1,14 @@
|
||||
def is_palindrome(word):
|
||||
if len(word) <= 0:
|
||||
return True
|
||||
else:
|
||||
if word[0] == word[-1]:
|
||||
return is_palindrome(word[1:-1])
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
words = ['tacocat', 'radar', 'yak', 'radar', 'kayjak']
|
||||
|
||||
for word in words:
|
||||
print(is_palindrome(word))
|
39
ch8/sum.py
Normal file
39
ch8/sum.py
Normal file
@ -0,0 +1,39 @@
|
||||
marbles = [10, 13, 39, 14, 41, 9, 3, 100]
|
||||
|
||||
|
||||
def recursive_compute_sum(list):
|
||||
if len(list) == 0:
|
||||
return 0
|
||||
else:
|
||||
first = list[0]
|
||||
rest = list[1:]
|
||||
sum = first + recursive_compute_sum(rest)
|
||||
return sum
|
||||
|
||||
|
||||
sum = recursive_compute_sum(marbles)
|
||||
print('Сумма равна', sum)
|
||||
|
||||
letter = 'radars'
|
||||
|
||||
def polindrom(str):
|
||||
# с помощию цикла
|
||||
# list = []
|
||||
# ob_list = []
|
||||
# for i in str:
|
||||
# list.append(i)
|
||||
# for i in str[::-1]:
|
||||
# ob_list.append(i)
|
||||
# if list == ob_list:
|
||||
# return 'полиндром'
|
||||
# else:
|
||||
# return 'не полиндром'
|
||||
# без цикла, просто через срез
|
||||
if str == str[::-1]:
|
||||
return 'полиндром'
|
||||
else:
|
||||
return 'не полиндром'
|
||||
|
||||
status = polindrom(letter)
|
||||
print('Слово', letter, status)
|
||||
|
Loading…
x
Reference in New Issue
Block a user