Добавлена глава по типам коллекций
This commit is contained in:
80
src-datatype/csv2html.py
Normal file
80
src-datatype/csv2html.py
Normal file
@@ -0,0 +1,80 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
def main():
|
||||
maxwidth = 100
|
||||
print_start()
|
||||
count = 0
|
||||
while True:
|
||||
try:
|
||||
line = input()
|
||||
if count == 0:
|
||||
color = "lightgreen"
|
||||
elif count % 2:
|
||||
color = "white"
|
||||
else:
|
||||
color = "lightyellow"
|
||||
print_line(line, color, maxwidth)
|
||||
count += 1
|
||||
except EOFError:
|
||||
break
|
||||
print_end()
|
||||
|
||||
def print_start():
|
||||
print("<table border='1'>")
|
||||
|
||||
def print_end():
|
||||
print("</table>")
|
||||
|
||||
def print_line(line, color, maxwidth):
|
||||
print("<tr bgcolor='{0}'>".format(color))
|
||||
fields = extract_fields(line)
|
||||
for field in fields:
|
||||
if not field:
|
||||
print("<td></td>")
|
||||
else:
|
||||
number = field.replace(",", "")
|
||||
try:
|
||||
x = float(number)
|
||||
print("<td align='right'>{0:d}</td>".format(round(x)))
|
||||
except ValueError:
|
||||
field = field.title()
|
||||
field = field.replace(" And ", " and ")
|
||||
field = escape_html(field)
|
||||
if len(field) <= maxwidth:
|
||||
print("<td>{0}</td>".format(field))
|
||||
else:
|
||||
print("<td>{0:.{1}} ...</td>".format(field, maxwidth))
|
||||
print("</tr>")
|
||||
|
||||
def extract_fields(line):
|
||||
fields = []
|
||||
field = ""
|
||||
quote = None
|
||||
for c in line:
|
||||
if c in "\"'":
|
||||
if quote is None: # начало строки в кавычках
|
||||
quote = c
|
||||
elif quote == c: # конец строки в кавычках
|
||||
quote = None
|
||||
else:
|
||||
field += c
|
||||
# другая кавычка внутри строки в кавычках
|
||||
continue
|
||||
if quote is None and c == ",": # end of a field
|
||||
fields.append(field)
|
||||
field = ""
|
||||
else:
|
||||
field += c
|
||||
# добавить символ в поле
|
||||
if field:
|
||||
fields.append(field) # добавить последнее поле в список
|
||||
return fields
|
||||
|
||||
def escape_html(text):
|
||||
text = text.replace("&", "&")
|
||||
text = text.replace("<", "<")
|
||||
text = text.replace(">", ">")
|
||||
return text
|
||||
|
||||
|
||||
main()
|
||||
80
src-datatype/csv2html.py~
Normal file
80
src-datatype/csv2html.py~
Normal file
@@ -0,0 +1,80 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
def main():
|
||||
maxwidth = 100
|
||||
print_start()
|
||||
count = 0
|
||||
while True:
|
||||
try:
|
||||
line = input()
|
||||
if count == 0:
|
||||
color = "lightgreen"
|
||||
elif count % 2:
|
||||
color = "white"
|
||||
else:
|
||||
color = "lightyellow"
|
||||
print_line(line, color, maxwidth)
|
||||
count += 1
|
||||
except EOFError:
|
||||
break
|
||||
print_end()
|
||||
|
||||
def print_start():
|
||||
print("<table border='1'>")
|
||||
|
||||
def print_end():
|
||||
print("</table>")
|
||||
|
||||
def print_line(line, color, maxwidth):
|
||||
print("<tr bgcolor='{0}'>".format(color))
|
||||
fields = extract_fields(line)
|
||||
for field in fields:
|
||||
if not field:
|
||||
print("<td></td>")
|
||||
else:
|
||||
number = field.replace(",", "")
|
||||
try:
|
||||
x = float(number)
|
||||
print("<td align='right'>{0:d}</td>".format(round(x)))
|
||||
except ValueError:
|
||||
field = field.title()
|
||||
field = field.replace(" And ", " and ")
|
||||
field = escape_html(field)
|
||||
if len(field) <= maxwidth:
|
||||
print("<td>{0}</td>".format(field))
|
||||
else:
|
||||
print("<td>{0:.{1}} ...</td>".format(field, maxwidth))
|
||||
print("</tr>")
|
||||
|
||||
def extract_fields(line):
|
||||
fields = []
|
||||
field = ""
|
||||
quote = None
|
||||
for c in line:
|
||||
if c in "\"'":
|
||||
if quote is None: # начало строки в кавычках
|
||||
quote = c
|
||||
elif quote == c: # конец строки в кавычках
|
||||
quote = None
|
||||
else:
|
||||
field += c
|
||||
# другая кавычка внутри строки в кавычках
|
||||
continue
|
||||
if quote is None and c == ",": # end of a field
|
||||
fields.append(field)
|
||||
field = ""
|
||||
else:
|
||||
field += c
|
||||
# добавить символ в поле
|
||||
if field:
|
||||
fields.append(field) # добавить последнее поле в список
|
||||
return fields
|
||||
|
||||
def escape_html(text):
|
||||
text = text.replace("&", "&")
|
||||
text = text.replace("<", "<")
|
||||
text = text.replace(">", ">")
|
||||
return text
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
33
src-datatype/print_unicode.py
Normal file
33
src-datatype/print_unicode.py
Normal file
@@ -0,0 +1,33 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
import unicodedata
|
||||
|
||||
def print_unicode_table(word):
|
||||
print("decimal hex chr {0:^40}".format("name"))
|
||||
print("------- ----- --- {0:-<40}".format(""))
|
||||
|
||||
code = ord(" ")
|
||||
end = sys.maxunicode
|
||||
|
||||
while code < end:
|
||||
c = chr(code)
|
||||
name = unicodedata.name(c, "*** unknown ***")
|
||||
if word is None or word in name.lower():
|
||||
print("{0:7} {0:5X} {0:^3c} {1}".format(code, name.title()))
|
||||
code += 1
|
||||
# End print_unicode_table
|
||||
|
||||
# Start main script
|
||||
word = None
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
if sys.argv[1] in ("-h", "--help"):
|
||||
print("usage: {0} [string]".format(sys.argv[0]))
|
||||
word = 0
|
||||
else:
|
||||
word = sys.argv[1].lower()
|
||||
|
||||
if word != 0:
|
||||
print_unicode_table(word)
|
||||
|
||||
#End main script
|
||||
30
src-datatype/print_unicode.py~
Normal file
30
src-datatype/print_unicode.py~
Normal file
@@ -0,0 +1,30 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
import unicodedata
|
||||
|
||||
def print_unicode_table(word):
|
||||
print("decimal hex chr {0:^40}".format("name"))
|
||||
print("------- ----- --- {0:-<40}".format(""))
|
||||
|
||||
code = ord(" ")
|
||||
end = sys.maxunicode
|
||||
|
||||
while code < end:
|
||||
c = chr(code)
|
||||
name = unicodedata.name(c, "*** unknown ***")
|
||||
if word is None or word in name.lower():
|
||||
print("{0:7} {0:5X} {0:^3c} {1}".format(code, name.title()))
|
||||
code += 1
|
||||
|
||||
|
||||
word = None
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
if sys.argv[1] in ("-h", "--help"):
|
||||
print("usage: {0} [string]".format(sys.argv[0]))
|
||||
word = 0
|
||||
else:
|
||||
word = sys.argv[1].lower()
|
||||
|
||||
if word != 0:
|
||||
print_unicode_table(word)
|
||||
@@ -18,6 +18,7 @@ def get_float(msg, allow_zero):
|
||||
return x
|
||||
# End get_float
|
||||
|
||||
|
||||
# Start 1st block
|
||||
print("ax\N{SUPERSCRIPT TWO} + bx + c = 0")
|
||||
a = get_float("enter a: ", False)
|
||||
@@ -34,7 +35,7 @@ if discriminant == 0:
|
||||
else:
|
||||
if discriminant > 0:
|
||||
root = math.sqrt(discriminant)
|
||||
else: # discriminant < 0
|
||||
else: # discriminant < 0
|
||||
root = cmath.sqrt(discriminant)
|
||||
x1 = (-b + root) / (2 * a)
|
||||
x2 = (-b - root) / (2 * a)
|
||||
|
||||
49
src-datatype/quadratic.py~
Normal file
49
src-datatype/quadratic.py~
Normal file
@@ -0,0 +1,49 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import cmath
|
||||
import math
|
||||
import sys
|
||||
|
||||
# Start get_float
|
||||
def get_float(msg, allow_zero):
|
||||
x = None
|
||||
while x is None:
|
||||
try:
|
||||
x = float(input(msg))
|
||||
if not allow_zero and abs(x) < sys.float_info.epsilon:
|
||||
print("zero is not allowed")
|
||||
x = None
|
||||
|
||||
except ValueError as err:
|
||||
print(err)
|
||||
return x
|
||||
# End get_float
|
||||
|
||||
# Start 1st block
|
||||
print("ax\N{SUPERSCRIPT TWO} + bx + c = 0")
|
||||
a = get_float("enter a: ", False)
|
||||
b = get_float("enter b: ", False)
|
||||
c = get_float("enter c: ", False)
|
||||
# End 1st block
|
||||
|
||||
# Start 2d block
|
||||
x1 = None
|
||||
x2 = None
|
||||
discriminant = (b ** 2) - (4 * a * c)
|
||||
if discriminant == 0:
|
||||
x1 = -(b / (2 * a))
|
||||
else:
|
||||
if discriminant > 0:
|
||||
root = math.sqrt(discriminant)
|
||||
else: # discriminant < 0
|
||||
root = cmath.sqrt(discriminant)
|
||||
x1 = (-b + root) / (2 * a)
|
||||
x2 = (-b - root) / (2 * a)
|
||||
# End 2d block
|
||||
|
||||
# Start 3d block
|
||||
equation = ("{0}x\N{SUPERSCRIPT TWO} + {1}x + {2} = 0"
|
||||
" \N{RIGHTWARDS ARROW} x = {3}").format(a, b, c, x1)
|
||||
if x2 is not None:
|
||||
equation += " or x = {0}".format(x2)
|
||||
print(equation)
|
||||
# End 3d block
|
||||
5
src-datatype/sample.csv
Normal file
5
src-datatype/sample.csv
Normal file
@@ -0,0 +1,5 @@
|
||||
"COUNTRY",2000,2001,2002,2003,2004
|
||||
"ANTIGUA AND BARBUDA",0,0,0,0,0
|
||||
"ARGENTINA",37,35,33,36,39
|
||||
"BAHAMAS, THE",1,1,1,1,1
|
||||
"BAHRAIN",5,6,6,6,6
|
||||
|
5
src-datatype/sample.csv~
Normal file
5
src-datatype/sample.csv~
Normal file
@@ -0,0 +1,5 @@
|
||||
"COUNTRY",2000,2001,2002,2003,2004
|
||||
"ANTIGUA AND BARBUDA",0,0,0,0,0
|
||||
"ARGENTINA",37,35,33,36,39
|
||||
"BAHAMAS, THE",1,1,1,1,1
|
||||
"BAHRAIN",5,6,6,6,6
|
||||
42
src-datatype/sample.html
Normal file
42
src-datatype/sample.html
Normal file
@@ -0,0 +1,42 @@
|
||||
<table border='1'>
|
||||
<tr bgcolor='lightgreen'>
|
||||
<td>"Country"</td>
|
||||
<td align='right'>2000</td>
|
||||
<td align='right'>2001</td>
|
||||
<td align='right'>2002</td>
|
||||
<td align='right'>2003</td>
|
||||
<td align='right'>2004</td>
|
||||
</tr>
|
||||
<tr bgcolor='white'>
|
||||
<td>"Antigua and Barbuda"</td>
|
||||
<td align='right'>0</td>
|
||||
<td align='right'>0</td>
|
||||
<td align='right'>0</td>
|
||||
<td align='right'>0</td>
|
||||
<td align='right'>0</td>
|
||||
</tr>
|
||||
<tr bgcolor='lightyellow'>
|
||||
<td>"Argentina"</td>
|
||||
<td align='right'>37</td>
|
||||
<td align='right'>35</td>
|
||||
<td align='right'>33</td>
|
||||
<td align='right'>36</td>
|
||||
<td align='right'>39</td>
|
||||
</tr>
|
||||
<tr bgcolor='white'>
|
||||
<td>"Bahamas, The"</td>
|
||||
<td align='right'>1</td>
|
||||
<td align='right'>1</td>
|
||||
<td align='right'>1</td>
|
||||
<td align='right'>1</td>
|
||||
<td align='right'>1</td>
|
||||
</tr>
|
||||
<tr bgcolor='lightyellow'>
|
||||
<td>"Bahrain"</td>
|
||||
<td align='right'>5</td>
|
||||
<td align='right'>6</td>
|
||||
<td align='right'>6</td>
|
||||
<td align='right'>6</td>
|
||||
<td align='right'>6</td>
|
||||
</tr>
|
||||
</table>
|
||||
42
src-datatype/sample.html~
Normal file
42
src-datatype/sample.html~
Normal file
@@ -0,0 +1,42 @@
|
||||
<table border='1'>
|
||||
<tr bgcolor='lightgreen'>
|
||||
<td>"Country"</td>
|
||||
<td align='right'>2000</td>
|
||||
<td align='right'>2001</td>
|
||||
<td align='right'>2002</td>
|
||||
<td align='right'>2003</td>
|
||||
<td align='right'>2004</td>
|
||||
</tr>
|
||||
<tr bgcolor='white'>
|
||||
<td>"Antigua and Barbuda"</td>
|
||||
<td align='right'>0</td>
|
||||
<td align='right'>0</td>
|
||||
<td align='right'>0</td>
|
||||
<td align='right'>0</td>
|
||||
<td align='right'>0</td>
|
||||
</tr>
|
||||
<tr bgcolor='lightyellow'>
|
||||
<td>"Argentina"</td>
|
||||
<td align='right'>37</td>
|
||||
<td align='right'>35</td>
|
||||
<td align='right'>33</td>
|
||||
<td align='right'>36</td>
|
||||
<td align='right'>39</td>
|
||||
</tr>
|
||||
<tr bgcolor='white'>
|
||||
<td>"Bahamas, The"</td>
|
||||
<td align='right'>1</td>
|
||||
<td align='right'>1</td>
|
||||
<td align='right'>1</td>
|
||||
<td align='right'>1</td>
|
||||
<td align='right'>1</td>
|
||||
</tr>
|
||||
<tr bgcolor='lightyellow'>
|
||||
<td>"Bahrain"</td>
|
||||
<td align='right'>5</td>
|
||||
<td align='right'>6</td>
|
||||
<td align='right'>6</td>
|
||||
<td align='right'>6</td>
|
||||
<td align='right'>6</td>
|
||||
</tr>
|
||||
</table>
|
||||
Reference in New Issue
Block a user