可能性の模索
自動ホームページ作成
7班の最初の「プログラミングでこんなことはできないか?」という話し合いでは以下があがりました。
①文章自動生成グループ
・文章の自動生成
・レポート・リアクションペーパーを勝手に書いてくれる
・レポートのアイデアを出してくれる
・メールの自動作成
・日記自動生成
・文章の校閲、文をフォーマルにしてくれる
・自動ブログ生成
・引用のお手伝い
・スペルを勝手に直してくれる
・相槌生成(会話)
②音声系グループ
・音声でノートまとめてくれる
・勝手に授業を聞いて勝手にノートまとめてくれる
③絵・画像グループ
・文字を入力すると絵を描いてくれる
・自動でいい感じの色の背景にしてくれる
・写真を自動で引っ張ってきてくれる
④その他
・お金の管理
・洋服を自動で選んでくれる
・一番商品の価格が安いものを選んでくれる
・指定したサイトの新し区アップロードされたファイルを自動で保存
・サイトの更新を通知してくれる
上記の項目からいくつかを組み合わせ、
音声入力→自動要約→丁寧な文章に変換→その文章を使い自動でウェブ作成(自動できれいな配色)
ということをやってくれるコードを作ることにしました。
音声入力、
文章の言い回しの変換、
ランダムでおすすめの配色
ができるコードを見つけることができましたが、
ダウンロード量が多すぎることや、コードを全く理解できなかったことから、実行できませんでした。
そのため、自動で配色しホームページを作成するコードを作ることになりました。
メンバーそれぞれで、RGB1-255を乱数生成したり、カラーコードを乱数生成したり、ランダムに配色されるサイトのコードからヒントを探したりしました。
私はリストからランダムに要素を選択するコードを使って、以下のコードができました。
- import random #()内からランダム、print(random.choice())で表示
- light=("#FFFFFF","#FFFAFA","#F0F8FF","#F5FFFA")
- #白、白桃、白青、白緑
- import random
- vivid=("#FF4500","#7B68EE","#DC143C")
- #オレンジ、薄紫、赤
- import random
- dark=("#000000","","#2f4f4f","#191970")
- #黒、暗緑、暗紺
- print(random.choice(light))
- l=random.choice(light)
- print(random.choice(vivid))
- v=random.choice(vivid)
- print(random.choice(dark))
- d=random.choice(dark)
- f = open('C:\\Users\\a\\mygit\\xbp\\de12\\python\\randomweb.html', 'w') #HTMLファイルを開く f.writeでhtmlに埋め込み
- f.write('\n')
- f.write('<!DOCTYPE html>')
- f.write('\n') #改行
- f.write('<html lang="jp">')
- f.write('\n')
- f.write('<head>')
- f.write('\n')
- f.write('<title>"タイトル"</title>')
- f.write('\n')
- f.write('</head>')
- f.write('\n')
- f.write('<body bgcolor="' +d+'" text="#cccccc">') #ランダムリストの中から背景色を貼り付け
- f.write('\n')
- f.write('<div style="border: ' +v+' solid 1px; border-left: ' +v+' solid 10px; padding: 20px; background: ' +l+'; font-size: 100%;">"タイトル"</div>')#ランダムリストの中から枠の色、枠内の色を貼り付け
- f.write('\n')
- f.write('本文')
- f.write('\n')
- f.write('</body>')
- f.write('\n')
- f.write('<html>')
- f.close
完全ランダムの配色のコードは見つかりましたが、同系色が選ばれたり、彩度の高い補色が選ばれたりなどが簡単に起きてしまうため、
暗い色、明るい色、彩度の高い色でリストを分けて作ることで、どの組み合わせになってもミスが起こりにくいようにすることができました。
しかし、pythonからhtmlに変換する段階で文字化けが起きてしまいました。
↓完成したものです。