PythonのIDLEからSqlite3を使っています。
青,黄,赤の3色から好きな色選んでもらうHTMLのWEBベースのアンケート調査をしています。
アンケートを答えた人数から,各色の好きな人数の割合(%)を求めたいのですが,どなたか教えていただけますでしょうか?
割合(%)にしたい部分の表示は,現在人数の表示になっています。
from
import sqlite3 @route('/',method='get') def index_home(): return indexform #入力画面を呼び出す @route('/',method='post') def index_input(): #入力された値(出席番号, 氏名, 色)を取得 id = request.forms.id name = request.forms.name color = request.forms.fcolor #データベースに接続して入力された値をデータベースに入力 conn = sqlite3.connect('colordb.sqlite3') cur = conn.cursor() cur.execute('insert into fc values(?,?,?)', (id, name, color)) conn.commit() conn.close() return indexform #次の入力を促すために入力画面を呼び出す #入力画面 indexform = ''' <form action='/' method='post'> <p>好きな色を集計します.</p> <p>出席番号と氏名を入力後半角英数字でもれなく入力し,送信ボタンを押してください.</p> <p>出席番号<input type='text' name='id'></p> <p>氏名(ローマ字)<input type='text' name='name'></p> <p>次のうちから,好きな色を選んでください.</p> <p><input type='radio'checked name='fcolor' value='1'>青 <input type='radio' name='fcolor' value='2'>黄 <input type='radio' name='fcolor' value='3'>赤</p> <p><input type='submit' value='送信'></p> <a href='/result'>集計結果</a> </form> ''' #結果 @route('/result') def result(): #データベースに接続 conn = sqlite3.connect('colordb.sqlite3') cur = conn.cursor() cur.execute('select count(color) from fc where color=1') blue = cur.fetchone()[0] cur.execute('select count(color) from fc where color=2') yellow = cur.fetchone()[0] cur.execute('select count(color) from fc where color=3') red = cur.fetchone()[0] conn.close() return '''<p> 集計結果 </p> <p> 青が好きな人は{0}人です.</p> <p> 黄が好きな人は{1}人です.</p> <p> 赤が好きな人は{2}人です.</p> <p><a href=\'/\'>入力画面に戻る</a></p>'''.format(blue, yellow, red) #テーブルの作成(すでに存在するなら削除して,作成) @route('/create') def create(): conn = sqlite3.connect('colordb.sqlite3') cur = conn.cursor() cur.execute('drop table if exists fc') #すでに存在するなら削除 cur.execute('''create table fc (id integer not null, name text not null, color integer, primary key (id))''') conn.commit() conn.close() return '<p>テーブルを作成しました</p>' run(host='0.0.0.0',port=80)
まだ回答がついていません
会員登録して回答してみよう