chore(i18n,curriculum): processed translations - new ukrainian (#44447)

This commit is contained in:
camperbot
2021-12-10 11:14:24 +05:30
committed by GitHub
parent 8651ee1797
commit 0473dedf47
1663 changed files with 156692 additions and 1 deletions

View File

@ -0,0 +1,71 @@
---
id: 5e7b9f060b6c005b0e76f05b
title: Створіть свої власні функції
challengeType: 11
videoId: nLDychdBwUg
bilibiliIds:
aid: 249487483
bvid: BV1Fv411J7bS
cid: 376340281
dashedName: build-your-own-functions
---
# --description--
Додаткові ресурси:
\- [Відео з поясненнями](https://www.youtube.com/watch?v=ksvGhDsjtpw)
# --question--
## --text--
Який результат буде виведено на екран після виконання коду нижче?:
```python
def fred():
print("Zap")
def jane():
print("ABC")
jane()
fred()
jane()
```
## --answers--
<pre>Zap
ABC
jane
fred
jane</pre>
---
<pre>Zap
ABC
Zap</pre>
---
<pre>ABC
Zap
jane</pre>
---
<pre>ABC
Zap
ABC</pre>
---
<pre>Zap
Zap
Zap</pre>
## --video-solution--
4

View File

@ -0,0 +1,61 @@
---
id: 5e7b9f0b0b6c005b0e76f06d
title: Порівняння та сортування масивів
challengeType: 11
videoId: dZXzBXUxxCs
bilibiliIds:
aid: 931886163
bvid: BV1HM4y1T7TK
cid: 376533673
dashedName: comparing-and-sorting-tuples
---
# --description--
Додаткові ресурси:
\- [Відео-урок](https://www.youtube.com/watch?v=EhQxwzyT16E)
# --question--
## --text--
Який код є аналогічним за результатом виконання до заданого нижче?:
```python
lst = []
for key, val in counts.items():
newtup = (val, key)
lst.append(newtup)
lst = sorted(lst, reverse=True)
print(lst)
```
## --answers--
```python
print( sorted( [ (v,k) for k,v in counts.items() ], reverse=True ) )
```
---
```python
print( [ (k,v) for k,v in counts.items().sorted() ] )
```
---
```python
print( sorted( [ (v,k) for k,v in counts.keys() ] ) )
```
---
```python
print( [ (k,v) for k,v in counts.values().sort() ] )
```
## --video-solution--
1

View File

@ -0,0 +1,54 @@
---
id: 5e7b9f050b6c005b0e76f058
title: Використання умовних операторів
challengeType: 11
videoId: gz_IfIsZQtc
bilibiliIds:
aid: 206949935
bvid: BV1Jh411z7bY
cid: 376337035
dashedName: conditional-execution
---
# --question--
## --text--
Який код є правильним і при виконанні буде виведено "Yes" за умови, що x = 0 та y = 10?
## --answers--
```python
if 0 == x:
if y == 10:
print("Yes")
```
---
```python
if 0 == x:
if y == 10:
print("Yes")
```
---
```python
if 0 == x:
if y == 10:
print("Yes")
```
---
```python
if 0 == x:
if y == 10:
print("Yes")
```
## --video-solution--
4

View File

@ -0,0 +1,56 @@
---
id: 5e7b9f6a0b6c005b0e76f097
title: 'Візуалізація даних: списки розсилки'
challengeType: 11
videoId: RYdW660KkaQ
bilibiliIds:
aid: 334465586
bvid: BV18w411R7dD
cid: 377545473
dashedName: data-visualization-mailing-lists
---
# --description--
Додаткові ресурси:
\- [Відео-урок: geodata](https://www.youtube.com/watch?v=KfhslNzopxo)
\- [Відео-урок: Gmane model](https://www.youtube.com/watch?v=wSpl1-7afAk)
\- [Відео-урок: Gmane spider](https://www.youtube.com/watch?v=H3w4lOFBUOI)
\- [Відео-урок: Gmane Viz](https://www.youtube.com/watch?v=LRqVPMEXByw)
\- [Відео-урок: page rank](https://www.youtube.com/watch?v=yFRAZBkBDBs)
\- [Відео-урок: page spider](https://www.youtube.com/watch?v=sXedPQ_AnWA)
\- [Відео-урок: Page Viz](https://www.youtube.com/watch?v=Fm0hpkxsZoo)
# --question--
## --text--
Яка типова бібліотека візуалізації JavaScript?
## --answers--
DataViz.js
---
D3
---
Lowcharts
---
DATA6
## --video-solution--
2

View File

@ -0,0 +1,34 @@
---
id: 5e7b9f6a0b6c005b0e76f096
title: 'Візуалізація даних: Page Rank'
challengeType: 11
videoId: 6-w_qIUwaxU
bilibiliIds:
aid: 376950472
bvid: BV1ho4y1Q72u
cid: 377544599
dashedName: data-visualization-page-rank
---
# --question--
## --text--
Як працює алгоритм PageRank?
## --answers--
Він визначає, які сторінки найбільш пов'язані.
---
Він ранжує сторінки за кількістю переглядів.
---
Він визначає, які сторінки містять найважливіший контент.
## --video-solution--
1

View File

@ -0,0 +1,53 @@
---
id: 5e7b9f0a0b6c005b0e76f069
title: Словники та цикли
challengeType: 11
videoId: EEmekKiKG70
bilibiliIds:
aid: 589401038
bvid: BV1eq4y1X7xU
cid: 376387132
dashedName: dictionaries-and-loops
---
# --description--
Додаткові ресурси:
\- [Відео-урок](https://www.youtube.com/watch?v=PrhZ9qwBDD8)
# --question--
## --text--
Що буде виведено на екран після виконання наведеного нижче коду?:
```python
counts = { 'chuck' : 1 , 'annie' : 42, 'jan': 100}
for key in counts:
if counts[key] > 10:
print(key, counts[key])
```
## --answers--
<pre>annie 42
jan 100</pre>
---
<pre>chuck 1
annie 42
jan 100</pre>
---
<pre>chuck 1</pre>
---
<pre>[Error]</pre>
## --video-solution--
1

View File

@ -0,0 +1,47 @@
---
id: 5e7b9f090b6c005b0e76f068
title: 'Словники: загального використання'
challengeType: 11
videoId: f17xPfIXct0
bilibiliIds:
aid: 805747023
bvid: BV1v34y1D7ug
cid: 414168867
dashedName: dictionaries-common-applications
---
# --question--
## --text--
Що буде результатом виконання даного коду?
```python
counts = { 'quincy' : 1 , 'mrugesh' : 42, 'beau': 100, '0': 10}
print(counts.get('kris', 0))
```
## --answers--
2
---
quincy
---
0
---
10
---
помилка
## --video-solution--
3

View File

@ -0,0 +1,44 @@
---
id: 5e7b9f080b6c005b0e76f063
title: Файли як послідовність
challengeType: 11
videoId: cIA0EokbaHE
bilibiliIds:
aid: 974380307
bvid: BV1p44y1m7br
cid: 376388846
dashedName: files-as-a-sequence
---
# --description--
Додаткові ресурси:
\- [Відео-урок](https://www.youtube.com/watch?v=il1j4wkte2E)
# --question--
## --text--
Що команда "continue" робить, якщо вона розташована всередині циклу?
## --answers--
Перехід до коду одразу після циклу.
---
Перехід до наступного рядка коду.
---
Перехід до наступної ітерації циклу.
---
Пропускає наступний блок коду.
## --video-solution--
3

View File

@ -0,0 +1,56 @@
---
id: 5e7b9f050b6c005b0e76f057
title: Робота з виразами
challengeType: 11
videoId: dKgUaIa5ATg
bilibiliIds:
aid: 334428894
bvid: BV1uw411R7gH
cid: 376318468
dashedName: intermediate-expressions
---
# --description--
Додаткові ресурси:
\- [Відео-урок 1](https://youtu.be/t_4DPwsaGDY)
\- [Відео-урок 2](https://youtu.be/wgkC8SxraAQ)
# --question--
## --text--
Що буде виведено в результаті виконання даного коду:
```python
width = 15
height = 12.0
print(height/3)
```
## --answers--
39
---
4
---
4.0
---
5.0
---
5
## --video-solution--
3

View File

@ -0,0 +1,53 @@
---
id: 5e7b9f070b6c005b0e76f061
title: Робота з рядками
challengeType: 11
videoId: KgT_fYLXnyk
bilibiliIds:
aid: 291983121
bvid: BV1Zf4y157yG
cid: 376394116
dashedName: intermediate-strings
---
# --description--
Додаткові ресурси:
\- [Відео-урок](https://www.youtube.com/watch?v=1bSqHot-KwE)
# --question--
## --text--
Яке значення матиме змінна i після виконання даного коду?
```python
word = "bananana"
i = word.find("na")
```
## --answers--
nanana
---
2
---
3
---
True
---
na
## --video-solution--
2

View File

@ -0,0 +1,40 @@
---
id: 5e6a54c358d3af90110a60a3
title: 'Вступ: Елементи мови Python'
challengeType: 11
videoId: aRY_xjL35v0
bilibiliIds:
aid: 674420725
bvid: BV1MU4y1H7Lj
cid: 376315889
dashedName: introduction-elements-of-python
---
# --question--
## --text--
Який результат буде виведено на екран після виконання коду нижче:
```python
x = 43
x = x + 1
print(x)
```
## --answers--
x
---
x + 1
---
44
## --video-solution--
3

View File

@ -0,0 +1,34 @@
---
id: 5e6a54af58d3af90110a60a1
title: 'Вступ: Архітектура обладнання'
challengeType: 11
videoId: H6qtjRTfSog
bilibiliIds:
aid: 206977572
bvid: BV1zh411z7Ak
cid: 376199262
dashedName: introduction-hardware-architecture
---
# --question--
## --text--
Де програми зберігаються під час роботи?
## --answers--
Жорсткий диск.
---
Пам'ять.
---
Центральний процесор.
## --video-solution--
2

View File

@ -0,0 +1,43 @@
---
id: 5e6a54ba58d3af90110a60a2
title: 'Вступ: Python як мова програмування'
challengeType: 11
videoId: 0QeGbZNS_bY
bilibiliIds:
aid: 674404602
bvid: BV1GU4y1H7vB
cid: 376315625
dashedName: introduction-python-as-a-language
---
# --question--
## --text--
Що буде виведено в результаті виконання цього коду:
```python
x = 6
print(x)
```
## --answers--
x
---
6
---
x = 6
---
(x)
## --video-solution--
2

View File

@ -0,0 +1,46 @@
---
id: 5e6a54a558d3af90110a60a0
title: 'Вступ: чому програмування?'
challengeType: 11
videoId: 3muQV-Im3Z0
bilibiliIds:
aid: 206882253
bvid: BV1Fh411z7tr
cid: 376314257
videoLocaleIds:
espanol: 3muQV-Im3Z0
italian: 3muQV-Im3Z0
portuguese: 3muQV-Im3Z0
dashedName: introduction-why-program
---
# --description--
Додаткові ресурси:
\- [Встановити Python для Windows](https://youtu.be/F7mtLrYzZP8)
\- [Встановити Python для MacOS](https://youtu.be/wfLnZP-4sZw)
# --question--
## --text--
Кому варто навчатися програмуванню?
## --answers--
Студентам коледжу.
---
Людям, які хочуть стати розробниками програмного забезпечення.
---
Всім.
## --video-solution--
3

View File

@ -0,0 +1,43 @@
---
id: 5e7b9f070b6c005b0e76f05d
title: 'Ітерації: визначені цикли'
challengeType: 11
videoId: hiRTRAqNlpE
bilibiliIds:
aid: 291987032
bvid: BV1ff4y157Q3
cid: 376385255
dashedName: iterations-definite-loops
---
# --question--
## --text--
Скільки рядків буде виведено в результаті виконання даного коду?:
```python
for i in [2,1,5]:
print(i)
```
## --answers--
1
---
2
---
3
---
5
## --video-solution--
3

View File

@ -0,0 +1,49 @@
---
id: 5e7b9f070b6c005b0e76f05e
title: 'Цикли: ускладненні вирази'
challengeType: 11
videoId: AelGAcoMXbI
bilibiliIds:
aid: 334491369
bvid: BV1tw411R7Mm
cid: 376530765
dashedName: iterations-loop-idioms
---
# --question--
## --text--
Нижче наведено код який знаходить найменше значення у списку. Один з рядків коду містить помилку яка не буде дозволяти коду працювати правильно. Який це рядок?:
```python
smallest = None
print("Before:", smallest)
for itervar in [3, 41, 12, 9, 74, 15]:
if smallest is None or itervar < smallest:
smallest = itervar
break
print("Loop:", itervar, smallest)
print("Smallest:", smallest)
```
## --answers--
3
---
4
---
6
---
7
## --video-solution--
3

View File

@ -0,0 +1,52 @@
---
id: 5e7b9f070b6c005b0e76f05f
title: 'Ітерації: Додаткові шаблони'
challengeType: 11
videoId: 9Wtqo6vha1M
bilibiliIds:
aid: 674492981
bvid: BV1hU4y1H7tF
cid: 376531204
dashedName: iterations-more-patterns
---
# --description--
Додаткові ресурси:
\- [Відео-урок](https://www.youtube.com/watch?v=kjxXZQw0uPg)
# --question--
## --text--
Який з варіантів еквівалентий значенню False?
## --answers--
```python
0 == 0.0
```
---
```python
0 is 0.0
```
---
```python
0 is not 0.0
```
---
```python
0 = 0.0
```
## --video-solution--
2

View File

@ -0,0 +1,55 @@
---
id: 5e7b9f060b6c005b0e76f05c
title: Цикли та ітерації
challengeType: 11
videoId: dLA-szNRnUY
bilibiliIds:
aid: 674492981
bvid: BV1hU4y1H7tF
cid: 376531204
dashedName: loops-and-iterations
---
# --question--
## --text--
Що буде виведено на екран після виконання наведеного нижче коду?:
```python
n = 0
while True:
if n == 3:
break
print(n)
n = n + 1
```
## --answers--
<pre>0
1
2</pre>
---
<pre>0
1
2
3</pre>
---
<pre>1
2</pre>
---
<pre>1
2
3</pre>
## --video-solution--
1

View File

@ -0,0 +1,52 @@
---
id: 5e7b9f170b6c005b0e76f08b
title: Розробка реляційної бази даних
challengeType: 11
videoId: MQ5z4bdF92U
bilibiliIds:
aid: 249380678
bvid: BV1vv411E76L
cid: 377531786
dashedName: make-a-relational-database
---
# --question--
## --text--
Яку SQL команду ви б використали для того, щоб отримати всіх користувачів з електронною адресою `quincy@freecodecamp.org`?
## --answers--
```sql
SELECT Users WHERE email="quincy@freecodecamp.org"
```
---
```sql
SELECT Users WHERE email IS "quincy@freecodecamp.org"
```
---
```sql
SELECT ALL Users WHERE email="quincy@freecodecamp.org"
```
---
```sql
SELECT * FROM Users WHERE email IS "quincy@freecodecamp.org"
```
---
```sql
SELECT * FROM Users WHERE email="quincy@freecodecamp.org"
```
## --video-solution--
5

View File

@ -0,0 +1,60 @@
---
id: 5e7b9f060b6c005b0e76f059
title: Додаткові умовні структури
challengeType: 11
videoId: HdL82tAZR20
bilibiliIds:
aid: 631930118
bvid: BV1Nb4y1r7z2
cid: 376337449
dashedName: more-conditional-structures
---
# --description--
Додаткові ресурси:
\- [Відео-урок 1](https://www.youtube.com/watch?v=crLerB4ZxMI)
\- [Відео-урок 2](https://www.youtube.com/watch?v=KJN3-7HH6yk)
# --question--
## --text--
Вам надано наведений нижче код:
```python
temp = "5 degrees"
cel = 0
fahr = float(temp)
cel = (fahr - 32.0) * 5.0 / 9.0
print(cel)
```
Який рядок/рядки мають бути всередині `try` блоку?
## --answers--
1
---
3
---
3,4
---
4
---
Жодна
## --video-solution--
3

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f0c0b6c005b0e76f072
title: Мережеві протоколи
challengeType: 11
videoId: c6vZGescaSc
bilibiliIds:
aid: 931950996
bvid: BV1cM4y1N7K6
cid: 376388317
dashedName: networking-protocol
---
# --question--
## --text--
Який тип HTTP запиту зазвичай використовується для доступу до веб-сайту?
## --answers--
POST
---
GET
---
WEB
---
ACCESS
## --video-solution--
2

View File

@ -0,0 +1,34 @@
---
id: 5e7b9f0c0b6c005b0e76f074
title: 'Мережа: Обробка тексту'
challengeType: 11
videoId: Pv_pJgVu8WI
bilibiliIds:
aid: 804442498
bvid: BV16y4y1j7WW
cid: 377329124
dashedName: networking-text-processing
---
# --question--
## --text--
Який тип кодування використовує більшість сайтів?
## --answers--
UTF-8
---
UTF-16
---
UTF-32
## --video-solution--
1

View File

@ -0,0 +1,41 @@
---
id: 5e7b9f0d0b6c005b0e76f075
title: 'Мережа: Використання urllib в Python'
challengeType: 11
videoId: 7lFM1T_CxBs
bilibiliIds:
aid: 546908270
bvid: BV1Xq4y1H7e6
cid: 377331524
dashedName: networking-using-urllib-in-python
---
# --question--
## --text--
Як буде виглядати результат роботи даного коду?:
```python
import urllib.request
fhand = urllib.request.urlopen('http://data.pr4e.org/romeo.txt')
for line in fhand:
print(line.decode().strip())
```
## --answers--
Лише зміст "romeo.txt".
---
Верхній колонтитул і зміст "romeo.txt".
---
Верхній та нижній колонтитули, зміст "romeo.txt".
## --video-solution--
1

View File

@ -0,0 +1,60 @@
---
id: 5e7b9f0d0b6c005b0e76f076
title: 'Мережа: Веб-скрапінг з Python'
challengeType: 11
videoId: Uyioq2q4cEg
bilibiliIds:
aid: 674382625
bvid: BV1oU4y1n7zQ
cid: 377331774
dashedName: networking-web-scraping-with-python
---
# --description--
Додаткові ресурси:
\- [Відео-урок: socket1](https://www.youtube.com/watch?v=dWLdI43W-g)
\- [Відео-урок: urllib](https://www.youtube.com/watch?v=8yis2DvbBkI)
\- [Відео-урок: urllinks](https://www.youtube.com/watch?v=g9flPDG9nnY)
# --question--
## --text--
Яку Python бібліотеку використовують для парсингу HTML документів та отримання даних з них?
## --answers--
socket
---
http
---
BeautifulSoup
---
PrettyBiscuit
---
WonderfulSalad
---
HttpParser
---
GrunkleStan
## --video-solution--
3

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f0c0b6c005b0e76f071
title: Робота з мережею у Python
challengeType: 11
videoId: _kJvneKVdNM
bilibiliIds:
aid: 419494612
bvid: BV1r341167jT
cid: 376385858
dashedName: networking-with-python
---
# --question--
## --text--
Яка бібліотека дає доступ до TCP сокетів?
## --answers--
tcp
---
socket
---
http
---
port
## --video-solution--
2

View File

@ -0,0 +1,54 @@
---
id: 5e7b9f0c0b6c005b0e76f073
title: 'Мережа: Напишіть веб-браузер'
challengeType: 11
videoId: zjyT9DaAjx4
bilibiliIds:
aid: 761908574
bvid: BV1j64y1x7wx
cid: 377319579
dashedName: networking-write-a-web-browser
---
# --question--
## --text--
Що створює даний код?:
```py
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('data.pr4e.org', 80))
cmd = 'GET http://data.pr4e.org/romeo.txt HTTP/1.0\r\n\r\n'.encode()
mysock.send(cmd)
while True:
data = mysock.recv(512)
if len(data) < 1:
break
print(data.decode(),end='')
mysock.close()
```
## --answers--
Простий веб-сервер.
---
Простий e-mail клієнт.
---
Простий список завдань.
---
Простий веб-браузер.
## --video-solution--
4

View File

@ -0,0 +1,71 @@
---
id: 5e7b9f170b6c005b0e76f087
title: Життєвий цикл об'єкта
challengeType: 11
videoId: p1r3h_AMMIM
bilibiliIds:
aid: 461998717
bvid: BV1JL411n7Hr
cid: 377529681
dashedName: object-lifecycle
---
# --question--
## --text--
Що виведе дана програма на екран?:
```python
class PartyAnimal:
x = 0
name = ''
def __init__(self, nam):
self.name = nam
print(self.name,'constructed')
def party(self):
self.x = self.x + 1
print(self.name,'party count',self.x)
q = PartyAnimal('Quincy')
m = PartyAnimal('Miya')
q.party()
m.party()
q.party()
```
## --answers--
<pre>
Quincy constructed
Miya constructed
Quincy party count 1
Miya party count 2
Quincy party count 3
</pre>
---
<pre>
Quincy constructed
Miya constructed
Quincy party count 1
Miya party count 1
Quincy party count 2
</pre>
---
<pre>
Quincy constructed
Quincy party count 1
Quincy party count 2
Miya constructed
Miya party count 1
</pre>
## --video-solution--
2

View File

@ -0,0 +1,62 @@
---
id: 5e7b9f160b6c005b0e76f086
title: 'Об''єкти: Приклад класу'
challengeType: 11
videoId: FiABKEuaSJ8
bilibiliIds:
aid: 589451777
bvid: BV1rq4y1X7TG
cid: 377523194
dashedName: objects-a-sample-class
---
# --question--
## --text--
Що виведе дана програма на екран?:
```python
class PartyAnimal:
x = 0
def party(self):
self.x = self.x + 2
print(self.x)
an = PartyAnimal()
an.party()
an.party()
```
## --answers--
<pre>
So far 1
So far 2
</pre>
---
<pre>
0
0
</pre>
---
<pre>
2
2
</pre>
---
<pre>
2
4
</pre>
## --video-solution--
4

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f170b6c005b0e76f088
title: 'Об''єкти: Успадкування'
challengeType: 11
videoId: FBL3alYrxRM
bilibiliIds:
aid: 631990691
bvid: BV1sb4y1r7GF
cid: 377529901
dashedName: objects-inheritance
---
# --question--
## --text--
Що таке успадкування в об'єктно-орієнтованому програмуванні?
## --answers--
Створення нового класу, при розширенні батьківського.
---
Побудований екземпляр класу.
---
Можливість створювати новий клас, як розширення вже існуючого класу.
---
В той час метод, який називається в той момент, коли клас використовується для побудови об'єкта.
## --video-solution--
3

View File

@ -0,0 +1,59 @@
---
id: 5e7b9f090b6c005b0e76f067
title: Словники Python
challengeType: 11
videoId: dnzvfimrRMg
bilibiliIds:
aid: 631893305
bvid: BV19b4y167kj
cid: 376386176
dashedName: python-dictionaries
---
# --question--
## --text--
Чому даний словник буде еквівалентним після виконання наведеного нижче коду?:
```python
dict = {"Fri": 20, "Thu": 6, "Sat": 1}
dict["Thu"] = 13
dict["Sat"] = 2
dict["Sun"] = 9
```
## --answers--
```python
{'Fri': 20, 'Thu': 6, 'Sat': 1}
```
---
```python
{'Fri': 20, 'Thu': 6, 'Sat': 1, 'Thu': 13, 'Sat': 2, 'Sun': 9}
```
---
```python
{'Sun': 9}
```
---
```python
{'Thu': 13, 'Sat': 2, 'Sun': 9}
```
---
```python
{'Fri': 20, 'Thu': 13, 'Sat': 2, 'Sun': 9}
```
## --video-solution--
5

View File

@ -0,0 +1,42 @@
---
id: 5e7b9f060b6c005b0e76f05a
title: Функції в Python
challengeType: 11
videoId: 3JGF-n3tDPU
bilibiliIds:
aid: 631881917
bvid: BV1Xb4y167P4
cid: 376337920
dashedName: python-functions
---
# --question--
## --text--
Яке призначення має ключове слово "def" в Python?
## --answers--
Це сленг, що означає "Даний код дуже крутий."
---
Воно вказує на початок функції.
---
Воно вказує на те, що наступна вкладена секція коду буде зберігатися для майбутнього використання.
---
Воно вказує початок функції, і те що наступна вкладена секція коду буде зберігатися для майбутнього використання.
---
Жоден з перерахованих вище.
## --video-solution--
4

View File

@ -0,0 +1,43 @@
---
id: 5e7b9f080b6c005b0e76f064
title: Списки в Python
challengeType: 11
videoId: Y0cvfDpYC_c
bilibiliIds:
aid: 249460305
bvid: BV1Dv411E7Uj
cid: 376532993
dashedName: python-lists
---
# --question--
## --text--
Яким буде значення змінної x після виконання даного коду:
```python
fruit = "banana"
x = fruit[1]
```
## --answers--
banana
---
a
---
b
---
True
## --video-solution--
2

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f160b6c005b0e76f085
title: Об'єкти в Python
challengeType: 11
videoId: uJxGeTYy0us
bilibiliIds:
aid: 889496260
bvid: BV1ZP4y1s7G6
cid: 377522762
dashedName: python-objects
---
# --question--
## --text--
Що з приведених тверджень не є правильним для об'єктів у Python?
## --answers--
Об'єкти створюються та використовуються.
---
Об'єкти - це біти коду та дані.
---
Об'єкти приховують деталі.
---
Об'єкти — це один з п"яти стандартних типів даних.
## --video-solution--
4

View File

@ -0,0 +1,42 @@
---
id: 5e7b9f080b6c005b0e76f062
title: Зчитування файлів
challengeType: 11
videoId: Fo1tW09KIwo
bilibiliIds:
aid: 334439927
bvid: BV1pw411R7UK
cid: 376532076
dashedName: reading-files
---
# --question--
## --text--
Що використовується для ініціалізації переходу на новий рядок в типі даних string?
## --answers--
\\n
---
{new_line}
---
{n}
---
/n
---
/new
## --video-solution--
1

View File

@ -0,0 +1,45 @@
---
id: 5e7b9f0b0b6c005b0e76f06f
title: 'Регулярні вирази: відповідність і отримання даних'
challengeType: 11
videoId: LaCZnTbQGkE
bilibiliIds:
aid: 975629041
bvid: BV1i44y1b7hE
cid: 414167130
dashedName: regular-expressions-matching-and-extracting-data
---
# --question--
## --text--
Що виведе дана програма на екран?:
```python
import re
s = 'A message from csev@umich.edu to cwen@iupui.edu about meeting @2PM'
lst = re.findall('\\S+@\\S+', s)
print(lst)
```
## --answers--
['csev@umich.edu', 'cwen@iupui.edu']
---
['csev@umich.edu']
---
['umich.edu', 'iupui.edu']
---
['csev@', 'cwen@']
## --video-solution--
1

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f0b0b6c005b0e76f070
title: 'Регулярні вирази: Практичні програми'
challengeType: 11
videoId: xCjFU9G6x48
bilibiliIds:
aid: 546924659
bvid: BV1mq4y1H7rZ
cid: 376386493
dashedName: regular-expressions-practical-applications
---
# --question--
## --text--
Який з приведених варіантів можна використати для пошуку "$" у регулярному виразі?
## --answers--
$
---
\\dollar\\
---
\\$
---
!$
## --video-solution--
3

View File

@ -0,0 +1,42 @@
---
id: 5e7b9f0b0b6c005b0e76f06e
title: Регулярні вирази
challengeType: 11
videoId: Yud_COr6pZo
bilibiliIds:
aid: 759422542
bvid: BV1W64y167YD
cid: 376387549
dashedName: regular-expressions
---
# --question--
## --text--
Який регулярний вираз підходить тільки для опису пробілу?
## --answers--
\\S
---
\\s
---
.
---
\_
---
\\.
## --video-solution--
2

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f180b6c005b0e76f08c
title: Проектування реляційних баз даних
challengeType: 11
videoId: AqdfbrpkbHk
bilibiliIds:
aid: 504388066
bvid: BV1Qg411j742
cid: 377532216
dashedName: relational-database-design
---
# --question--
## --text--
Якою є оптимальна кількість зберігань для даних в типі string в базі даних?
## --answers--
0
---
1
---
2
---
3
## --video-solution--
2

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f170b6c005b0e76f08a
title: Реляційні бази даних і SQLite
challengeType: 11
videoId: QlNod5-kFpA
bilibiliIds:
aid: 249449958
bvid: BV12v411E74H
cid: 377530805
dashedName: relational-databases-and-sqlite
---
# --question--
## --text--
Що НЕ є первинною структурою даних в базі даних?
## --answers--
index
---
table
---
row
---
column
## --video-solution--
1

View File

@ -0,0 +1,34 @@
---
id: 5e7b9f180b6c005b0e76f08f
title: 'Реляційні бази даних: Операції приєднання'
challengeType: 11
videoId: jvDw3D9GKac
bilibiliIds:
aid: 804461215
bvid: BV1Ry4y1j7tv
cid: 377542880
dashedName: relational-databases-join-operation
---
# --question--
## --text--
Під час використання JOIN у SQL-операторі, що робить ON?
## --answers--
Воно вказує з якою таблицею виконувати JOIN.
---
Воно визначає поля для JOIN.
---
Воно вказує на те, як саме таблиці мають бути об'єднані.
## --video-solution--
3

View File

@ -0,0 +1,52 @@
---
id: 5e7b9f190b6c005b0e76f090
title: 'Реляційні бази даних: відношення типу багато-багато'
challengeType: 11
videoId: z-SBYcvEQOc
bilibiliIds:
aid: 291965127
bvid: BV1Af4y1L7BK
cid: 377543409
dashedName: relational-databases-many-to-many-relationships
---
# --description--
Додаткові ресурси:
\- [Відео-урок: email](https://www.youtube.com/watch?v=uQ3Qv1z_Vao)
\- [Відео-урок: roster](https://www.youtube.com/watch?v=qEkUEAz8j3o)
\- [Відео-урок: tracks](https://www.youtube.com/watch?v=I-E7avcPeSE)
\- [Відео-урок: twfriends](https://www.youtube.com/watch?v=RZRAoBFIH6A)
\- [Відео-урок: twspider](https://www.youtube.com/watch?v=xBaJddvJL4A)
# --question--
## --text--
Що є прикладом зв'язку типу багато-багато?
## --answers--
учитель -> учень
---
клієнт -> замовлення
---
книга -> сторінка
---
місто -> країна
## --video-solution--
1

View File

@ -0,0 +1,34 @@
---
id: 5e7b9f180b6c005b0e76f08e
title: 'Реляційні бази даних: побудова відносин'
challengeType: 11
videoId: CSbqczsHVnc
bilibiliIds:
aid: 376996473
bvid: BV1jo4y1S7VY
cid: 377532966
dashedName: relational-databases-relationship-building
---
# --question--
## --text--
Що робить команда INSERT у SQL?
## --answers--
Вона створює новий рядок перераховуючи поля, які ми хочемо додати, і значення, які ми хочемо додати до нового рядка.
---
Вона створює новий стовпчик перераховуючи рядки, які ми хочемо додати, і значення, які ми хочемо додати до нового стовпчика.
---
Вона створює нову таблицю перераховуючи рядки і поля, які ми хочемо додати, і значення, які ми хочемо додати до нової таблиці.
## --video-solution--
1

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f180b6c005b0e76f08d
title: Представлення відносин у реляційній базі даних
challengeType: 11
videoId: '-orenCNdC2Q'
bilibiliIds:
aid: 931953070
bvid: BV1FM4y1N7hc
cid: 377532529
dashedName: representing-relationships-in-a-relational-database
---
# --question--
## --text--
Що таке foreign key?
## --answers--
Ключ, який не повинен бути там.
---
Ключ, який використовує нелатинські символи.
---
Число, яке вказує на первинний ключ від пов'язаного рядка в іншій таблиці.
---
Ключ, який "реальний світ" може використовувати для пошуку необхідного рядка.
## --video-solution--
3

View File

@ -0,0 +1,51 @@
---
id: 5e7b9f090b6c005b0e76f066
title: Рядки та списки
challengeType: 11
videoId: lxcFa7ldCi0
bilibiliIds:
aid: 804401443
bvid: BV1By4y1j7F9
cid: 376385517
dashedName: strings-and-lists
---
# --description--
Додаткові ресурси:
\- [Відео-урок](https://www.youtube.com/watch?v=-9TfJF2dwHI)
# --question--
## --text--
Чому дорівнює n в цьому коді?
```python
words = 'His e-mail is q-lar@freecodecamp.org'
pieces = words.split()
parts = pieces[3].split('-')
n = parts[1]
```
## --answers--
mail
---
q
---
lar
---
`lar@freecodecamp.org`
## --video-solution--
4

View File

@ -0,0 +1,63 @@
---
id: 5e7b9f070b6c005b0e76f060
title: Рядки в Python
challengeType: 11
videoId: LYZj207fKpQ
bilibiliIds:
aid: 504434218
bvid: BV1Lg41177s8
cid: 376531802
dashedName: strings-in-python
---
# --question--
## --text--
Що буде виведено на екран після виконання приведенного нижче коду?:
```python
for n in "banana":
print(n)
```
## --answers--
<pre>
n
n
</pre>
---
<pre>
0
1
</pre>
---
<pre>
0
1
2
3
4
5
</pre>
---
<pre>
b
a
n
a
n
a
</pre>
## --video-solution--
4

View File

@ -0,0 +1,63 @@
---
id: 5e7b9f0a0b6c005b0e76f06c
title: Колекція кортежів
challengeType: 11
videoId: 3Lxpladfh2k
bilibiliIds:
aid: 334468209
bvid: BV1aw411R77G
cid: 376533308
dashedName: the-tuples-collection
---
# --question--
## --text--
Що буде виведено на екран після виконання приведенного нижче коду?:
```python
d = dict()
d['quincy'] = 1
d['beau'] = 5
d['kris'] = 9
for (k,i) in d.items():
print(k, i)
```
## --answers--
<pre>
k i
k i
k i
</pre>
---
<pre>
quincy 0
beau 1
kris 2
</pre>
---
<pre>
quincy 1
beau 5
kris 9
</pre>
---
<pre>
1 quincy
5 beau
9 kris
</pre>
## --video-solution--
3

View File

@ -0,0 +1,42 @@
---
id: 5e7b9f0e0b6c005b0e76f07a
title: Використання Web Services
challengeType: 11
videoId: oNl1OVDPGKE
bilibiliIds:
aid: 759406136
bvid: BV1b64y16746
cid: 377332189
dashedName: using-web-services
---
# --question--
## --text--
Які два найпоширеніші способи відправлення даних через Інтернет?
## --answers--
JSON і TXT
---
JSON і XML
---
XML і TXT
---
XML і PHP
---
PHP і TXT
## --video-solution--
2

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f050b6c005b0e76f056
title: 'Змінні та вирази'
challengeType: 11
videoId: nELR-uyyrok
bilibiliIds:
aid: 419396811
bvid: BV1iV411p7Mn
cid: 376318116
dashedName: variables-expressions-and-statements
---
# --question--
## --text--
Який символ використовується під час визначення(змінної)?
## --answers--
~
---
&
---
=
---
\|
## --video-solution--
3

View File

@ -0,0 +1,42 @@
---
id: 5e7b9f690b6c005b0e76f095
title: Візуалізація даних за допомогою Python
challengeType: 11
videoId: e3lydkH0prw
bilibiliIds:
aid: 291996462
bvid: BV15f4y1L7jH
cid: 377544192
dashedName: visualizing-data-with-python
---
# --question--
## --text--
Більшість даних має бути \_\_\_\_\__ перед використанням.
## --answers--
конвертована в формат JSON
---
зображена
---
очищена
---
записана до пам'яті
---
перетворена в пісню
## --video-solution--
3

View File

@ -0,0 +1,50 @@
---
id: 5e7b9f150b6c005b0e76f080
title: 'Веб-сервіси: Обмеження частоти API і безпека'
challengeType: 11
videoId: pI-g0lI8ngs
bilibiliIds:
aid: 249456172
bvid: BV1Sv411E7qa
cid: 377336269
dashedName: web-services-api-rate-limiting-and-security
---
# --description--
Додаткові ресурси:
\- [Відео-урок: getJSON](https://www.youtube.com/watch?v=TJGJN0T8tak)
\- [Відео-урок: JSON](https://www.youtube.com/watch?v=vTmw5RtfGMY)
\- [Відео-урок: Twitter](https://www.youtube.com/watch?v=2c7YwhvpCro)
\- [Відео-урок: XML](https://www.youtube.com/watch?v=AopYOlDa-vY)
# --question--
## --text--
При створенні запиту з Twitter API яку інформацію необхідно завжди надсилати з запитом?
## --answers--
Twitter username
---
date range
---
search term
---
key
## --video-solution--
4

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f150b6c005b0e76f07f
title: 'Веб-сервіси: API'
challengeType: 11
videoId: oUNn1psfBJg
bilibiliIds:
aid: 589451017
bvid: BV1zq4y1X7A9
cid: 377336011
dashedName: web-services-apis
---
# --question--
## --text--
Що означає API?
## --answers--
Application Portable Intelligence
---
Associate Programming International
---
Application Program Interface
---
Action Portable Interface
## --video-solution--
3

View File

@ -0,0 +1,60 @@
---
id: 5e7b9f140b6c005b0e76f07d
title: 'Веб-сервіси: JSON'
challengeType: 11
videoId: ZJE-U56BppM
bilibiliIds:
aid: 419491911
bvid: BV1r3411672w
cid: 377332928
dashedName: web-services-json
---
# --question--
## --text--
Що буде виведено на екран після виконання приведеного нижче коду?:
```python
import json
data = '''
[
{ "id" : "001",
"x" : "2",
"name" : "Quincy"
} ,
{ "id" : "009",
"x" : "7",
"name" : "Mrugesh"
}
]
'''
info = json.loads(data)
print(info[1]['name'])
```
## --answers--
Quincy
---
Mrugesh
---
001
---
009
---
[Error]
## --video-solution--
2

View File

@ -0,0 +1,34 @@
---
id: 5e7b9f140b6c005b0e76f07e
title: 'Веб-сервіси: Сервісно-орієнтовний підхід'
challengeType: 11
videoId: muerlsCHExI
bilibiliIds:
aid: 846899335
bvid: BV1E54y1J7oz
cid: 377333277
dashedName: web-services-service-oriented-approach
---
# --question--
## --text--
Згідно сервісно-орієнтовного підходу до розробки web-додатків, де розташовані дані?
## --answers--
Розповсюджені між багатьма комп'ютерними системами, які поєднані між собою через інтернет або внутрішню мережу.
---
В межах різних служб на головному веб-сервері.
---
На окремому сервері бази даних.
## --video-solution--
1

View File

@ -0,0 +1,34 @@
---
id: 5e7b9f0e0b6c005b0e76f07c
title: 'Веб-сервіси: Схема XML'
challengeType: 11
videoId: yWU9kTxW-nc
bilibiliIds:
aid: 631951466
bvid: BV1Vb4y1r7m7
cid: 377332603
dashedName: web-services-xml-schema
---
# --question--
## --text--
Що таке XSD?
## --answers--
Специфікація схеми W3C для XML.
---
Стандартна JSON схема з MOZ.
---
Розширюваний симуляційний драйвер
## --video-solution--
1

View File

@ -0,0 +1,47 @@
---
id: 5e7b9f0e0b6c005b0e76f07b
title: 'Веб-сервіси: XML'
challengeType: 11
videoId: _pZ0srbg7So
bilibiliIds:
aid: 761920032
bvid: BV1n64y1x7KW
cid: 377332379
dashedName: web-services-xml
---
# --question--
## --text--
Що не так з наступним XML?:
```xml
<person>
<name>Chuck</name>
<phone type="intl">
+1 734 303 4456
<email hide="yes" />
</person>
```
## --answers--
Тег закриття відсутній в email.
---
Пробіли призведуть до недійсності XML.
---
Тег закриття відсутній в phone.
---
Простий текст повинен бути закодований за допомогою UTF-8.
## --video-solution--
3

View File

@ -0,0 +1,38 @@
---
id: 5e7b9f090b6c005b0e76f065
title: Робота зі списками
challengeType: 11
videoId: lCnHfTHkhbE
bilibiliIds:
aid: 376965958
bvid: BV1No4y1S7oi
cid: 376387989
dashedName: working-with-lists
---
# --question--
## --text--
Який метод використовується, щоб додати елемент в кінці списку?
## --answers--
insert
---
push
---
append
---
new
## --video-solution--
3

View File

@ -0,0 +1,105 @@
---
id: 5e44412c903586ffb414c94c
title: Арифметичне форматування
challengeType: 10
forumTopicId: 462359
dashedName: arithmetic-formatter
---
# --description--
Ви маєте [виконати цей проєкт за допомогою нашого стартового коду Replit](https://replit.com/github/freeCodeCamp/boilerplate-arithmetic-formatter).
Ми й досі в процесі розробки інтерактивної складової навчального курсу Python. Наразі можете ознайомитись із наступними відео на YouTube каналі freeCodeCamp.org. У них ви знайдете все необхідне для завершення цього проєкту:
- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 годин)
- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 години)
# --instructions--
У початковій школі школярів вчать вирішувати арифметичні приклади вертикально, бо це легше. Наприклад, "235 + 52" перетворюється на:
```py
235
+ 52
-----
```
Створіть функцію, яка отримує список рядків з арифметичними завданнями та вводить їх послідовно у вертикальному вигляді. Функція повинна при необхідності брати другий аргумент. Коли другий аргумент встановлено на `True`, відповіді повинні відображатися.
## Приклад
Виклик функції:
```py
arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])
```
Виведення:
```py
32 3801 45 123
+ 698 - 2 + 43 + 49
----- ------ ---- -----
```
Виклик функції:
```py
arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True)
```
Виведення:
```py
32 1 9999 523
+ 8 - 3801 + 9999 - 49
---- ------ ------ -----
40 -3800 19998 474
```
## Правила
Функція повернеться до правильного перетворення якщо наявні завдання відформатовані належним чином, в протилежному випадку, це буде **return** **string**, що описує помилку, яка має велике значення для користувача.
- Ситуації, які приводять до помилки:
- Якщо ** забагато завдань ** з'являються для функції. Ліміт **five**, що-небудь ще повернеться:`Error: Забагато завдань.`
- Відповідні оператори, які приймають функцію **addition** and **subtraction**. Множення і ділення породжує помилку. Інші оператори, які не згадані у цій точці, тестовані не будуть. Отримана помилка буде:`Error: Оператор повинен бути '+' або '-'.`
- Кожне число (операнд) повинен містити лише цифри. В іншому випадку, функція буде така:`Error: Числа повинні містити тільки цифри.`
- Кожен операнд (також номер один з кожної сторони оператора) максимум може мати по чотири цифри по ширині. В іншому випадку, помилковий рядок видасть наступне:`Error: Числа не можуть бути більше чотирьох цифр.`
- Якщо користувач подбав про правильний формат проблем, то перетворення буде слідувати наступним правилам:
- Повинен бути лише один пробіл між оператором і найдовшим із двох операндів, оператор буде на тому ж рядку, що й другий операнд, обоє операндів будуть в однаковому порядку, як і надано (перший буде зверху, а другий - знизу).
- Числа повинні бути вирівняні справа.
- Має бути чотири пробіли між кожним завданням.
- У нижній частині кожного завдання мають бути тире. Тире повинні йти по всій довжині кожного завдання індивідуально. (Приклад вище показує, як це повинно виглядати.)
## Розробка
Напишіть свій код на `arithmetic_arranger.py`. Для розробки, ви можете використати `main.py`, щоб перевірити вашу функцію `arithmetic_arranger()`. Натисніть кнопку "run" і `main.py` запуститься.
## Тестування
Розділи з тестами для цього проєкту знаходяться в `test_module.py`. Ми запускаємо тести з `test_module.py` в `main.py` для вашої зручності. Тести запустяться автоматично кожного разу, коли ви натиснете клавішу "run". Як альтернатива, ви можете запустити тести, ввівши у консолях `pytest`.
## Надіслати
Скопіюйте URL-адресу вашого проєкту та відправте його.
# --hints--
Функція повинна правильно відформатувати арифметичні проблеми та пройти тестування.
```js
```
# --solutions--
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```

View File

@ -0,0 +1,108 @@
---
id: 5e44413e903586ffb414c94e
title: Додаток для ведення бюджету
challengeType: 10
forumTopicId: 462361
dashedName: budget-app
---
# --description--
Ви маєте [виконати цей проєкт за допомогою нашого стартового коду Replit](https://replit.com/github/freeCodeCamp/boilerplate-budget-app).
Ми й досі в процесі розробки інтерактивної складової навчального курсу Python. Наразі можете ознайомитись із наступними відео на YouTube каналі freeCodeCamp.org. У них ви знайдете все необхідне для завершення цього проєкту:
- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 годин)
- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 години)
# --instructions--
Зробіть клас `Category` в `budget.py`. Реклама повинна використовувати об'єкти на основі різних бюджетних категорій, а саме *їжа*, *одяг*, та *розваги*. Коли об'єкти створені, вони передаються в назву категорії. Клас повинен мати приклад змінної, що називається `ledger`, яка є за списком. Клас також повинен містити наступні методи:
- Метод `deposit`, що приймає суму та опис. Якщо жодного опису не дано, то воно автоматично переходить до порожнього рядка. Метод повинен додати об'єкт до списку реєстрацій у вигляді `{"amount": amount, "description": description}`.
- Метод `withdraw`, який схожий до методу `deposit`, але кількість, яку він передає, повинна зберігатися у реєстраційному списку як від'ємне число. Якщо недостатньо коштів, до реєстраційного списку додавати нічого не потрібно. Цей метод повинен переходити у `True`, якщо виведення займе місце, і в іншому випадку `False`.
- Метод `get_balance`, що повертає поточний баланс категорії бюджету на основі депозитів і зняття.
- Метод `transfer`, що приймає суму або іншу бюджетну категорію в якості аргументів. Метод повинен додати виведення суми та опис "Перенести до [Категорії Призначення Бюджету]". Метод повинен додати депозит до іншої бюджетної категорії, що містить суму та опис "Передача з [Категорії Джерела Бюджету]". Якщо недостатньо грошей, до реєстраційного списку додавати нічого не потрібно. Цей метод повинен переходити в `True`, якщо виведення займе місце, і в іншому випадку `False`.
- Метод `check_funds`, що приймає суму в якості аргументу. Це переходить у `False`, якщо сума більша ніж баланс бюджетної категорії і повертає `True` в іншому випадку. Цей метод слід використовувати як метод `withdraw`, так і метод `transfer`.
Якщо бюджетний об'єкт надрукований, він повинен відображатися:
- Рядок заголовка із 30 символів, де є назва категорії знаходиться у рядку символів `*`.
- Список елементів у реєстраційній базі. Кожен рядок повинен показувати опис і суму. Перші 23 символи опису повинні відображатися, а далі вже сума. Суму слід вирівняти з правого боку, помістити два десяткові знаки, та відобразити максимум 7 символів.
- Рядок, що показує загальну категорію.
Ось приклад результату:
```bash
*************Food*************
initial deposit 1000.00
groceries -10.15
restaurant and more foo -15.89
Transfer to Clothing -50.00
Total: 923.96
```
Окрім класу `Category`, створіть функцію (за межами класу) під назвою `create_spend_chart`, яка приймає список категорій в якості аргументу. Вона повинна повертати рядок зі стовпчиковою діаграмою.
Графік повинен показувати кількість відсотків, витрачених в кожній категорії, що передається до функції. Відсоток витраченого повинен бути розрахований лише за рахунок зняття, але не з депозитів. Внизу лівої частини графіку повинні бути мітки 0 - 100. "Стовпчики" у стовпчиковій діаграмі повинні бути створені із символу "0". Висота кожного стовпчика повинна бути округлена до найближчого 10. Горизонтальна лінія під стовпчиками повинна бути на двох пробілах біля кінцевої панелі. Кожна назва категорії повинна бути написана вертикально нижче стовпчика. Вгорі повинен бути заголовок, де вказано "Відсоток, витрачений категорією".
Ця функція буде тестуватися з чотирма категоріями.
Подивіться на приклад виходу нижче дуже близько і переконайтеся, що інтервал результатів повністю відповідає прикладу.
```bash
Percentage spent by category
100|
90|
80|
70|
60| o
50| o
40| o
30| o
20| o o
10| o o o
0| o o o
----------
F C A
o l u
o o t
d t o
h
i
n
g
```
Розділи з тестами для цього проєкту є в `test_module.py`.
## Розробка
Запишіть свій код в `budget.py`. Для розробки, ви можете використати `main.py` для перевірки вашого класу `Category`. Натисніть клавішу "run" і `main.py` запуститься.
## Тестування
Ми імпортували тести з `test_module.py` до `main.py` для вашої зручності. Тести запустяться автоматично кожен раз, коли ви натиснете клавішу "run".
## Надсилання
Скопіюйте URL-адресу вашого проєкту і відправте його до freeCodeCamp.
# --hints--
Ви повинні створити клас "Категорія" і пройти всі тести.
```js
```
# --solutions--
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```

View File

@ -0,0 +1,118 @@
---
id: 5e444147903586ffb414c94f
title: Калькулятор площі багатокутника
challengeType: 10
forumTopicId: 462363
dashedName: polygon-area-calculator
---
# --description--
Ви маєте [виконати цей проєкт за допомогою нашого стартового коду Replit](https://replit.com/github/freeCodeCamp/boilerplate-polygon-area-calculator).
Ми й досі в процесі розробки інтерактивної складової навчального курсу Python. Наразі можете ознайомитись із наступними відео на YouTube каналі freeCodeCamp.org. У них ви знайдете все необхідне для завершення цього проєкту:
- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 годин)
- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 години)
# --instructions--
У цьому проєкті ви будете використовувати програмування, що зорієнтоване на проєкті для створення класів "Rectangle" і "Square". Клас "Square" повинен бути підкласом до "Rectangle" і наслідувати його методи та атрибути.
## Клас "Rectangle"
Зробіть початковими атрибутами `width` та `height`, коли ви створюєте об'єкт Rectangle. Клас також повинен містити наступні методи:
- `set_width`
- `set_height`
- `get_area`: повертає площину (`width * height`)
- `get_perimeter`: повертає периметр (`2 * width + 2 * height`)
- `get_diagonal`: повертає діагональ (`(width ** 2 + height ** 2) ** .5`)
- `get_picture`: повертає рядок, який представлений формою з "\*" ліній. Кількість рядків має бути рівною висоті, а кількість "\*" у кожному рядку має бути рівною ширині. Наприкінці кожного рядка має бути новий рядок (`\n`). Якщо ширина або висота більші за 50, то рядок повинен повернути: "Завеликий для зображення.".
- `get_amount_inside`: бере іншу форму (квадрат чи трикутник) як аргумент. Повертає кількість разів, скільки потрібна форма може поміститися у задану форму (без обертання). Наприклад, прямокутник з шириною 4 і висотою 8 може вмістити два квадрати зі сторонами 4.
Додатково, якщо екземпляр Rectangle представлений як рядок, він має виглядати так: `Rectangle(width=5, height=10)`
## Клас Square
Клас Square має бути підкласом Rectangle. Коли ви створюєте об'єкт Square, зберігається довжина однієї сторони. Метод `__init__` має зберігати довжину сторони в атрибутах `width` та `height` з класу Rectangle.
Клас Square повинен мати доступ до методів класу Rectange, але також повинен містити метод `set_side`. Якщо екземпляр Square представлений у вигляді рядка, то це має виглядати так: `Square(side=9)`
Додатково, методи `set_width` та `set_height` на класі Square повинні встановити як ширину, так і висоту.
## Приклад використання
```py
rect = shape_calculator.Rectangle(10, 5)
print(rect.get_area())
rect.set_height(3)
print(rect.get_perimeter())
print(rect)
print(rect.get_picture())
sq = shape_calculator.Square(9)
print(sq.get_area())
sq.set_side(4)
print(sq.get_diagonal())
print(sq)
print(sq.get_picture())
rect.set_height(8)
rect.set_width(16)
print(rect.get_amount_inside(sq))
```
Цей код має повернути:
```bash
50
26
Rectangle(width=10, height=3)
**********
**********
**********
81
5.656854249492381
Square(side=4)
****
****
****
****
8
```
Розділи з тестами для цього проєкту є в `test_module.py`.
## Розробка
Запишіть свій код в `shape_calculator.py`. Для розробки, ви можете використати `main.py`, щоб перевірити вашу функцію `shape_calculator()`. Натисніть клавішу "run" і `main.py` запуститься.
## Тестування
Ми імпортували тести з `test_module.py` до `main.py` для вашої зручності. Тести запустяться автоматично кожен раз, коли ви натиснете клавішу "run".
## Надсилання
Скопіюйте URL-адресу вашого проєкту і відправте його до freeCodeCamp.
# --hints--
Це має створити класи "Rectangle", "Square" та пройти тестування.
```js
```
# --solutions--
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```

View File

@ -0,0 +1,92 @@
---
id: 5e44414f903586ffb414c950
title: Калькулятор вірогідностей
challengeType: 10
forumTopicId: 462364
dashedName: probability-calculator
---
# --description--
Ви маєте [виконати цей проєкт за допомогою нашого стартового коду Replit](https://replit.com/github/freeCodeCamp/boilerplate-probability-calculator).
Ми й досі в процесі розробки інтерактивної складової навчального курсу Python. Наразі можете ознайомитись із наступними відео на YouTube каналі freeCodeCamp.org. У них ви знайдете все необхідне для завершення цього проєкту:
- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 годин)
- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 години)
# --instructions--
Уявімо, що у капелюсі лежить 5 синіх кульок, 4 червоні та 2 зелені кульки. Яка ймовірність того, що з 4 кульок, які ви витягнете, принаймні 1 буде червоною та 2 зеленими? І хоча можливо прорахувати вірогідність за допомогою вищої математики, легше буде написати програму для виконання великої кількості експериментів для оцінки приблизної вірогідності.
Для цього проєкту, напишіть програму, яка визначатиме вірогідність випадкового діставання певних кульок із капелюха.
Спершу створіть клас `Hat` в `prob_calculator.py`. Клас має взяти змінну кількість аргументів, яка вточнюватиме кількість кульок усіх кольорів із капелюха. Наприклад, клас об'єкту можна створити такими способами:
```py
hat1 = Hat(yellow=3, blue=2, green=6)
hat2 = Hat(red=5, orange=4)
hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9)
```
Капелюх завжди створюється з принаймні однією кулькою. Аргументи, які передаються в об'єкт капелюха, під час створення мають конвертуватися в приклад змінної `contents`. `contents` має бути списком рядків з елементами для кожної кульки у капелюсі. Кожний елемент списку має бути назвою кольору, яка позначатиме кожну кульку певного кольору. Наприклад, якщо ваш капелюх `{"red": 2, "blue": 1}`, `contents` має бути `["red", "red", "blue"]`.
Клас `Hat` повинен мати метод `draw`, який приймає аргумент з позначенням кількості кульок, які можна витягти з капелюха. Цей метод має випадково витягати кульки з `contents` та повертати ці кульки списком рядків. Кульки не повинні повертатися до капелюха після того, як їх витягли (як в експерименті з урною без заміни). Якщо кількість кульок, яку треба витягти, перевищує доступну кількість, поверніть усі кульки.
Потім створіть функцію `experiment` в `prob_calculator.py` (не в класі `Hat`). Ця функція повинна приймати наступні аргументи:
- `hat`: об'єкт капелюха з кульками, який має скопійований у функцію.
- `expected_balls`: об'єкт, який вказує на точну кількість кульок, котру треба вийняти з капелюха для експерименту. Наприклад, щоб визначити вірогідність того, що ви витягнете 2 сині кульки та 1 червону кульку з капелюха, встановіть `expected_balls` на `{"blue":2, "red":1}`.
- `num_balls_drawn`: кількість кульок, які треба витягти з капелюха в кожному експерименті.
- `num_experiments`: кількість експериментів, які треба провести. (Чим більше експериментів було проведено, тим точнішою буде приблизна вірогідність.)
`experiment` функція має повертати вірогідність.
Допустимо, ви хочете визначити вірогідність витягти щонайменше 2 червоні кульки та 1 зелену кульку, коли ви витягаєте 5 кульок з капелюха, де лежить 6 чорних, 4 червоні та 3 зелені кульки. Для цього нам треба виконати `N` експериментів, порахуйте скільки разів `M` ми можемо витягти принаймні 2 червоні кульки та 1 зелену кульку. Вирахуйте вірогідність як `M/N`. Кожен експеримент складається з: капелюха (з певними кульками), витягування певної кількості кульок та перевірка, чи ми витягли необхідні кульки.
Ось так ви можете викликати функцію `experiment` з 2000 експериментів (з прикладу зверху):
```py
hat = Hat(black=6, red=4, green=3)
probability = experiment(hat=hat,
expected_balls={"red":2,"green":1},
num_balls_drawn=5,
num_experiments=2000)
```
Оскільки все базується на випадкових витяганнях, то вірогідність буде злегка відрізнятися з кожним новим запуском коду.
*Підказка: спробуйте використати вже імпортовані модулі зверху `prob_calculator.py`. Не ініціалізуйте випадкове початкове значення в `prob_calculator.py`.*
## Розробка
Запишіть свій код в `prob_calculator.py`. Для розробки, ви можете використати `main.py` для перевірки вашого коду. Натисніть кнопку "run" і `main.py` запуститься.
Boilerplate містить команду `import` для `copy` та `random` модулів. Спробуйте використати їх у своєму проєкті.
## Тестування
Розділи з тестами для цього проєкту знаходяться в `test_module.py`. Ми імпортували тести з `test_module.py` до `main.py` для вашої зручності. Тести запустяться автоматично кожного разу, коли ви натиснете клавішу "run".
## Надсилання
Скопіюйте URL-адресу вашого проєкту і відправте його до freeCodeCamp.
# --hints--
Програма повинна правильно вираховувати ймовірності та пройти тестування.
```js
```
# --solutions--
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```

View File

@ -0,0 +1,85 @@
---
id: 5e444136903586ffb414c94d
title: Калькулятор часу
challengeType: 10
forumTopicId: 462360
dashedName: time-calculator
---
# --description--
Ви маєте [виконати цей проєкт за допомогою нашого стартового коду Replit](https://replit.com/github/freeCodeCamp/boilerplate-time-calculator).
Ми й досі в процесі розробки інтерактивної складової навчального курсу Python. Наразі можете ознайомитись із наступними відео на YouTube каналі freeCodeCamp.org. У них ви знайдете все необхідне для завершення цього проєкту:
- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 годин)
- [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-video-course/) (10 години)
# --instructions--
Напишіть функцію з назвою `add_time`, яка приймає два обов'язкових параметри та один необов'язковий параметр:
- початок часу в 12-годинному форматі годинника (закінчується на AM чи PM)
- проміжок часу, який позначає кількість годин та хвилин
- (необов'язкове) перший день тижня (без урахування регістру)
Функція має додати проміжок часу до початку часу та повернути результат.
Якщо результат буде наступним днем, то він має показати `(next day)` після часу. Якщо результат буде за декілька днів, то він має показати `(n days later)` після часу, де "n" — це кількість днів.
Якщо функції задано довільний параметр першого дня тижня, то вивід має показувати день тижня з результату. День тижня у виводі має показуватися перед часом та після кількості днів.
Нижче наведені приклади різних випадків, які має опрацьовувати функція. Слідкуйте за інтервалами та пунктуацією в результатах.
```py
add_time("3:00 PM", "3:10")
# Returns: 6:10 PM
add_time("11:30 AM", "2:32", "Monday")
# Returns: 2:02 PM, Monday
add_time("11:43 AM", "00:20")
# Returns: 12:03 PM
add_time("10:10 PM", "3:30")
# Returns: 1:40 AM (next day)
add_time("11:43 PM", "24:20", "tueSday")
# Returns: 12:03 AM, Thursday (2 days later)
add_time("6:30 PM", "205:12")
# Returns: 7:42 AM (9 days later)
```
Не імпортуйте бібліотеки Python. Припускаймо, що початок часу завжди валідний. Мінути у проміжку часу будуть цілим числом меншим за 60, але години можуть бути будь-яким числом.
## Розробка
Запишіть свій код в `time_calculator.py`. Для розробки, ви можете використати `main.py`, щоб перевірити вашу функцію `time_calculator()`. Натисніть кнопку "run" і `main.py` запуститься.
## Тестування
Розділи з тестами для цього проєкту знаходяться в `test_module.py`. Ми імпортували тести з `test_module.py` до `main.py` для вашої зручності. Тести запустяться автоматично кожного разу, коли ви натиснете клавішу "run".
## Надсилання
Скопіюйте URL-адресу вашого проєкту і відправте його до freeCodeCamp.
# --hints--
Функція повинна правильно додавати час і пройти тестування.
```js
```
# --solutions--
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```