Python/CGIスクリプト卸問屋は創業以来4,619,948,995名のお客様にご愛顧いただいております。

創業132年を誇る超老舗のPython/CGIスクリプト卸問屋スクリプト卸問屋へようこそ。当店では.....省略

ファイルのリスト
  1. project/chart.pyソースとじる
  2. project/crash.pyソースひらく
  3. project/obs.pyソースひらく
  4. project/pycalc.pywのソースひらく
project/chart.py
#!/usr/local/bin/python
# -*- coding: cp932 -*-

width  = 600
height = 200
strlen = 256

#設定はこれだけ

import sys
import os
import os.path
import cgi
import cgitb
import re
import random

cgitb.enable()

filepath = os.environ.get('SCRIPT_FILENAME', '')
filename = os.path.basename(filepath)
form = cgi.FieldStorage()
string = form.getfirst('string', '')
data = [0.0]

if strlen < len(string):
    string = ''
elif len(string):
    string = re.sub('[^ 0-9]', '', string)
    string = re.sub('^ +', '', string)
    string = re.sub(' +$', '', string)
    string = re.sub('  +', ' ', string)
    if (len(string)):
        data = map(float, string.split(' '))
else:
    data = []
    for i in xrange(0, random.randint(8, 64)):
        data.append(float(random.randint(0, 64)))
    string = ' '.join(map(str, map(int, data)))

print """Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<style type="text/css">
<!--
table {
    border-collapse:collapse;
}
td {
    padding:0px;
    vertical-align:bottom;
    width:1px;
}
-->
</style>
</head>
<body>
<form action="%s" method="get">
<input type="text" name="string" value="%s" size="60">
<input type="submit" value="送信">
</form>
<table style="border:1px solid black"><tr>""" % (filename, string)

datalen = len(data)
maxvalue = max(data)

if 1 <= maxvalue and 2 <= datalen:
    cols = int(width / (datalen - 1))
    diff1 = int(data[0] / maxvalue * height)
    value1 = -1
    for value2 in data:
        if 0 <= value1:
            for i in xrange(0, cols):
                diff2 = int((value1 + (value2 - value1) / cols * i) / maxvalue * height)
                linelen = abs(diff2 - diff1)
                if linelen < 1:
                    linelen = 1
                print '<td>'
                print '<table><tr><td style="background-color:blue;height:' + str(linelen) + 'px"></table>'
                if diff2 < diff1:
                    linelen = 0
                print '<table><tr><td style="height:' + str(diff2 - linelen) + 'px"></table>'
                diff1 = diff2
        value1 = value2

print """</tr></table>
<ul>
<li>個数:%s
<li>最大:%s
<li>最小:%s
<li>合計:%s
<li>平均:%s
<li>最低でも2個以上の数値が必要です。
<li>変な文字は適当かつ勝手に削除します。
</ul>
<p>""" % (len(data), max(data), min(data), sum(data), sum(data) / len(data))

if form.getfirst('source', ''):
    print '<a href="%s">ソースいらない</a>' % filename
    try:
        source = cgi.escape(open(filepath, 'rb').read(), True)
        print '<pre>'
        print source
        print '</pre>'
    except:
        print '<p>ファイルが開けませんでした。</p>'
else:
    print '<a href="%s?source=1">ソース</a>' % filename

print '</p></body></html>'
注意事項
メールで連絡
ちょこっとテスト
となりの問屋

©2018 Python/CGIスクリプト卸問屋