Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
17
Task/Create-an-HTML-table/Python/create-an-html-table-1.py
Normal file
17
Task/Create-an-HTML-table/Python/create-an-html-table-1.py
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import random
|
||||
|
||||
def rand9999():
|
||||
return random.randint(1000, 9999)
|
||||
|
||||
def tag(attr='', **kwargs):
|
||||
for tag, txt in kwargs.items():
|
||||
return '<{tag}{attr}>{txt}</{tag}>'.format(**locals())
|
||||
|
||||
if __name__ == '__main__':
|
||||
header = tag(tr=''.join(tag(th=txt) for txt in ',X,Y,Z'.split(','))) + '\n'
|
||||
rows = '\n'.join(tag(tr=tag(' style="font-weight: bold;"', td=i)
|
||||
+ ''.join(tag(td=rand9999())
|
||||
for j in range(3)))
|
||||
for i in range(1, 6))
|
||||
table = tag(table='\n' + header + rows + '\n')
|
||||
print(table)
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<table>
|
||||
<tr><th></th><th>X</th><th>Y</th><th>Z</th></tr>
|
||||
<tr><td style="font-weight: bold;">1</td><td>6040</td><td>4697</td><td>7055</td></tr>
|
||||
<tr><td style="font-weight: bold;">2</td><td>2525</td><td>5468</td><td>6901</td></tr>
|
||||
<tr><td style="font-weight: bold;">3</td><td>8851</td><td>3727</td><td>8379</td></tr>
|
||||
<tr><td style="font-weight: bold;">4</td><td>5313</td><td>4396</td><td>1765</td></tr>
|
||||
<tr><td style="font-weight: bold;">5</td><td>4013</td><td>5924</td><td>6082</td></tr>
|
||||
</table>
|
||||
117
Task/Create-an-HTML-table/Python/create-an-html-table-3.py
Normal file
117
Task/Create-an-HTML-table/Python/create-an-html-table-3.py
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
from functools import (reduce)
|
||||
import itertools
|
||||
import random
|
||||
|
||||
|
||||
# HTML RENDERING ----------------------------------------
|
||||
|
||||
# treeHTML :: tree
|
||||
# {tag :: String, text :: String, kvs :: Dict}
|
||||
# -> HTML String
|
||||
def treeHTML(tree):
|
||||
return foldTree(
|
||||
lambda x: lambda xs: (
|
||||
f"<{x['tag'] + attribString(x)}>" + (
|
||||
str(x['text']) if 'text' in x else '\n'
|
||||
) + ''.join(xs) + f"</{x['tag']}>\n"
|
||||
)
|
||||
)(tree)
|
||||
|
||||
|
||||
# attribString :: Dict -> String
|
||||
def attribString(dct):
|
||||
kvs = dct['kvs'] if 'kvs' in dct else None
|
||||
return ' ' + reduce(
|
||||
lambda a, k: a + k + '="' + kvs[k] + '" ',
|
||||
kvs.keys(), ''
|
||||
).strip() if kvs else ''
|
||||
|
||||
|
||||
# HTML TABLE FROM GENERATED DATA ------------------------
|
||||
|
||||
|
||||
def main():
|
||||
# Number of columns and rows to generate.
|
||||
n = 3
|
||||
|
||||
# Table details -------------------------------------
|
||||
strCaption = 'Table generated with Python'
|
||||
colNames = take(n)(enumFrom('A'))
|
||||
dataRows = map(
|
||||
lambda x: (x, map(
|
||||
lambda _: random.randint(100, 9999),
|
||||
colNames
|
||||
)), take(n)(enumFrom(1)))
|
||||
tableStyle = {
|
||||
'style': "width:25%; border:2px solid silver;"
|
||||
}
|
||||
trStyle = {
|
||||
'style': "border:1px solid silver;text-align:right;"
|
||||
}
|
||||
|
||||
# TREE STRUCTURE OF TABLE ---------------------------
|
||||
tableTree = Node({'tag': 'table', 'kvs': tableStyle})([
|
||||
Node({
|
||||
'tag': 'caption',
|
||||
'text': strCaption
|
||||
})([]),
|
||||
|
||||
# HEADER ROW --------------------------------
|
||||
(Node({'tag': 'tr'})(
|
||||
Node({
|
||||
'tag': 'th',
|
||||
'kvs': {'style': 'text-align:right;'},
|
||||
'text': k
|
||||
})([]) for k in ([''] + colNames)
|
||||
))
|
||||
] +
|
||||
# DATA ROWS ---------------------------------
|
||||
list(Node({'tag': 'tr', 'kvs': trStyle})(
|
||||
[Node({'tag': 'th', 'text': tpl[0]})([])] +
|
||||
list(Node(
|
||||
{'tag': 'td', 'text': str(v)})([]) for v in tpl[1]
|
||||
)
|
||||
) for tpl in dataRows)
|
||||
)
|
||||
|
||||
print(
|
||||
treeHTML(tableTree)
|
||||
# dataRows
|
||||
)
|
||||
|
||||
|
||||
# GENERIC -----------------------------------------------
|
||||
|
||||
# Node :: a -> [Tree a] -> Tree a
|
||||
def Node(v):
|
||||
return lambda xs: {'type': 'Node', 'root': v, 'nest': xs}
|
||||
|
||||
|
||||
# enumFrom :: Enum a => a -> [a]
|
||||
def enumFrom(x):
|
||||
return itertools.count(x) if type(x) is int else (
|
||||
map(chr, itertools.count(ord(x)))
|
||||
)
|
||||
|
||||
|
||||
# foldTree :: (a -> [b] -> b) -> Tree a -> b
|
||||
def foldTree(f):
|
||||
def go(node):
|
||||
return f(node['root'])(
|
||||
list(map(go, node['nest']))
|
||||
)
|
||||
return lambda tree: go(tree)
|
||||
|
||||
|
||||
# take :: Int -> [a] -> [a]
|
||||
# take :: Int -> String -> String
|
||||
def take(n):
|
||||
return lambda xs: (
|
||||
xs[0:n]
|
||||
if isinstance(xs, list)
|
||||
else list(itertools.islice(xs, n))
|
||||
)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
27
Task/Create-an-HTML-table/Python/create-an-html-table-4.py
Normal file
27
Task/Create-an-HTML-table/Python/create-an-html-table-4.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<table style="width:25%; border:2px solid silver;">
|
||||
<caption>Table generated with Python</caption>
|
||||
<tr>
|
||||
<th style="text-align:right;"></th>
|
||||
<th style="text-align:right;">A</th>
|
||||
<th style="text-align:right;">B</th>
|
||||
<th style="text-align:right;">C</th>
|
||||
</tr>
|
||||
<tr style="border:1px solid silver;text-align:right;">
|
||||
<th>1</th>
|
||||
<td>7469</td>
|
||||
<td>7407</td>
|
||||
<td>6448</td>
|
||||
</tr>
|
||||
<tr style="border:1px solid silver;text-align:right;">
|
||||
<th>2</th>
|
||||
<td>4135</td>
|
||||
<td>3299</td>
|
||||
<td>6586</td>
|
||||
</tr>
|
||||
<tr style="border:1px solid silver;text-align:right;">
|
||||
<th>3</th>
|
||||
<td>8264</td>
|
||||
<td>6951</td>
|
||||
<td>8882</td>
|
||||
</tr>
|
||||
</table>
|
||||
Loading…
Add table
Add a link
Reference in a new issue