chore(i18n,learn): processed translations (#44851)

This commit is contained in:
camperbot
2022-01-21 01:00:18 +05:30
committed by GitHub
parent f866718a3d
commit 5c868af2b8
1696 changed files with 159426 additions and 69 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 プログラムは何を出力しますか?
```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--
x = 0 かつ y = 10 の場合、”Yes” を出力するために正しくインデントされているコードはどれですか?
## --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>[エラー]</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--
この 2 行のコードを実行すると何が出力されますか?
```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--
その他のリソース:
\- [Windows に Python をインストール](https://youtu.be/F7mtLrYzZP8)
\- [MacOS に Python をインストール](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--
次のコードでは、値のリストから最小値を見つけようとしています。 1 行にエラーがあり、コードが期待どおりに動作しません。 どの行ですか?
```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--
メールアドレス `quincy@freecodecamp.org` を持つすべてのユーザーを取得するために使用する SQL コマンドはどれですか?
## --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: 'ネットワーキング: Python で urllib を使用する'
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=dWLdI143W-g)
\- [演習: urllib](https://www.youtube.com/watch?v=8yis2DvbBkI)
\- [演習: urllinks](https://www.youtube.com/watch?v=g9flPDG9nnY)
# --question--
## --text--
HTML ドキュメントの解析や HTML ドキュメントからのデータ抽出に使用する Python ライブラリはどれですか?
## --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 ソケットへのアクセス手段を提供する Python ライブラリはどれですか?
## --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--
シンプルなウェブサーバー。
---
シンプルな電子メールクライアント。
---
シンプルな todo リスト。
---
シンプルなウェブブラウザー。
## --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--
このコードを実行した後、dict はどれに等しくなりますか?
```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--
Python の "def" キーワードの用途は何ですか?
## --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--
オブジェクトは作成され、使用される。
---
オブジェクトはコードやデータの集まりである。
---
オブジェクトは詳細を隠す。
---
オブジェクトは 5 つの標準的なデータ型のうちの 1 つである。
## --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--
文字列の新しい行を示すために使用するものは何ですか?
## --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--
文字列データをデータベースに保存する際にベストプラクティスとなっている保存回数は何回ですか?
## --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--
インデックス
---
テーブル
---
---
## --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--
SQL ステートメントで JOIN 句を使用する場合、ON は何を実行しますか?
## --answers--
JOIN を実行するテーブルを示す。
---
JOIN に使用するフィールドを指定する。
---
2 つのテーブルをどのように結合するかを示す。
## --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--
SQL の INSERT コマンドは何を実行しますか?
## --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--
外部キーとは何ですか?
## --answers--
そこにあるはずのないキー。
---
非ラテン文字を使用するキー。
---
別のテーブルにある関連する行の主キーを指す数値。
---
"Real world" で行をルックアップ検索するために使用する可能性のあるキー。
## --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: ウェブサービスを利用する
challengeType: 11
videoId: oNl1OVDPGKE
bilibiliIds:
aid: 759406136
bvid: BV1b64y16746
cid: 377332189
dashedName: using-web-services
---
# --question--
## --text--
インターネットでデータを送信するための最も一般的な 2 つの方法は何ですか?
## --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--
その他のリソース:
\- [演習: GeoJSON](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 のユーザー名
---
日付の範囲
---
検索キーワード
---
キー
## --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--
アプリケーション・ポータブル・インテリジェンス
---
アソシエイト・プログラミング・インターナショナル
---
アプリケーション・プログラム・インターフェイス
---
アクション・ポータブル・インターフェイス
## --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
---
[エラー]
## --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--
サービス指向のウェブアプリ開発アプローチでは、データはどこに存在しますか?
## --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--
XML に対する W3C スキーマ仕様。
---
MOZ からの標準 JSON スキーマ。
---
拡張可能な状況依存ドライバー。
## --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 カリキュラムの対話式教育コンテンツを引き続き開発中です。 現在、下記の freeCodeCamp.org YouTube チャンネルで、このプロジェクトの完了に必要なすべての知識について説明する動画をいくつか公開しています。
- [「みんなで Python」ビデオコース](https://www.freecodecamp.org/news/python-for-everybody/) (14 時間)
- [「Python を学ぶ」ビデオコース](https://www.freecodecamp.org/news/learn-python-video-course/) (10 時間)
# --instructions--
小学校の算数では計算問題を解きやすくるために縦書きにすることが多くあります。 たとえば「235 + 52」を次のように記述します。
```py
235
+ 52
-----
```
計算問題を表す文字列のリストを受け取り、問題を縦書きに整形して返す関数を作成してください。 この関数はオプションで第 2 引数を受け取る必要があります。 第 2 引数が `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
```
## ルール
入力された問題が正しく整形されている場合、この関数は正しい変換結果を返します。それ以外の場合は、**ユーザーにとって意味のあるエラーを記述した****文字列**を返します。
- エラーを返す場合:
- 関数に入力した**問題の数が多すぎる**場合。 上限を **5** つとし、それを超える場合は `Error: Too many problems.` (エラー: 問題が多すぎます) を返します。
- 関数が受け取ることのできる適切な演算子は**足し算**と**引き算**です。 掛け算と割り算はエラーを返します。 この箇条書きで指示していない他の演算子についてはテストする必要はありません。 次のようなエラーを返します: `Error: Operator must be '+' or '-'.` (エラー: '+' または '-' の演算子を使用してください)。
- 数値 (オペランド) にはそれぞれ数字のみを含める必要があります。 数値以外の場合、関数は次のエラーを返します: `Error: Numbers must only contain digits.` (エラー: 数値には数字のみを含める必要があります)。
- それぞれのオペランド (演算子の両側の数値) の幅は最大 4 桁です。 それ以外の場合は、次のようなエラー文字列を返します: `Error: Numbers cannot be more than four digits.` (エラー: 数値は 4 桁以内にする必要があります)。
- ユーザーが問題を正しい形式で入力した場合は、次のルールに従って変換結果を返します。
- 演算子と、2 つのオペランドのうち最も長いオペランドとの間に、スペースを 1 つ含めます。演算子は 2 つ目のオペランドと同じ行に表示し、両方のオペランドは入力されたとおりの順序で表示します (1 つ目のオペランドを上側に、2 つ目のオペランドを下側に表示します)。
- 数値は右揃えにする必要があります。
- それぞれの問題の間に 4 つのスペースが必要です。
- それぞれの問題の一番下にダッシュが必要です。 ダッシュは、各問題の全体の長さに沿った長さにする必要があります (上の表示例を参考にしてください)
## 開発
`arithmetic_arranger.py` でコードを記述してください。 開発には `main.py` を使用して `arithmetic_arranger()` 関数をテストすることができます。 「実行」ボタンをクリックすると `main.py` が実行されます。
## テスト
このプロジェクトの単体テストは `test_module.py` にあります。 `test_module.py` のテストを `main.py` で実行できるようになっています。 「実行」ボタンを押すと自動的にテストが実行されます。 または、コンソールに `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 カリキュラムの対話式教育コンテンツを引き続き開発中です。 現在、下記の freeCodeCamp.org YouTube チャンネルで、このプロジェクトの完了に必要なすべての知識について説明する動画をいくつか公開しています。
- [「みんなで Python」ビデオコース](https://www.freecodecamp.org/news/python-for-everybody/) (14 時間)
- [「Python を学ぶ」ビデオコース](https://www.freecodecamp.org/news/learn-python-video-course/) (10 時間)
# --instructions--
`budget.py``Category` クラスを完成させてください。 *食費*、*服飾費*、*娯楽費*など、さまざまな予算のカテゴリに応じてオブジェクトをインスタンス化できるようにする必要があります。 オブジェクトを作成したら、カテゴリの名前をオブジェクトに渡します。 クラスには、リスト形式の帳簿となる `ledger` というインスタンス変数が必要です。 クラスには次のメソッドも含める必要があります。
- `deposit` (預け入れ) メソッド。金額と説明を受け取ります。 説明がない場合は、デフォルトで空の文字列にします。 このメソッドでは、`{"amount": amount, "description": description}` という形式で帳簿リストの末尾にオブジェクトを追加する必要があります。
- `withdraw` (引き出し) メソッド。`deposit` メソッドに似ていますが、渡された金額を負数として帳簿に保存する必要があります。 十分な資金がない場合は、帳簿に何も追加しないでください。 このメソッドは、引き出しが行われた場合は `True` を返し、それ以外の場合は `False` を返す必要があります。
- `get_balance` (残高確認) メソッド。発生した入出金に基づいて予算カテゴリの現在の残高を返します。
- `transfer` (送金) メソッド。引数として金額と別の予算カテゴリを受け取ります。 このメソッドでは、金額と "Transfer to [Destination Budget Category]" ([送金先の予算カテゴリ] への送金) という記述からなる出金を追加する必要があります。 このメソッドによって、金額と "Transfer to [Destination Budget Category]" という記述からなる入金額が他の予算カテゴリに追加されます。 十分な資金がない場合は、どちらの帳簿にも何も追加しないでください。 このメソッドは、送金が行われた場合は `True` を返し、それ以外の場合は `False` を返す必要があります。
- `check_funds` (資金確認) メソッド。引数として金額を受け取ります。 金額が予算カテゴリの残高よりも大きい場合は `False` を返し、それ以外の場合は `True` を返します。 このメソッドは `withdraw` メソッドと `transfer` メソッドの両方で使用する必要があります。
予算オブジェクトを出力するときは次のように表示する必要があります。
- 30 文字のタイトル行。`*` 文字を並べて 1 行とし、中央にカテゴリの名前を置きます。
- 帳簿にある品目のリスト。 各行に説明と金額を表示します。 説明の最初の 23 文字を表示し、その後に金額を表示します。 金額は右揃えで、小数点以下 2 桁までを含み、最大 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 のラベルを付ける必要があります。 棒グラフの「棒」は文字 "o" を使用して作成する必要があります。 各棒の高さは最も近い 10 に切り下げる必要があります。 グラフの下の水平線は最後の棒からスペース 2 つ分だけ離す必要があります。 各カテゴリ名は棒の下に垂直に記述する必要があります。 一番上には "Percentage spent by category" (カテゴリ別の出費の割合) というタイトルを付ける必要があります。
この関数は最大 4 つのカテゴリでテストされます。
次の出力例を参考にして、出力の間隔を例と正確に合わせてください。
```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` クラスをテストすることができます。 「実行」ボタンをクリックすると `main.py` が実行されます。
## テスト
すでに `test_module.py` から `main.py` にテストをインポートしてあります。 「実行」ボタンを押すと自動的にテストが実行されます。
## 提出
プロジェクトの URL をコピーし、freeCodeCamp に提出してください。
# --hints--
Category クラスを作成し、すべてのテストに合格する必要があります。
```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 カリキュラムの対話式教育コンテンツを引き続き開発中です。 現在、下記の freeCodeCamp.org YouTube チャンネルで、このプロジェクトの完了に必要なすべての知識について説明する動画をいくつか公開しています。
- [「みんなで Python」ビデオコース](https://www.freecodecamp.org/news/python-for-everybody/) (14 時間)
- [「Python を学ぶ」ビデオコース](https://www.freecodecamp.org/news/learn-python-video-course/) (10 時間)
# --instructions--
このプロジェクトでは、オブジェクト指向プログラミングを使用して、Rectangle クラスと Square クラスを作成します。 Square クラスは Rectangle のサブクラスであり、メソッドと属性を継承する必要があります。
## Rectangle クラス
Rectangle オブジェクトが作成されるときは、`width` 属性と `height` 属性で初期化する必要があります。 クラスには、次のメソッドも含める必要があります。
- `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 より大きい場合は、文字列 "Too big for picture." を返す必要があります。
- `get_amount_inside`: 引数として別の図形 (正方形または長方形) を受け取ります。 渡された図形が、その図形の中に何個収まるかを返します (回転はしません)。 たとえば、幅が 4 で高さが 8 の長方形には、一辺が 4 の正方形が 2つ収まります。
また、Rectangle のインスタンスを文字列として表現する場合は、`Rectangle(width=5, height=10)` のようにする必要があります。
## Square クラス
Square クラスは Rectangle のサブクラスである必要があります。 Square オブジェクトが生成されるときは、一辺の長さを渡します。 `__init__` メソッドでは、一辺の長さを Rectangle クラスの `width` 属性と `height` 属性の両方に格納する必要があります。
Square クラスは、Rectangle クラスのメソッドにアクセスできる必要があり、加えて `set_side` メソッドも含める必要があります。 Square のインスタンスを文字列として表現する場合は、`Square(side=9)` のようにする必要があります。
また、Square クラスの `set_width``set_height` メソッドでは、幅と高さの両方を設定する必要があります。
## 使用例
```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()` 関数をテストすることができます。 「実行」ボタンをクリックすると `main.py` が実行されます。
## テスト
すでに `test_module.py` から `main.py` にテストをインポートしてあります。 「実行」ボタンを押すと自動的にテストが実行されます。
## 提出
プロジェクトの 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 カリキュラムの対話式教育コンテンツを引き続き開発中です。 現在、下記の freeCodeCamp.org YouTube チャンネルで、このプロジェクトの完了に必要なすべての知識について説明する動画をいくつか公開しています。
- [「みんなで Python」ビデオコース](https://www.freecodecamp.org/news/python-for-everybody/) (14 時間)
- [「Python を学ぶ」ビデオコース](https://www.freecodecamp.org/news/learn-python-video-course/) (10 時間)
# --instructions--
帽子があり、その中に青いボールが 5 個、赤いボールが 4 個、緑のボールが 2 個入っているとします。 4 個のボールを無作為に取り出す場合、赤のボールが 1 個以上、緑のボールが 2 個含まれる確率は、いくらになりますか? 高度な数学を駆使して確率を計算することも可能ですが、多数の実験を実行しておおよその確率を推定するプログラムを記述する方が簡単です。
このプロジェクトでは、特定のボールを帽子から無作為に取り出す場合のおおよその確率を調べるプログラムを作成します。
まず、`prob_calculator.py``Hat` クラスを作成してください。 このクラスは、帽子に入っている各色のボールの数を指定する可変個の引数を受け取る必要があります。 たとえば、次のどの方法でもクラスオブジェクトを作成することができます。
```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)
```
帽子は常に、少なくとも 1 個のボールが入った状態で作成されます。 作成時に帽子オブジェクトに渡された引数を、`contents` インスタンス変数に変換する必要があります。 `contents` は、帽子に入っているボールごとにアイテムを 1 つずつ含む文字列のリストである必要があります。 リスト内の各アイテムは、その色のボール 1 個分を表す色の名前である必要があります。 たとえば、帽子が `{"red": 2, "blue": 1}` の場合、`contents``["red", "red", "blue"]` になる必要があります。
`Hat` クラスには `draw` メソッドが必要です。このメソッドは、帽子から取り出すボールの個数を示す引数を受け取ります。 draw メソッドは、`contents` からボールを無作為に取り除き、それらのボールを文字列のリストとして返す必要があります。 交換のできない壺の実験と同様に、取り出したボールは帽子に戻さないものとします。 取り出すボールの数が利用可能な数を超える場合は、すべてのボールを返してください。
次に、(`Hat` クラスの中ではなく) `prob_calculator.py``experiment` 関数を作成してください。 この関数は次の引数を受け取る必要があります。
- `hat`: 関数内でコピーする必要のあるボールを含む帽子オブジェクト。
- `expected_balls`: 実験で帽子から取り出そうとするボールの正確なグループを示すオブジェクト。 たとえば、青のボール 2 個と赤のボール 1 個を帽子から取り出す確率を調べるには、`expected_balls``{"blue":2, "red":1}` に設定します。
- `num_balls_drawn`: 各実験で帽子から取り出すボールの数。
- `num_experiments`: 実行する実験の回数 (実験の回数が多いほど、おおよその確率の正確性が高まります)。
`experiment` 関数は、確率を返す必要があります。
たとえば、黒を 6 個、赤を 4 個、緑を 3 個含む帽子から 5 個のボールを取り出す場合に、赤のボールが少なくとも 2 個、緑のボールが少なくとも 1 個含まれる確率を求めたいとしましょう。 それには、`N` 回の実験を行い、赤のボールが少なくとも 2 個、緑のボールが少なくとも 1 個になった回数 `M` を数え、確率を `M/N` として推定します。 実験ではそれぞれ、指定されたボールの入った帽子の状態から始め、いくつかのボールを取り出し、期待されるボールを取り出したかどうかを確認します。
上記の例で 2000 回の実験を行う場合は、`experiment` 関数を次のように呼び出します。
```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` を使用してコードをテストすることができます。 「実行」ボタンをクリックすると `main.py` が実行されます。
ボイラープレートには `copy` モジュールと `random` モジュール用の `import` ステートメントが含まれています。 これらをプロジェクトで使用することを検討してください。
## テスト
このプロジェクトの単体テストは `test_module.py` にあります。 すでに `test_module.py` から `main.py` にテストをインポートしてあります。 「実行」ボタンを押すと自動的にテストが実行されます。
## 提出
プロジェクトの 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 カリキュラムの対話式教育コンテンツを引き続き開発中です。 現在、下記の freeCodeCamp.org YouTube チャンネルで、このプロジェクトの完了に必要なすべての知識について説明する動画をいくつか公開しています。
- [「みんなで Python」ビデオコース](https://www.freecodecamp.org/news/python-for-everybody/) (14 時間)
- [「Python を学ぶ」ビデオコース](https://www.freecodecamp.org/news/learn-python-video-course/) (10 時間)
# --instructions--
下記に示す 2 つの必須パラメーターと 1 つのオプションパラメーターを受け取る関数 `add_time` を記述してください。
- 12 時制形式の開始時刻 (末尾に AM または PM)
- 時数と分数で示される経過時間
- (オプション) 開始の曜日 (大文字小文字の記述は自由)
関数は、経過時間を開始時刻に追加し、その結果を返す必要があります。
結果が翌日になる場合は、時刻の後に `(next day)` (翌日) を表示する必要があります。 結果が翌日以降になる場合は、時刻の後に `(n days later)` (n 日後) を表示する必要があります。ここで "n" は何日後かを示します。
関数にオプションの開始曜日パラメーターが与えられた場合は、結果の曜日を出力に表示する必要があります。 出力する曜日は、時刻の後、「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()` 関数をテストすることができます。 「実行」ボタンをクリックすると `main.py` が実行されます。
## テスト
このプロジェクトの単体テストは `test_module.py` にあります。 すでに `test_module.py` から `main.py` にテストをインポートしてあります。 「実行」ボタンを押すと自動的にテストが実行されます。
## 提出
プロジェクトの 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.
*/
```