python 検索エンジン

# データ
documents = [
    "Python is a popular programming language.",
    "It is known for its simplicity and readability.",
    "Python has a large community of developers.",
    "Python is widely used in web development."
]

# データの前処理
def preprocess(text):
    return text.lower()

# インデックスの作成
def create_index(documents):
    index = {}
    for doc_id, doc in enumerate(documents):
        doc = preprocess(doc)
        words = doc.split()
        for word in words:
            if word not in index:
                index[word] = []
            index[word].append(doc_id)
    return index

# クエリ処理
def search(query, index):
    query = preprocess(query)
    words = query.split()
    result = set(range(len(documents)))

    for word in words:
        if word in index:
            result &= set(index[word])

    return [documents[i] for i in result]

# メイン
if __name__ == "__main__":
    index = create_index(documents)

    while True:
        query = input("検索クエリを入力してください (終了するには 'exit' を入力): ")
        if query == 'exit':
            break
        results = search(query, index)
        if results:
            for i, result in enumerate(results, start=1):
                print(f"{i}. {result}")
        else:
            print("一致する文書はありません。")

python todoリスト

import os

# ファイル名
todo_filename = 'todo.txt'

# TODOリストを表示する関数
def show_todo_list():
    if os.path.exists(todo_filename):
        with open(todo_filename, 'r') as file:
            todo_list = file.readlines()
            if todo_list:
                print("TODOリスト:")
                for i, item in enumerate(todo_list, start=1):
                    print(f"{i}. {item.strip()}")
            else:
                print("TODOリストは空です。")
    else:
        print("TODOリストはまだ作成されていません。")

# TODOアイテムを追加する関数
def add_todo_item(item):
    with open(todo_filename, 'a') as file:
        file.write(item + '\n')
    print(f"'{item}' をTODOリストに追加しました。")

# TODOアイテムを削除する関数
def remove_todo_item(item_number):
    if os.path.exists(todo_filename):
        with open(todo_filename, 'r') as file:
            todo_list = file.readlines()
        if 1 <= item_number <= len(todo_list):
            removed_item = todo_list.pop(item_number - 1).strip()
            with open(todo_filename, 'w') as file:
                file.writelines(todo_list)
            print(f"'{removed_item}' をTODOリストから削除しました。")
        else:
            print("指定された番号のTODOアイテムは存在しません。")
    else:
        print("TODOリストはまだ作成されていません。")

# メインメニューを表示する関数
def main_menu():
    while True:
        print("\nメニュー:")
        print("1. TODOリストを表示")
        print("2. TODOアイテムを追加")
        print("3. TODOアイテムを削除")
        print("4. 終了")
        
        choice = input("選択してください: ")

        if choice == '1':
            show_todo_list()
        elif choice == '2':
            item = input("追加するTODOアイテムを入力してください: ")
            add_todo_item(item)
        elif choice == '3':
            show_todo_list()
            item_number = int(input("削除するTODOアイテムの番号を入力してください: "))
            remove_todo_item(item_number)
        elif choice == '4':
            print("アプリケーションを終了します。")
            break
        else:
            print("無効な選択です。再度選択してください。")

if __name__ == "__main__":
    main_menu()

Javascript 複数のスクリプトを読みこむ

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My JavaScript</title>
</head>
<body>
  <script src="main.js"></script>
  <script src="sub.js"></script>
</body>
</html>

main.js

'use strict';

{
let x = 10;
console.log(x);
}

sub.js

'use strict';

{
let x = 20;
console.log(x);
}

Javascript スコープ

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My JavaScript</title>
</head>
<body>
  <script src="main.js"></script>
</body>
</html>

main.js

'use strict';

let x = 10;
{
  x = 20;
  console.log(x);
}
console.log(x);

Javascript 論理演算子

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My JavaScript</title>
</head>
<body>
  <script src="main.js"></script>
</body>
</html>

main.js

'use strict';

const english = Number(prompt('English'));
const math = Number(prompt('Math?'));

if(!(english >= 80 && math >= 80)){
  console.log(`A`);
}else{
  console.log(`B`);
}

Javascript 条件演算子

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My JavaScript</title>
</head>
<body>
  <script src="main.js"></script>
</body>
</html>

main.js

'use strict';

const score = Number(prompt('Score?'));
const result = score > 80 ? `A` : `B`;
console.log(result);

Javascript break、continue

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My JavaScript</title>
</head>
<body>
  <script src="main.js"></script>
</body>
</html>

main.js

'use strict';

let amount = 100;

for (let year = 1; year <= 30; year++){
  amount *= 1.05;
  if(amount < 200){
    continue;
  }
  if(amount > 300){
    break;
  }
  console.log(`Year ${amount}`);
}

Javascript do while

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My JavaScript</title>
</head>
<body>
  <script src="main.js"></script>
</body>
</html>

main.js

'use strict';

// const command = Number(prompt('Menu 1, 2, 3 or 0 to exit'));
// console.log(`Menu ${command} processed.`);

//let command = Number(prompt('Menu 1, 2, 3 or 0 to exit'));

//while (command !== 0) {
//  console.log(`Menu ${command} processed.`);
//  command = Number(prompt('Menu 1, 2, 3 or 0 to exit'));
//}

let command;

do {
  command = Number(prompt('Menu 1, 2, 3 or 0 to exit'));
  if (command === 0) {
    console.log('Exited');
  } else {
    console.log(`Menu ${command} processed.`);
  }
} while (command !== 0);

Javascript while

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My JavaScript</title>
</head>
<body>
  <script src="main.js"></script>
</body>
</html>

main.js

'use strict';

// const command = Number(prompt('Menu 1, 2, 3 or 0 to exit'));
// console.log(`Menu ${command} processed.`);

let command = Number(prompt('Menu 1, 2, 3 or 0 to exit'));

while (command !== 0) {
  console.log(`Menu ${command} processed.`);
  command = Number(prompt('Menu 1, 2, 3 or 0 to exit'));
}

Javascript forの中でforを使う

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My JavaScript</title>
</head>
<body>
  <script src="main.js"></script>
</body>
</html>

main.js

'use strict';

let price;
const rate = 1.1;

for(let price = 150; price <= 160; price++){
  console.log('Price: ${price}');
  for(let amount = 120; amount <= 140; amount+=10){
    console.log(price * amount * rate);
  }
}