feat: Initial commit

This commit is contained in:
2024-03-22 17:01:42 +01:00
parent 954985f39a
commit c343ff6e93
106 changed files with 143428 additions and 1 deletions

2
.gitignore vendored
View File

@@ -158,5 +158,5 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
.idea/

View File

@@ -0,0 +1,11 @@
anno=0
somma=float(input("Inserisci il saldo iniziale: "))
tasso=float(input("Inserisci il tasso di interesse: "))
saldo = somma
while saldo < 2*somma:
anno += 1
saldo *= (1+tasso)
print("Il tuo capitale raddoppierà in ", anno, " anni")

16
Cicli/media.py Normal file
View File

@@ -0,0 +1,16 @@
somma = 0
conto = 0
while True:
uinput = float(input("Voto da inserire: "))
if uinput == -1:
break
if uinput <= 20:
somma += uinput
conto += 1
if conto != 0:
print("La media è: ", somma/conto)

View File

@@ -0,0 +1,102 @@
from typing import cast
def loadFile(filename: str):
in_file = open(filename, "r")
items = {}
for item in in_file:
ispl = item.split()
iname = ispl[0].strip()
cost = float(ispl[1])
count = int(ispl[2])
items[iname] = [cost, count]
in_file.close()
return items
def saveFile(filename: str, items: dict):
out_file = open(filename, "w")
for key in items:
out_file.write(key + "\t" + str(items[key][0]) + "\t" + str(items[key][1]) + "\n")
out_file.close()
def handleCommand(items: dict):
command = input("Inserisci un comando: ")
if command == "XXXXXX":
return False
command = command.split()
if len(command) != 2:
print("Comando non valido!")
return True
key = command[0]
op = command[1][0]
try:
delta = int(command[1][1:])
except ValueError:
print("Valore numerico non valido")
return True
if key not in items:
print("Il prodotto non è presente nel database!")
return True
if op != "+" and op != "-":
print("Operazione non valida")
return True
oldVal = items[key][1]
if op == "+":
newVal = oldVal + delta
if newVal > 10000:
print("Quantità di prodotto superiore al valore massimo")
return True
items[key][1] = newVal
print("Incrementa la quantità di prodotto", key, "di", delta)
else:
newVal = oldVal - delta
if newVal < 0:
print("Quantità di prodotto non disponibile")
return True
items[key][1] = newVal
print("Decrementa la quantità di prodotto", key, "di", delta)
print("Valore complessivo precedente:", oldVal)
print("Valore complessivo attuale", newVal)
return True
def main():
in_file_name = input("Inserisci il nome del vecchio file: ")
try:
items = loadFile(in_file_name)
except FileNotFoundError:
exit("Errore! File di input non trovato")
except:
exit("File di input malformato!")
while handleCommand(items):
pass
out_file_name = input("Inserisci il nome del nuovo file: ")
try:
saveFile(out_file_name, items)
except FileNotFoundError:
exit("Errore! File di output non trovato")
main()

View File

@@ -0,0 +1,5 @@
ABCD306AZN 20.0 80
AZBF39829B 2.0 1000
AB302EFA 5.0 400
DSKJH34998 0.01 4000
FER3942DDDF 0.5 1000

View File

@@ -0,0 +1,5 @@
ABCD306AZN 20.00 80
AZBF39829B 2.00 1200
AB302EFA 5.00 400
DSKJH34998 0.01 4000
FER3942DDDF 0.5 1000

View File

@@ -0,0 +1 @@
... .. ... .- .-.. ...- .. -.-. .... .. .--. ..- --- -.--.-

View File

@@ -0,0 +1,37 @@
def loadMorse(filename: str, to_ascii: bool):
fio = open(filename, "r")
conv_table = {}
for line in fio:
line = line.split()
if to_ascii:
conv_table[line[1].upper()] = line[0]
else:
conv_table[line[0]] = line[1].upper()
conv_table[" "] = " "
return conv_table
def main():
to_ascii = input("Vuoi decodificare un file? ") == "si"
in_file = input("Inserisci il nome del file: ")
conv_table = loadMorse("morse.txt", to_ascii)
with open(in_file, "r") as fio:
in_str = fio.readline()
if to_ascii:
for char in in_str.split():
print(conv_table[char], end="")
else:
in_str = list(in_str.upper())
for char in in_str:
print(conv_table[char], end=" ")
main()

View File

@@ -0,0 +1,44 @@
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
, --..--
: ---...
; -.-.-.
. .-.-.-
" .-..-.
( -----.
) .-----
' -.--.-
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
0 -----

View File

@@ -0,0 +1 @@
Si salvi chi puo' forza e coraggio

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
import csv
with open("20201214_QDV2020_001.csv") as csv_file:
csv_reader = csv.reader(csv_file)
line_count = 0
rows = []
indc = set()
for row in csv_reader:
if line_count == 0:
print(f'Column names are {", ".join(row)}')
line_count += 1
else:
row_a = {"provincia": row[0], "valore": row[4], "indicatore": row[5]}
indc.add(row[5])
rows.append(row_a)
indc = list(indc)
print("Indicatori della qualità della vita:")
for i in range(len(indc)):
print(str(i+1) + ".", indc[i])
while True:
indic = input("Inserisci l'indicatore: ")
if indic == "quit":
break
indic = indc[int(indic)]
rows_filtered = {}
for r in rows:
if r["indicatore"] == indic

3
Laboratorio10/aaa.txt Normal file
View File

@@ -0,0 +1,3 @@
lord of the strings
sas
ring 0

View File

@@ -0,0 +1,14 @@
from os import close
fin = open("input.txt", "r")
fout = open("output.txt", "w")
c = 1
for l in fin:
fout.write("/*"+str(c)+"*/"+l)
c += 1
fin.close()
fout.close()

31
Laboratorio10/find.py Normal file
View File

@@ -0,0 +1,31 @@
class color:
PURPLE = '\033[95m'
CYAN = '\033[96m'
DARKCYAN = '\033[36m'
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
END = '\033[0m'
def main():
files = input("Insert filenames separated by whitespaces: ").strip().split()
keyword = input("Insert keyword: ")
for file in files:
try:
fio = open(file, "r")
except FileNotFoundError:
print("File", file, "not found")
continue
for line in fio:
if keyword in line.lower():
print(file + ":", line.removesuffix("\n").replace(keyword, color.GREEN + color.BOLD + keyword + color.END))
fio.close()
main()

5
Laboratorio10/input.txt Normal file
View File

@@ -0,0 +1,5 @@
Enola Gay
è il bombardiere che il 6 agosto 1945,
sganciò su Hiroshima la prima bomba atomica
soprannominata Little Boy.
rings of the rings

View File

@@ -0,0 +1,14 @@
from os import close
fin = open("input.txt", "r")
fout = open("output.txt", "w")
lines = reversed(fin.readlines())
fin.close()
for l in lines:
fout.write(l.strip() + "\n")
fout.close()

4
Laboratorio10/output.txt Normal file
View File

@@ -0,0 +1,4 @@
soprannominata Little Boy.
sganciò su Hiroshima la prima bomba atomica
è il bombardiere che il 6 agosto 1945,
Enola Gay

30
Laboratorio10/vendite.py Normal file
View File

@@ -0,0 +1,30 @@
from sys import exit
def main():
try:
fio = open("vendite.txt", "r")
except FileNotFoundError:
exit("File not found")
datas = {}
for line in fio:
data = line.split(";")
if len(data) != 4:
exit("Invalid line: " + line)
service = data[1].strip()
cost = float(data[2].strip())
if service not in datas:
datas[service] = 0
datas[service] += cost
for key in datas:
print(key + ":", datas[key])
fio.close()
main()

View File

@@ -0,0 +1,4 @@
aaa;cena;22;sus
bbb;pranzo;40;assa
ccc;hotel;22;sdasd
ddd;hotel;66s;sas

View File

@@ -0,0 +1,3 @@
sesso
droga
C++

27
Laboratorio11/censore.py Normal file
View File

@@ -0,0 +1,27 @@
def readBadWords(filename: str):
fio = open(filename, "r")
bad_words = set()
for line in fio:
bad_words.add(line.strip())
fio.close()
return bad_words
def main():
bad_words = readBadWords("bad_words.txt")
fio = open("input.txt", "r")
fout = open("output.txt", "w")
for line in fio:
for wrd in bad_words:
line = line.replace(wrd, "*"*len(wrd))
fout.write(line)
fio.close()
fout.close()
main()

View File

@@ -0,0 +1,32 @@
from string import printable
def main():
a = list(input("Prima stringa: "))
b = list(input("Seconda stringa: "))
both = set()
ina = set()
inb = set()
nowhere = set()
for char in printable:
ia = char in a
iab = char in b
if ia and iab:
both.add(char)
elif ia:
ina.add(char)
elif iab:
inb.add(char)
else:
nowhere.add(char)
print(both)
print(ina)
print(inb)
print(nowhere)
main()

View File

@@ -0,0 +1,40 @@
def clean(word: str):
a = len(word)
while True:
word = word.strip("()[]{}!?.,<>:;-_`")
if a == len(word):
break
a = len(word)
return word
def main():
filename = input("Inserisci il nome del file: ")
fio = open(filename, "r")
words = {}
for line in fio:
for word in line.split():
word = clean(word)
if word not in words:
words[word] = 1
else:
words[word] += 1
fio.close()
vals = sorted(words.values(), reverse=True)
for i in range(0, 100):
for word in words:
if words[word] == vals[i]:
print(word, end=" ")
words.pop(word)
break
print()
main()

229
Laboratorio11/export.csv Normal file
View File

@@ -0,0 +1,229 @@
name,slug,value,date_of_information,ranking,region
"Liechtenstein","liechtenstein","$139,100","2009 est.","1","Europe"
"Monaco","monaco","$115,700","2015 est.","2","Europe"
"Luxembourg","luxembourg","$110,300","2020 est.","3","Europe"
"Singapore","singapore","$93,400","2020 est.","4","East Asia/Southeast Asia"
"Ireland","ireland","$89,700","2020 est.","5","Europe"
"Qatar","qatar","$85,300","2020 est.","6","Middle East"
"Isle of Man","isle-of-man","$84,600","2014 est.","7","Europe"
"Bermuda","bermuda","$81,800","2019 est.","8","North America"
"Cayman Islands","cayman-islands","$73,600","2019 est.","9","Central America"
"Falkland Islands (Islas Malvinas)","falkland-islands-islas-malvinas","$70,800","2015 est.","10","South America"
"Switzerland","switzerland","$68,400","2020 est.","11","Europe"
"United Arab Emirates","united-arab-emirates","$67,100","2019 est.","12","Middle East"
"Norway","norway","$63,600","2020 est.","13","Europe"
"Brunei","brunei","$62,200","2020 est.","14","East Asia/Southeast Asia"
"Gibraltar","gibraltar","$61,700","2014 est.","15","Europe"
"San Marino","san-marino","$60,800","2019 est.","16","Europe"
"United States","united-states","$60,200","2020 est.","17","North America"
"Jersey","jersey","$56,600","2016 est.","18","Europe"
"Hong Kong","hong-kong","$56,200","2020 est.","19","East Asia/Southeast Asia"
"Denmark","denmark","$55,900","2020 est.","20","Europe"
"Macau","macau","$54,800","2020 est.","21","East Asia/Southeast Asia"
"Netherlands","netherlands","$54,200","2020 est.","22","Europe"
"Guernsey","guernsey","$52,500","2014 est.","23","Europe"
"Iceland","iceland","$52,300","2020 est.","24","Europe"
"Austria","austria","$51,900","2020 est.","25","Europe"
"Germany","germany","$50,900","2020 est.","26","Europe"
"Sweden","sweden","$50,700","2020 est.","27","Europe"
"Andorra","andorra","$49,900","2015 est.","28","Europe"
"Kuwait","kuwait","$49,900","2019 est.","29","Middle East"
"Australia","australia","$48,700","2020 est.","30","Australia - Oceania"
"Belgium","belgium","$48,200","2020 est.","31","Europe"
"Finland","finland","$47,300","2020 est.","32","Europe"
"Saint Pierre and Miquelon","saint-pierre-and-miquelon-2","$46,200","2006 est.","33","North America"
"Canada","canada","$45,900","2020 est.","34","North America"
"Saudi Arabia","saudi-arabia","$44,300","2020 est.","35","Middle East"
"New Zealand","new-zealand","$42,400","2020 est.","36","Australia - Oceania"
"Korea, South","korea-south","$42,300","2020 est.","37","East Asia/Southeast Asia"
"France","france","$42,000","2020 est.","38","Europe"
"Greenland","greenland","$41,800","2015 est.","39","North America"
"United Kingdom","united-kingdom","$41,600","2020 est.","40","Europe"
"Japan","japan","$41,400","2019 est.","41","East Asia/Southeast Asia"
"Bahrain","bahrain","$40,900","2020 est.","42","Middle East"
"Faroe Islands","faroe-islands","$40,000","2014 est.","43","Europe"
"Malta","malta","$39,200","2020 est.","44","Europe"
"Italy","italy","$39,000","2020 est.","45","Europe"
"Czechia","czechia","$38,300","2020 est.","46","Europe"
"Israel","israel","$38,300","2020 est.","47","Middle East"
"Cyprus","cyprus","$37,700","2020 est.","48","Europe"
"Aruba","aruba","$37,500","2017 est.","49","Central America"
"Virgin Islands","virgin-islands","$37,000","2016 est.","50","Central America"
"Lithuania","lithuania","$36,700","2020 est.","51","Europe"
"Slovenia","slovenia","$36,500","2020 est.","52","Europe"
"Spain","spain","$36,200","2020 est.","53","Europe"
"Estonia","estonia","$35,600","2020 est.","54","Europe"
"Guam","guam","$35,600","2016 est.","55","Australia - Oceania"
"Sint Maarten","sint-maarten","$35,300","2018 est.","56","Central America"
"British Virgin Islands","british-virgin-islands","$34,200","2017 est.","57","Central America"
"Montserrat","montserrat","$34,000","2011 est.","58","Central America"
"Puerto Rico","puerto-rico","$33,400","2020 est.","59","Central America"
"Poland","poland","$32,200","2020 est.","60","Europe"
"Portugal","portugal","$32,200","2020 est.","61","Europe"
"New Caledonia","new-caledonia","$31,100","2015 est.","62","Australia - Oceania"
"Hungary","hungary","$31,000","2020 est.","63","Europe"
"Bahamas, The","bahamas-the","$30,800","2020 est.","64","Central America"
"Slovakia","slovakia","$30,300","2020 est.","65","Europe"
"Latvia","latvia","$29,900","2020 est.","66","Europe"
"Romania","romania","$28,800","2020 est.","67","Europe"
"Turkey","turkey","$28,400","2020 est.","68","Middle East"
"Greece","greece","$27,300","2020 est.","69","Europe"
"Oman","oman","$27,300","2019 est.","70","Middle East"
"Croatia","croatia","$26,500","2020 est.","71","Europe"
"Russia","russia","$26,500","2020 est.","72","Central Asia"
"Malaysia","malaysia","$26,400","2020 est.","73","East Asia/Southeast Asia"
"Panama","panama","$25,400","2020 est.","74","Central America"
"Kazakhstan","kazakhstan","$25,300","2020 est.","75","Central Asia"
"Taiwan","taiwan","$24,502","2018 est.","76","East Asia/Southeast Asia"
"Curacao","curacao","$24,500","2019 est.","77","Central America"
"Northern Mariana Islands","northern-mariana-islands","$24,500","2016 est.","78","Australia - Oceania"
"Seychelles","seychelles","$24,400","2020 est.","79","Africa"
"Trinidad and Tobago","trinidad-and-tobago","$23,700","2020 est.","80","Central America"
"Chile","chile","$23,300","2020 est.","81","South America"
"Saint Kitts and Nevis","saint-kitts-and-nevis","$23,300","2020 est.","82","Central America"
"Bulgaria","bulgaria","$22,400","2020 est.","83","Europe"
"Uruguay","uruguay","$21,600","2020 est.","84","South America"
"Turks and Caicos Islands","turks-and-caicos-islands","$21,100","2020 est.","85","Central America"
"Argentina","argentina","$19,700","2020 est.","86","South America"
"Costa Rica","costa-rica","$19,700","2020 est.","87","Central America"
"Mauritius","mauritius","$19,500","2020 est.","88","Africa"
"Saint Martin","saint-martin","$19,300","2005 est.","89","Central America"
"Belarus","belarus","$19,100","2020 est.","90","Europe"
"Guyana","guyana","$18,700","2020 est.","91","South America"
"Montenegro","montenegro","$18,300","2020 est.","92","Europe"
"Serbia","serbia","$18,200","2020 est.","93","Europe"
"Antigua and Barbuda","antigua-and-barbuda","$18,000","2020 est.","94","Central America"
"Mexico","mexico","$17,900","2020 est.","95","North America"
"Palau","palau","$17,600","2019 est.","96","Australia - Oceania"
"Thailand","thailand","$17,300","2020 est.","97","East Asia/Southeast Asia"
"Dominican Republic","dominican-republic","$17,000","2020 est.","98","Central America"
"Equatorial Guinea","equatorial-guinea","$17,000","2020 est.","99","Africa"
"French Polynesia","french-polynesia","$17,000","2015 est.","100","Australia - Oceania"
"Cook Islands","cook-islands","$16,700","2016 est.","101","Australia - Oceania"
"China","china","$16,400","2020 est.","102","East Asia/Southeast Asia"
"Suriname","suriname","$16,100","2020 est.","103","South America"
"Botswana","botswana","$16,000","2020 est.","104","Africa"
"Turkmenistan","turkmenistan","$15,500","2019 est.","106","Central Asia"
"Grenada","grenada","$15,100","2020 est.","107","Central America"
"Gabon","gabon","$14,400","2020 est.","108","Africa"
"Bosnia and Herzegovina","bosnia-and-herzegovina","$14,300","2020 est.","109","Europe"
"Brazil","brazil","$14,100","2020 est.","110","South America"
"Georgia","georgia","$14,100","2020 est.","111","Middle East"
"Azerbaijan","azerbaijan","$13,700","2020 est.","112","Middle East"
"Nauru","nauru","$13,500","2019 est.","113","Australia - Oceania"
"Colombia","colombia","$13,400","2020 est.","114","South America"
"Albania","albania","$13,300","2020 est.","115","Europe"
"Maldives","maldives","$13,000","2020 est.","116","South Asia"
"Barbados","barbados","$12,900","2020 est.","117","Central America"
"Armenia","armenia","$12,600","2020 est.","118","Middle East"
"Sri Lanka","sri-lanka","$12,500","2020 est.","119","South Asia"
"Iran","iran","$12,400","2020 est.","120","Middle East"
"Ukraine","ukraine","$12,400","2020 est.","121","Europe"
"Cuba","cuba","$12,300","2016 est.","122","Central America"
"Moldova","moldova","$12,300","2020 est.","123","Europe"
"Paraguay","paraguay","$12,300","2020 est.","124","South America"
"Saint Lucia","saint-lucia","$12,300","2020 est.","125","Central America"
"Anguilla","anguilla","$12,200","2008 est.","126","Central America"
"Saint Vincent and the Grenadines","saint-vincent-and-the-grenadines","$12,100","2020 est.","127","Central America"
"Egypt","egypt","$12,000","2020 est.","128","Africa"
"Lebanon","lebanon","$11,600","2020 est.","129","Middle East"
"Mongolia","mongolia","$11,500","2020 est.","130","East Asia/Southeast Asia"
"South Africa","south-africa","$11,500","2020 est.","131","Africa"
"Indonesia","indonesia","$11,400","2020 est.","132","East Asia/Southeast Asia"
"Peru","peru","$11,300","2020 est.","133","South America"
"American Samoa","american-samoa","$11,200","2016 est.","134","Australia - Oceania"
"Fiji","fiji","$11,000","2020 est.","135","Australia - Oceania"
"Bhutan","bhutan","$10,900","2020 est.","136","South Asia"
"Kosovo","kosovo","$10,800","2020 est.","137","Europe"
"Algeria","algeria","$10,700","2020 est.","138","Africa"
"Ecuador","ecuador","$10,300","2020 est.","139","South America"
"Libya","libya","$10,300","2020 est.","140","Africa"
"Dominica","dominica","$9,900","2020 est.","141","Central America"
"Jordan","jordan","$9,800","2020 est.","142","Middle East"
"Tunisia","tunisia","$9,700","2020 est.","143","Africa"
"Iraq","iraq","$9,300","2020 est.","144","Middle East"
"Namibia","namibia","$8,900","2020 est.","145","Africa"
"Jamaica","jamaica","$8,700","2020 est.","146","Central America"
"Eswatini","eswatini","$8,400","2020 est.","147","Africa"
"Guatemala","guatemala","$8,400","2020 est.","148","Central America"
"Vietnam","vietnam","$8,200","2020 est.","149","East Asia/Southeast Asia"
"El Salvador","el-salvador","$8,100","2020 est.","150","Central America"
"Philippines","philippines","$8,000","2020 est.","151","East Asia/Southeast Asia"
"Bolivia","bolivia","$7,900","2020 est.","152","South America"
"Laos","laos","$7,800","2020 est.","153","East Asia/Southeast Asia"
"Saint Helena, Ascension, and Tristan da Cunha","saint-helena-ascension-and-tristan-da-cunha","$7,800","FY09/10 est.","154","Africa"
"Venezuela","venezuela","$7,704","2018 est.","155","South America"
"Uzbekistan","uzbekistan","$7,000","2020 est.","156","Central Asia"
"Morocco","morocco","$6,900","2020 est.","157","Africa"
"Tonga","tonga","$6,400","2019 est.","158","Australia - Oceania"
"Samoa","samoa","$6,300","2020 est.","159","Australia - Oceania"
"Gaza Strip","gaza-strip","$6,220","2019 est.","160","Middle East"
"Angola","angola","$6,200","2020 est.","161","Africa"
"Belize","belize","$6,100","2020 est.","162","Central America"
"India","india","$6,100","2020 est.","163","South Asia"
"Tokelau","tokelau","$6,004","2017 est.","164","Australia - Oceania"
"Cabo Verde","cabo-verde","$6,000","2020 est.","165","Africa"
"Niue","niue","$5,800","2003 est.","166","Australia - Oceania"
"Djibouti","djibouti","$5,500","2020 est.","167","Africa"
"West Bank","west-bank","$5,400","2020 est.","168","Middle East"
"Ghana","ghana","$5,300","2020 est.","169","Africa"
"Nicaragua","nicaragua","$5,300","2020 est.","170","Central America"
"Cote d'Ivoire","cote-divoire","$5,200","2020 est.","171","Africa"
"Honduras","honduras","$5,100","2020 est.","172","Central America"
"Mauritania","mauritania","$5,000","2020 est.","173","Africa"
"Nigeria","nigeria","$4,900","2020 est.","174","Africa"
"Bangladesh","bangladesh","$4,800","2020 est.","175","South Asia"
"Kyrgyzstan","kyrgyzstan","$4,700","2020 est.","176","Central Asia"
"Pakistan","pakistan","$4,600","2020 est.","177","South Asia"
"Burma","burma","$4,500","2020 est.","178","East Asia/Southeast Asia"
"Tuvalu","tuvalu","$4,400","2020 est.","179","Australia - Oceania"
"Cambodia","cambodia","$4,200","2020 est.","180","East Asia/Southeast Asia"
"Kenya","kenya","$4,200","2020 est.","181","Africa"
"Papua New Guinea","papua-new-guinea","$4,100","2020 est.","182","East Asia/Southeast Asia"
"Sao Tome and Principe","sao-tome-and-principe","$4,100","2020 est.","183","Africa"
"Marshall Islands","marshall-islands","$4,000","2019 est.","184","Australia - Oceania"
"Sudan","sudan","$4,000","2020 est.","185","Africa"
"Nepal","nepal","$3,800","2020 est.","186","South Asia"
"Wallis and Futuna","wallis-and-futuna","$3,800","2004 est.","187","Australia - Oceania"
"Tajikistan","tajikistan","$3,700","2020 est.","188","Central Asia"
"Cameroon","cameroon","$3,600","2020 est.","189","Africa"
"Micronesia, Federated States of","micronesia-federated-states-of","$3,500","2019 est.","190","Australia - Oceania"
"Congo, Republic of the","congo-republic-of-the","$3,400","2020 est.","191","Africa"
"Benin","benin","$3,300","2020 est.","192","Africa"
"Senegal","senegal","$3,300","2020 est.","193","Africa"
"Zambia","zambia","$3,300","2020 est.","194","Africa"
"Timor-Leste","timor-leste","$3,200","2020 est.","195","East Asia/Southeast Asia"
"Comoros","comoros","$3,100","2020 est.","196","Africa"
"Syria","syria","$2,900","2015 est.","197","Middle East"
"Haiti","haiti","$2,800","2020 est.","198","Central America"
"Vanuatu","vanuatu","$2,800","2020 est.","199","Australia - Oceania"
"Guinea","guinea","$2,700","2020 est.","200","Africa"
"Zimbabwe","zimbabwe","$2,700","2020 est.","201","Africa"
"Tanzania","tanzania","$2,600","2020 est.","202","Africa"
"Solomon Islands","solomon-islands","$2,500","2020 est.","203","Australia - Oceania"
"Yemen","yemen","$2,500","2017 est.","204","Middle East"
"Ethiopia","ethiopia","$2,300","2020 est.","205","Africa"
"Kiribati","kiribati","$2,300","2020 est.","206","Australia - Oceania"
"Lesotho","lesotho","$2,300","2020 est.","207","Africa"
"Burkina Faso","burkina-faso","$2,200","2020 est.","208","Africa"
"Gambia, The","gambia-the","$2,200","2020 est.","209","Africa"
"Mali","mali","$2,200","2020 est.","210","Africa"
"Uganda","uganda","$2,200","2020 est.","211","Africa"
"Rwanda","rwanda","$2,100","2020 est.","212","Africa"
"Togo","togo","$2,100","2020 est.","213","Africa"
"Afghanistan","afghanistan","$2,000","2020 est.","214","South Asia"
"Guinea-Bissau","guinea-bissau","$1,800","2020 est.","215","Africa"
"Korea, North","korea-north","$1,700","2015 est.","216","East Asia/Southeast Asia"
"Eritrea","eritrea","$1,600","2017 est.","217","Africa"
"Sierra Leone","sierra-leone","$1,600","2020 est.","218","Africa"
"South Sudan","south-sudan","$1,600","2017 est.","219","Africa"
"Chad","chad","$1,500","2020 est.","220","Africa"
"Madagascar","madagascar","$1,500","2020 est.","221","Africa"
"Malawi","malawi","$1,500","2020 est.","222","Africa"
"Liberia","liberia","$1,400","2020 est.","223","Africa"
"Mozambique","mozambique","$1,200","2020 est.","224","Africa"
"Niger","niger","$1,200","2020 est.","225","Africa"
"Congo, Democratic Republic of the","congo-democratic-republic-of-the","$1,100","2020 est.","226","Africa"
"Central African Republic","central-african-republic","$900","2020 est.","227","Africa"
"Somalia","somalia","$800","2020 est.","228","Africa"
"Burundi","burundi","$700","2020 est.","229","Africa"
1 name slug value date_of_information ranking region
2 Liechtenstein liechtenstein $139,100 2009 est. 1 Europe
3 Monaco monaco $115,700 2015 est. 2 Europe
4 Luxembourg luxembourg $110,300 2020 est. 3 Europe
5 Singapore singapore $93,400 2020 est. 4 East Asia/Southeast Asia
6 Ireland ireland $89,700 2020 est. 5 Europe
7 Qatar qatar $85,300 2020 est. 6 Middle East
8 Isle of Man isle-of-man $84,600 2014 est. 7 Europe
9 Bermuda bermuda $81,800 2019 est. 8 North America
10 Cayman Islands cayman-islands $73,600 2019 est. 9 Central America
11 Falkland Islands (Islas Malvinas) falkland-islands-islas-malvinas $70,800 2015 est. 10 South America
12 Switzerland switzerland $68,400 2020 est. 11 Europe
13 United Arab Emirates united-arab-emirates $67,100 2019 est. 12 Middle East
14 Norway norway $63,600 2020 est. 13 Europe
15 Brunei brunei $62,200 2020 est. 14 East Asia/Southeast Asia
16 Gibraltar gibraltar $61,700 2014 est. 15 Europe
17 San Marino san-marino $60,800 2019 est. 16 Europe
18 United States united-states $60,200 2020 est. 17 North America
19 Jersey jersey $56,600 2016 est. 18 Europe
20 Hong Kong hong-kong $56,200 2020 est. 19 East Asia/Southeast Asia
21 Denmark denmark $55,900 2020 est. 20 Europe
22 Macau macau $54,800 2020 est. 21 East Asia/Southeast Asia
23 Netherlands netherlands $54,200 2020 est. 22 Europe
24 Guernsey guernsey $52,500 2014 est. 23 Europe
25 Iceland iceland $52,300 2020 est. 24 Europe
26 Austria austria $51,900 2020 est. 25 Europe
27 Germany germany $50,900 2020 est. 26 Europe
28 Sweden sweden $50,700 2020 est. 27 Europe
29 Andorra andorra $49,900 2015 est. 28 Europe
30 Kuwait kuwait $49,900 2019 est. 29 Middle East
31 Australia australia $48,700 2020 est. 30 Australia - Oceania
32 Belgium belgium $48,200 2020 est. 31 Europe
33 Finland finland $47,300 2020 est. 32 Europe
34 Saint Pierre and Miquelon saint-pierre-and-miquelon-2 $46,200 2006 est. 33 North America
35 Canada canada $45,900 2020 est. 34 North America
36 Saudi Arabia saudi-arabia $44,300 2020 est. 35 Middle East
37 New Zealand new-zealand $42,400 2020 est. 36 Australia - Oceania
38 Korea, South korea-south $42,300 2020 est. 37 East Asia/Southeast Asia
39 France france $42,000 2020 est. 38 Europe
40 Greenland greenland $41,800 2015 est. 39 North America
41 United Kingdom united-kingdom $41,600 2020 est. 40 Europe
42 Japan japan $41,400 2019 est. 41 East Asia/Southeast Asia
43 Bahrain bahrain $40,900 2020 est. 42 Middle East
44 Faroe Islands faroe-islands $40,000 2014 est. 43 Europe
45 Malta malta $39,200 2020 est. 44 Europe
46 Italy italy $39,000 2020 est. 45 Europe
47 Czechia czechia $38,300 2020 est. 46 Europe
48 Israel israel $38,300 2020 est. 47 Middle East
49 Cyprus cyprus $37,700 2020 est. 48 Europe
50 Aruba aruba $37,500 2017 est. 49 Central America
51 Virgin Islands virgin-islands $37,000 2016 est. 50 Central America
52 Lithuania lithuania $36,700 2020 est. 51 Europe
53 Slovenia slovenia $36,500 2020 est. 52 Europe
54 Spain spain $36,200 2020 est. 53 Europe
55 Estonia estonia $35,600 2020 est. 54 Europe
56 Guam guam $35,600 2016 est. 55 Australia - Oceania
57 Sint Maarten sint-maarten $35,300 2018 est. 56 Central America
58 British Virgin Islands british-virgin-islands $34,200 2017 est. 57 Central America
59 Montserrat montserrat $34,000 2011 est. 58 Central America
60 Puerto Rico puerto-rico $33,400 2020 est. 59 Central America
61 Poland poland $32,200 2020 est. 60 Europe
62 Portugal portugal $32,200 2020 est. 61 Europe
63 New Caledonia new-caledonia $31,100 2015 est. 62 Australia - Oceania
64 Hungary hungary $31,000 2020 est. 63 Europe
65 Bahamas, The bahamas-the $30,800 2020 est. 64 Central America
66 Slovakia slovakia $30,300 2020 est. 65 Europe
67 Latvia latvia $29,900 2020 est. 66 Europe
68 Romania romania $28,800 2020 est. 67 Europe
69 Turkey turkey $28,400 2020 est. 68 Middle East
70 Greece greece $27,300 2020 est. 69 Europe
71 Oman oman $27,300 2019 est. 70 Middle East
72 Croatia croatia $26,500 2020 est. 71 Europe
73 Russia russia $26,500 2020 est. 72 Central Asia
74 Malaysia malaysia $26,400 2020 est. 73 East Asia/Southeast Asia
75 Panama panama $25,400 2020 est. 74 Central America
76 Kazakhstan kazakhstan $25,300 2020 est. 75 Central Asia
77 Taiwan taiwan $24,502 2018 est. 76 East Asia/Southeast Asia
78 Curacao curacao $24,500 2019 est. 77 Central America
79 Northern Mariana Islands northern-mariana-islands $24,500 2016 est. 78 Australia - Oceania
80 Seychelles seychelles $24,400 2020 est. 79 Africa
81 Trinidad and Tobago trinidad-and-tobago $23,700 2020 est. 80 Central America
82 Chile chile $23,300 2020 est. 81 South America
83 Saint Kitts and Nevis saint-kitts-and-nevis $23,300 2020 est. 82 Central America
84 Bulgaria bulgaria $22,400 2020 est. 83 Europe
85 Uruguay uruguay $21,600 2020 est. 84 South America
86 Turks and Caicos Islands turks-and-caicos-islands $21,100 2020 est. 85 Central America
87 Argentina argentina $19,700 2020 est. 86 South America
88 Costa Rica costa-rica $19,700 2020 est. 87 Central America
89 Mauritius mauritius $19,500 2020 est. 88 Africa
90 Saint Martin saint-martin $19,300 2005 est. 89 Central America
91 Belarus belarus $19,100 2020 est. 90 Europe
92 Guyana guyana $18,700 2020 est. 91 South America
93 Montenegro montenegro $18,300 2020 est. 92 Europe
94 Serbia serbia $18,200 2020 est. 93 Europe
95 Antigua and Barbuda antigua-and-barbuda $18,000 2020 est. 94 Central America
96 Mexico mexico $17,900 2020 est. 95 North America
97 Palau palau $17,600 2019 est. 96 Australia - Oceania
98 Thailand thailand $17,300 2020 est. 97 East Asia/Southeast Asia
99 Dominican Republic dominican-republic $17,000 2020 est. 98 Central America
100 Equatorial Guinea equatorial-guinea $17,000 2020 est. 99 Africa
101 French Polynesia french-polynesia $17,000 2015 est. 100 Australia - Oceania
102 Cook Islands cook-islands $16,700 2016 est. 101 Australia - Oceania
103 China china $16,400 2020 est. 102 East Asia/Southeast Asia
104 Suriname suriname $16,100 2020 est. 103 South America
105 Botswana botswana $16,000 2020 est. 104 Africa
106 Turkmenistan turkmenistan $15,500 2019 est. 106 Central Asia
107 Grenada grenada $15,100 2020 est. 107 Central America
108 Gabon gabon $14,400 2020 est. 108 Africa
109 Bosnia and Herzegovina bosnia-and-herzegovina $14,300 2020 est. 109 Europe
110 Brazil brazil $14,100 2020 est. 110 South America
111 Georgia georgia $14,100 2020 est. 111 Middle East
112 Azerbaijan azerbaijan $13,700 2020 est. 112 Middle East
113 Nauru nauru $13,500 2019 est. 113 Australia - Oceania
114 Colombia colombia $13,400 2020 est. 114 South America
115 Albania albania $13,300 2020 est. 115 Europe
116 Maldives maldives $13,000 2020 est. 116 South Asia
117 Barbados barbados $12,900 2020 est. 117 Central America
118 Armenia armenia $12,600 2020 est. 118 Middle East
119 Sri Lanka sri-lanka $12,500 2020 est. 119 South Asia
120 Iran iran $12,400 2020 est. 120 Middle East
121 Ukraine ukraine $12,400 2020 est. 121 Europe
122 Cuba cuba $12,300 2016 est. 122 Central America
123 Moldova moldova $12,300 2020 est. 123 Europe
124 Paraguay paraguay $12,300 2020 est. 124 South America
125 Saint Lucia saint-lucia $12,300 2020 est. 125 Central America
126 Anguilla anguilla $12,200 2008 est. 126 Central America
127 Saint Vincent and the Grenadines saint-vincent-and-the-grenadines $12,100 2020 est. 127 Central America
128 Egypt egypt $12,000 2020 est. 128 Africa
129 Lebanon lebanon $11,600 2020 est. 129 Middle East
130 Mongolia mongolia $11,500 2020 est. 130 East Asia/Southeast Asia
131 South Africa south-africa $11,500 2020 est. 131 Africa
132 Indonesia indonesia $11,400 2020 est. 132 East Asia/Southeast Asia
133 Peru peru $11,300 2020 est. 133 South America
134 American Samoa american-samoa $11,200 2016 est. 134 Australia - Oceania
135 Fiji fiji $11,000 2020 est. 135 Australia - Oceania
136 Bhutan bhutan $10,900 2020 est. 136 South Asia
137 Kosovo kosovo $10,800 2020 est. 137 Europe
138 Algeria algeria $10,700 2020 est. 138 Africa
139 Ecuador ecuador $10,300 2020 est. 139 South America
140 Libya libya $10,300 2020 est. 140 Africa
141 Dominica dominica $9,900 2020 est. 141 Central America
142 Jordan jordan $9,800 2020 est. 142 Middle East
143 Tunisia tunisia $9,700 2020 est. 143 Africa
144 Iraq iraq $9,300 2020 est. 144 Middle East
145 Namibia namibia $8,900 2020 est. 145 Africa
146 Jamaica jamaica $8,700 2020 est. 146 Central America
147 Eswatini eswatini $8,400 2020 est. 147 Africa
148 Guatemala guatemala $8,400 2020 est. 148 Central America
149 Vietnam vietnam $8,200 2020 est. 149 East Asia/Southeast Asia
150 El Salvador el-salvador $8,100 2020 est. 150 Central America
151 Philippines philippines $8,000 2020 est. 151 East Asia/Southeast Asia
152 Bolivia bolivia $7,900 2020 est. 152 South America
153 Laos laos $7,800 2020 est. 153 East Asia/Southeast Asia
154 Saint Helena, Ascension, and Tristan da Cunha saint-helena-ascension-and-tristan-da-cunha $7,800 FY09/10 est. 154 Africa
155 Venezuela venezuela $7,704 2018 est. 155 South America
156 Uzbekistan uzbekistan $7,000 2020 est. 156 Central Asia
157 Morocco morocco $6,900 2020 est. 157 Africa
158 Tonga tonga $6,400 2019 est. 158 Australia - Oceania
159 Samoa samoa $6,300 2020 est. 159 Australia - Oceania
160 Gaza Strip gaza-strip $6,220 2019 est. 160 Middle East
161 Angola angola $6,200 2020 est. 161 Africa
162 Belize belize $6,100 2020 est. 162 Central America
163 India india $6,100 2020 est. 163 South Asia
164 Tokelau tokelau $6,004 2017 est. 164 Australia - Oceania
165 Cabo Verde cabo-verde $6,000 2020 est. 165 Africa
166 Niue niue $5,800 2003 est. 166 Australia - Oceania
167 Djibouti djibouti $5,500 2020 est. 167 Africa
168 West Bank west-bank $5,400 2020 est. 168 Middle East
169 Ghana ghana $5,300 2020 est. 169 Africa
170 Nicaragua nicaragua $5,300 2020 est. 170 Central America
171 Cote d'Ivoire cote-divoire $5,200 2020 est. 171 Africa
172 Honduras honduras $5,100 2020 est. 172 Central America
173 Mauritania mauritania $5,000 2020 est. 173 Africa
174 Nigeria nigeria $4,900 2020 est. 174 Africa
175 Bangladesh bangladesh $4,800 2020 est. 175 South Asia
176 Kyrgyzstan kyrgyzstan $4,700 2020 est. 176 Central Asia
177 Pakistan pakistan $4,600 2020 est. 177 South Asia
178 Burma burma $4,500 2020 est. 178 East Asia/Southeast Asia
179 Tuvalu tuvalu $4,400 2020 est. 179 Australia - Oceania
180 Cambodia cambodia $4,200 2020 est. 180 East Asia/Southeast Asia
181 Kenya kenya $4,200 2020 est. 181 Africa
182 Papua New Guinea papua-new-guinea $4,100 2020 est. 182 East Asia/Southeast Asia
183 Sao Tome and Principe sao-tome-and-principe $4,100 2020 est. 183 Africa
184 Marshall Islands marshall-islands $4,000 2019 est. 184 Australia - Oceania
185 Sudan sudan $4,000 2020 est. 185 Africa
186 Nepal nepal $3,800 2020 est. 186 South Asia
187 Wallis and Futuna wallis-and-futuna $3,800 2004 est. 187 Australia - Oceania
188 Tajikistan tajikistan $3,700 2020 est. 188 Central Asia
189 Cameroon cameroon $3,600 2020 est. 189 Africa
190 Micronesia, Federated States of micronesia-federated-states-of $3,500 2019 est. 190 Australia - Oceania
191 Congo, Republic of the congo-republic-of-the $3,400 2020 est. 191 Africa
192 Benin benin $3,300 2020 est. 192 Africa
193 Senegal senegal $3,300 2020 est. 193 Africa
194 Zambia zambia $3,300 2020 est. 194 Africa
195 Timor-Leste timor-leste $3,200 2020 est. 195 East Asia/Southeast Asia
196 Comoros comoros $3,100 2020 est. 196 Africa
197 Syria syria $2,900 2015 est. 197 Middle East
198 Haiti haiti $2,800 2020 est. 198 Central America
199 Vanuatu vanuatu $2,800 2020 est. 199 Australia - Oceania
200 Guinea guinea $2,700 2020 est. 200 Africa
201 Zimbabwe zimbabwe $2,700 2020 est. 201 Africa
202 Tanzania tanzania $2,600 2020 est. 202 Africa
203 Solomon Islands solomon-islands $2,500 2020 est. 203 Australia - Oceania
204 Yemen yemen $2,500 2017 est. 204 Middle East
205 Ethiopia ethiopia $2,300 2020 est. 205 Africa
206 Kiribati kiribati $2,300 2020 est. 206 Australia - Oceania
207 Lesotho lesotho $2,300 2020 est. 207 Africa
208 Burkina Faso burkina-faso $2,200 2020 est. 208 Africa
209 Gambia, The gambia-the $2,200 2020 est. 209 Africa
210 Mali mali $2,200 2020 est. 210 Africa
211 Uganda uganda $2,200 2020 est. 211 Africa
212 Rwanda rwanda $2,100 2020 est. 212 Africa
213 Togo togo $2,100 2020 est. 213 Africa
214 Afghanistan afghanistan $2,000 2020 est. 214 South Asia
215 Guinea-Bissau guinea-bissau $1,800 2020 est. 215 Africa
216 Korea, North korea-north $1,700 2015 est. 216 East Asia/Southeast Asia
217 Eritrea eritrea $1,600 2017 est. 217 Africa
218 Sierra Leone sierra-leone $1,600 2020 est. 218 Africa
219 South Sudan south-sudan $1,600 2017 est. 219 Africa
220 Chad chad $1,500 2020 est. 220 Africa
221 Madagascar madagascar $1,500 2020 est. 221 Africa
222 Malawi malawi $1,500 2020 est. 222 Africa
223 Liberia liberia $1,400 2020 est. 223 Africa
224 Mozambique mozambique $1,200 2020 est. 224 Africa
225 Niger niger $1,200 2020 est. 225 Africa
226 Congo, Democratic Republic of the congo-democratic-republic-of-the $1,100 2020 est. 226 Africa
227 Central African Republic central-african-republic $900 2020 est. 227 Africa
228 Somalia somalia $800 2020 est. 228 Africa
229 Burundi burundi $700 2020 est. 229 Africa

1
Laboratorio11/input.txt Normal file
View File

@@ -0,0 +1 @@
Faccio sesso e mi drogo tutto il giorno codando in C++

95
Laboratorio11/maze.py Normal file
View File

@@ -0,0 +1,95 @@
fio = open("maze.txt", "r")
maze_raw = fio.readlines()
fio.close()
xmax = len(maze_raw) - 1
ymax = len(maze_raw[0].strip()) - 1
maze = {}
sol = {}
for x in range(len(maze_raw)):
for y in range(len(maze_raw[x].strip())):
paths = set()
if x > 0:
if maze_raw[x - 1][y] == " ":
paths.add((x - 1, y))
if y > 0:
if maze_raw[x][y - 1] == " ":
paths.add((x, y - 1))
if maze_raw[x][y] == " ":
paths.add((x, y))
if y < ymax:
if maze_raw[x][y + 1] == " ":
paths.add((x, y + 1))
if x < xmax:
if maze_raw[x + 1][y] == " ":
paths.add((x + 1, y))
if len(paths) != 0:
maze[(x,y)] = paths
if maze_raw[x][y] == "*":
sol[(x,y)] = "*"
else:
sol[(x,y)] = "?"
for key in maze:
if key[0] == 0:
if maze_raw[key[0]][key[1]] == " ":
sol[key] = "N"
if key[0] == xmax:
if maze_raw[key[0]][key[1]] == " ":
sol[key] = "S"
if key[1] == 0:
if maze_raw[key[0]][key[1]] == " ":
sol[key] = "W"
if key[1] == ymax:
if maze_raw[key[0]][key[1]] == " ":
sol[key] = "E"
cont = True
def check(xi, yi):
global sol
return (xi, yi) in sol and sol[xi, yi] != "?" and sol[xi, yi] != "*"
while cont:
cont = False
for key in maze:
if sol[key] == "?":
if check(key[0] - 1, key[1]):
sol[key] = "N"
cont = True
continue
if check(key[0] + 1, key[1]):
sol[key] = "S"
cont = True
continue
if check(key[0], key[1] - 1):
sol[key] = "W"
cont = True
continue
if check(key[0], key[1] + 1):
sol[key] = "E"
cont = True
continue
for x in range(xmax+1):
for y in range(ymax+1):
print(sol[(x,y)],end="")
print()

9
Laboratorio11/maze.txt Normal file
View File

@@ -0,0 +1,9 @@
* *******
* * * *
* ***** *
* * * *
* * *** *
* * *
***** * *
* * *
******* *

View File

@@ -0,0 +1,22 @@
import csv
with open("export.csv") as csv_file:
csv_reader = csv.reader(csv_file)
line_count = 0
nations = {}
for row in csv_reader:
if line_count == 0:
print(f'Column names are {", ".join(row)}')
line_count += 1
else:
nations[row[0]] = row[2]
while True:
uinput = input("Inserisci il nome della nazione o quit: ")
if uinput == "quit":
break
print(nations[uinput])

1
Laboratorio11/output.txt Normal file
View File

@@ -0,0 +1 @@
Faccio ***** e mi drogo tutto il giorno codando in ***

View File

@@ -0,0 +1,33 @@
def sparseArraySum(a: dict, b: dict):
vsum = {}
ka = a.keys()
kb = b.keys()
sas = set()
for i in ka:
sas.add(i)
for i in kb:
sas.add(i)
for k in sas:
d = 0
e = 0
if k in a:
d = a[k]
if k in b:
e = b[k]
vsum[k] = d + e
return vsum
da = {5:4, 9:2, 10:9}
db = {5:4, 9:2, 2:3}
print(sparseArraySum(da, db))

16449
Laboratorio11/test Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,6 @@
anno = int(input("Inserisci un anno: "))
if anno % 400 == 0 or (anno % 4 == 0 and anno % 100 != 0):
print("L'anno è bisestile")
else:
print("L'anno non è bisestile")

View File

@@ -0,0 +1,20 @@
sus = input("Inserisci una stringa: ")
if sus.isalpha():
if sus.isupper():
print("La stringa contiene soltanto lettere maiuscole")
elif sus.islower():
print("La stringa contiene soltanto lettere minuscole")
else:
print("La stringa contiene soltanto lettere")
elif sus.isnumeric():
print("La stringa contiene soltanto numeri")
elif sus.isalnum():
print("La stringa contiene soltanto lettere e cifre")
if len(sus) > 0:
if sus[0].isupper():
print("La stringa inizia con una maiuscola")
if sus[-1] == ".":
print("La stringa finisce con un punto")

45
Laboratorio3/convert.py Normal file
View File

@@ -0,0 +1,45 @@
from sys import exit
fr = input("Convert from? ")
to = input("Convert to? ")
factor = 0
if fr == "ml" or fr == "l":
if to == "fl. oz":
factor = 0.033814
elif to == "gal":
factor = 0.000264172
if fr == "l":
factor *= 1000
if fr == "g" or fr == "kg":
if to == "oz":
factor = 0.035274
elif to == "lb":
factor = 0.00220462
if fr == "kg":
factor *= 1000
if fr == "mm" or fr == "cm" or fr == "m" or fr == "km":
if to == "ft":
factor = 0.00328084
elif to == "mi":
factor = 6.21371 * 10**(-7)
if fr == "cm":
factor *= 10
elif fr == "m":
factor *= 1000
elif fr == "km":
factor *= 1000000
if factor == 0:
exit("Impossible conversion")
val1 = float(input("Value? "))
val2 = val1 * factor
print(val1, " ", fr, " = ", val2, " ", to)

27
Laboratorio3/seasons.py Normal file
View File

@@ -0,0 +1,27 @@
from sys import exit
month = int(input("Inserisci il mese: "))
day = int(input("Inserisci il giorno: "))
if 1 <= month <= 3:
mw = "Winter"
elif 4 <= month <= 6:
mw = "Spring"
elif 7 <= month <= 9:
mw = "Summer"
elif 10 <= month <= 12:
mw = "Fall"
else:
exit("Invalid month")
if month % 3 == 0 and day >= 21:
if mw == "Winter":
mw = "Spring"
elif mw == "Spring":
mw = "Summer"
elif mw == "Summer":
mw = "Fall"
elif mw == "Fall":
mw = "Winter"
print("La stagione è ", mw)

19
Laboratorio3/tasse.py Normal file
View File

@@ -0,0 +1,19 @@
coniugato = input("Sei coniugato (s/n)?") == "s"
redditoImponibile = int(input("Inserisci il tuo reddito imponibile"))
if coniugato:
if 0 <= redditoImponibile <= 8000:
tasse = redditoImponibile * 0.1
elif redditoImponibile <= 32000:
tasse = 800 + (redditoImponibile-8000) * 0.15
else:
tasse = 4400 + (redditoImponibile-32000) * 0.25
else:
if 0 <= redditoImponibile <= 16000:
tasse = redditoImponibile * 0.1
elif redditoImponibile <= 64000:
tasse = 1600 + (redditoImponibile-16000) * 0.15
else:
tasse = 8800 + (redditoImponibile-64000) * 0.25
print("Le tasse sono pari a ", tasse)

10
Laboratorio3/trenumeri.py Normal file
View File

@@ -0,0 +1,10 @@
a = int(input("Inserisci il primo numero: "))
b = int(input("Inserisci il secondo numero: "))
c = int(input("Inserisci il terzo numero: "))
if a < b < c:
print("Increasing")
elif a > b > c:
print("Decreasing")
else:
print("Neither")

29
Laboratorio3/voto.py Normal file
View File

@@ -0,0 +1,29 @@
from sys import exit
letterGrade = input("Inserisci il voto in lettere: ")
letter = letterGrade[0]
if letter == "A":
numericGrade = 4
elif letter == "B":
numericGrade = 3
elif letter == "C":
numericGrade = 2
elif letter == "D":
numericGrade = 1
elif letter == "F":
numericGrade = 0
else:
exit("Invalid grade")
if len(letterGrade) > 1:
modifier = letterGrade[1]
if modifier == "+" and numericGrade != 4 and numericGrade != 0:
numericGrade += 0.3
elif modifier == "-" and numericGrade != 0:
numericGrade -= 0.3
else:
exit("Invalid grade")
print("Il voto numerico è ", numericGrade)

2
Laboratorio3/voto2.py Normal file
View File

@@ -0,0 +1,2 @@
voton = float(input("Inserisci il voto numerico: "))

View File

@@ -0,0 +1,2 @@
parola = input("Inserisci una parola: ")
print(parola[::-1])

18
Laboratorio4/forme.py Normal file
View File

@@ -0,0 +1,18 @@
n = int(input("Inserisci n: "))
for x in range(n):
print("*"*n)
print()
d = 2*n
for x in range(0, d-1):
a = 1 + x*2
if a > d - 1:
a = d - 1 - (x - n + 1)*2
b = (d - 1 - a)
c = int(b/2)
print(" "*c + "*"*a + " "*c)

View File

@@ -0,0 +1,38 @@
pari = 0
dispari = 0
somma = 0
maxN = None
minN = None
lval = None
while True:
ri = input("Inserisci un numero: ")
if ri == "":
break
i = int(ri)
if maxN is None or maxN < i:
maxN = i
if minN is None or minN > i:
minN = i
if i % 2 == 0:
pari += 1
else:
dispari += 1
somma += i
print("Somma parziale: ", somma)
if lval == i:
print("Duplicato: ", lval)
else:
lval = i
print("Valore minimo:", minN)
print("Valore massimo:", maxN)

31
Laboratorio4/nim.py Normal file
View File

@@ -0,0 +1,31 @@
from math import floor, log2
from random import randint
biglie = randint(10, 100)
giocaComputer = randint(0, 1) == 1
intelligente = randint(0, 1) == 1
while biglie > 0:
if giocaComputer:
if intelligente:
if biglie in [3, 7, 15, 31, 63]:
biglie -= randint(1, floor(biglie/2))
else:
biglie -= 3
else:
biglie -= randint(1, floor(biglie/2))
else:
mbiglie = int(input("Quante biglie vuoi togliere? "))
if mbiglie > floor(biglie/2):
print("Non puoi togliere così tante biglie")
continue
biglie -= mbiglie
giocaComputer = not giocaComputer
if giocaComputer:
print("Ha vinto il computer")
else:
print("Ha vinto il giocatore")

24
Laboratorio4/primi.py Normal file
View File

@@ -0,0 +1,24 @@
import random
primeList = []
def primeListGenerator(upperBound):
global primeList
for i in range(2, upperBound):
isPrime = True
for primeNumber in primeList:
if i % primeNumber == 0:
isPrime = False
break
if isPrime:
primeList.append(i)
n = int(input("Fino a "))
primeListGenerator(n)
for n in primeList:
print(n)

View File

@@ -0,0 +1,32 @@
stringa = input("Inserisci una stringa: ")
for char in stringa:
if char.isupper():
print(char, end="")
print()
for char in range(1, len(stringa), 2):
print(stringa[char], end="")
print()
for char in stringa:
if char.lower() in "aeiou":
print("_", end="")
else:
print(char, end="")
print()
sumCifre = 0
for char in stringa:
if char.isdigit():
sumCifre += 1
print("Numero di cifre: ", sumCifre)
print("Posizioni delle vocali: ", end="")
for char in range(len(stringa)):
if stringa[char].lower() in "aeiou":
print(char, end=" ")

View File

@@ -0,0 +1,5 @@
stringa = input("Inserisci una stringa")
for subLen in range(1, len(stringa)+1):
for ns in range(len(stringa)-subLen+1):
print(stringa[ns:ns + subLen])

View File

@@ -0,0 +1,11 @@
n = 12345678901234567890 #int(input("Numero: "))
k = 2
while n > 1:
for x in range(k,n+1):
if n % x == 0:
print(x)
k = x
n = int(n/x)
break

View File

@@ -0,0 +1,30 @@
primeList = []
lastIndex = 2
def primeListGenerator():
global primeList, lastIndex
isPrime = True
for primeNumber in primeList:
if lastIndex % primeNumber == 0:
isPrime = False
break
if isPrime:
primeList.append(lastIndex)
lastIndex += 1
n = 12345678901234567890 # int(input("Numero: "))
k = 2
while n > 1:
primeListGenerator()
prime = primeList[-1]
while n % prime == 0:
n = int(n/prime)
print(prime)

View File

@@ -0,0 +1,19 @@
eccezioni = ["Belize", "Cambodge", "Mexique", "Mozambique", "Zaïre", "Zimbabwe"]
def main():
nazione = input("Nome nazione")
if nazione == "Etats-Unis" or nazione == "Pays-Bas":
print("les", nazione)
return
if nazione[0].lower() in "aeiou":
print("l'", nazione)
return
if nazione in eccezioni or nazione[-1] != "e":
print("le", nazione)
else:
print("la", nazione)
main()

17
Laboratorio5/pin.py Normal file
View File

@@ -0,0 +1,17 @@
def main():
pin = "1234"
errCount = 0
while errCount < 3:
uinput = input("Insert pin: ")
if uinput == pin:
print("Your PIN is correct")
return
print("Your PIN is incorrect")
errCount += 1
print("You bank card is blocked")
main()

View File

@@ -0,0 +1,20 @@
A = float(input("Parametro A: "))
B = float(input("Parametro B: "))
C = float(input("Parametro C: "))
D = float(input("Parametro D: "))
prede = float(input("Prede: "))
predatori = float(input("Predatori: "))
intervalli = float(input("Iterazioni: "))
for i in range(intervalli):
prede *= 1+A-B*predatori
predatori *= 1-C+D*prede
if prede < 0:
print("Prede estinte all'iterazione ", i)
if predatori < 0:
print("Predatori estinti all'iterazione ", i)
print("Predatori ", predatori, "; prede ", prede)

View File

@@ -0,0 +1,21 @@
bigliettiRimasti = 100
acquirenti = 0
while bigliettiRimasti > 0:
biglietti = int(input("Quanti biglietti vuoi acquistare? "))
if biglietti < 1:
print("Non puoi vendere biglietti")
continue
if biglietti > 4:
print("Non puoi acquistare più di quattro biglietti")
continue
elif bigliettiRimasti < biglietti:
print("Non sono disponibili abbastanza biglietti")
continue
print("Acquisto effettuato")
acquirenti += 1
bigliettiRimasti -= biglietti
print("Acquirenti", acquirenti)

View File

@@ -0,0 +1,10 @@
def pseudorandom(a, b, m, r):
while True:
r = (a*r+b)%m
yield r
rold = int(input("Seed the generator: "))
generator = pseudorandom(32310901, 1729, 2**24, rold)
for i in range (100):
print(next(generator))

View File

@@ -0,0 +1,11 @@
def countWords(stt):
sta = stt.split()
return len(sta)
def main():
uinput = input("Inserisci una frase: ")
print("Il numero di parole è", countWords(uinput))
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,29 @@
def sussidio(reddito, figli):
if 30000 < reddito <= 40000 and figli >= 3:
return figli * 1000
if 20000 < reddito <= 30000 and figli >= 2:
return figli * 1500
if reddito <= 20000 and figli >= 1:
return figli * 2000
return 0
def main():
print("Inserisci -1 per interrompere il programma")
while True:
reddito = int(input("Inserisci il reddito: "))
figli = int(input("Inserisci il numero di figli: "))
if reddito == -1 or figli == -1:
break
print("Il sussidio è", sussidio(reddito, figli))
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,46 @@
def valoreSingolo(cifra):
if cifra == "I":
return 1
if cifra == "V":
return 5
if cifra == "X":
return 10
if cifra == "L":
return 50
if cifra == "C":
return 100
if cifra == "D":
return 500
if cifra == "M":
return 1000
return 0
def romaniToArabi(romano):
rlist = list(romano)
totale = 0
while len(rlist) > 0:
if len(rlist) == 1 or valoreSingolo(rlist[0]) >= valoreSingolo(rlist[1]):
totale += valoreSingolo(rlist[0])
rlist.pop(0)
else:
totale += valoreSingolo(rlist[1]) - valoreSingolo(rlist[0])
rlist.pop(0)
rlist.pop(0)
return totale
def main():
uinput = input("Inserisci un numero romano: ")
print("L'equivalente in numeri arabi è", romaniToArabi(uinput))
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,7 @@
def calcolaSaldo(saldo, tasso, anni):
for _ in range(anni):
saldo *= (1 + tasso)
return saldo
print(calcolaSaldo(10000, 0.01, 10))

14
Laboratorio6/vocali.py Normal file
View File

@@ -0,0 +1,14 @@
def countVowel(str):
c = 0
for ch in str:
if ch.lower() in "aeiou":
c += 1
return c
def main():
uinput = input("Inserisci una frase: ")
print("Il numero di vocali è", countVowel(uinput))
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,24 @@
from random import randint
def main():
numbs = []
for i in range(10):
numbs.append(randint(1, 100))
print("Numeri con indici pari", numbs[1::2])
#for i in range(0, len(numbs), 2):
# print(i,":", numbs[i])
print("Numeri pari")
for i in range(len(numbs)):
if numbs[i] % 2 == 0:
print(i,":", numbs[i])
print("Lista invertita", numbs[::-1])
print("Primo elemento", numbs[0])
print("Ultimo elemento", numbs[-1])
main()

View File

@@ -0,0 +1,19 @@
su = 0
op = True
while True:
inp = input("Inserisci un numero: ")
if inp == "":
break
inp = int(inp)
if op:
su += inp
else:
su -= inp
op = not op
print("La somma alternata è", su)

View File

@@ -0,0 +1,33 @@
def removeDup(a):
i=0
while i < len(a) - 1:
if a[i] == a[i + 1]:
a.pop(i)
else:
i += 1
def sameSet(a, b):
cpa = list(a)
cpb = list(b)
cpa.sort()
cpb.sort()
removeDup(cpa)
removeDup(cpb)
if len(cpa) == len(cpb):
i=0
while i < len(cpa):
if cpa[i] != cpb[i]:
break
i += 1
if i == len(cpa):
return True
return False
print(sameSet([1,5,2,4,4,8], [1,1,4,2,8,5,5]))

View File

@@ -0,0 +1,13 @@
from random import randint
numbs = []
for i in range(20):
numbs.append(randint(0, 99))
print(i,":", numbs[i])
numbs.sort()
for i in range(len(numbs)):
print(i,":", numbs[i])

View File

@@ -0,0 +1,26 @@
def readInts():
ints = []
while True:
num = input("Inserisci un numero: ")
if num == "":
break
ints.append(int(num))
return ints
def main():
nums = readInts()
maxFound=False
for i in range(1, len(nums) -1):
if nums[i-1] < nums[i] > nums[i+1]:
print("Massimo locale all'indice", i)
maxFound = True
if not maxFound:
print("Non ho trovato massimi locali")
main()

View File

@@ -0,0 +1,3 @@
def sum_without_smallest(a):
mini = min(a)
return sum(a) - mini

View File

@@ -0,0 +1,29 @@
def correzione(a):
bb = a[0]
a[0] = (a[0] + a[1]) / 2
for i in range(1, len(a)-1):
xx = a[i]
a[i] = (bb + a[i] + a[i+1])/3
bb = xx
a[len(a)-1] = (bb + a[len(a)-1])/2
def readInts():
ints = []
while True:
num = input("Inserisci un numero: ")
if num == "":
break
ints.append(int(num))
return ints
def main():
a = readInts()
correzione(a)
print(a)
main()

View File

@@ -0,0 +1,44 @@
def readInts():
ints = []
while True:
num = input("Inserisci un numero: ")
if num == "":
break
ints.append(int(num))
return ints
def main():
nums = readInts()
maxFound=False
maxes = []
for i in range(1, len(nums) -1):
if nums[i-1] < nums[i] > nums[i+1]:
print("Massimo locale all'indice", i)
maxes.append(i)
maxFound = True
if not maxFound:
print("Non ho trovato massimi locali")
return
if len(maxes) < 2:
print("Ho trovato solo un massimo")
return
a = maxes[0]
b = maxes[1]
for i in range(2, len(maxes)):
if maxes[i] - b < b - a:
a = b
b = maxes[i]
print("Gli indici dei due massimi più vicini fra loro sono", a, b)
main()

View File

@@ -0,0 +1,27 @@
def removeDup(a):
i=0
while i < len(a) - 1:
if a[i] == a[i + 1]:
a.pop(i)
else:
i += 1
def sameElements(a, b):
cpa = sorted(a)
cpb = sorted(b)
if len(cpa) == len(cpb):
i=0
while i < len(cpa):
if cpa[i] != cpb[i]:
break
i += 1
if i == len(cpa):
return True
return False
print(sameElements([1,5,2,4,8], [1,4,2,8,5]))

View File

@@ -0,0 +1,21 @@
def retNumOrZero(values, row, column):
if 0 > row or row >= len(values) or 0 > column or row >= len(values[0]):
return None
return values[row][column]
def neighborAverage(values, row, column):
nums = [retNumOrZero(values, row - 1, column - 1), retNumOrZero(values, row - 1, column), retNumOrZero(values, row - 1, column + 1), retNumOrZero(values, row, column - 1), retNumOrZero(values, row, column), retNumOrZero(values, row, column + 1), retNumOrZero(values, row + 1, column - 1), retNumOrZero(values, row + 1, column), retNumOrZero(values, row + 1, column + 1)]
su = 0
d = 0
for n in nums:
if n is not None:
su += n
d += 1
print(su / d, end="\t")
a = [[0,1,2],[3,4,5],[6,7,8]]
neighborAverage(a, 0, 0)

View File

View File

@@ -0,0 +1,33 @@
def nameOfBestCustomer(sales: list, customers: list):
maxSale = sales[0]
maxName = customers[0]
assert len(sales) == len(customers)
for i in range(1, len(sales)):
if maxSale < sales[i]:
maxSale = sales[i]
maxName = customers[i]
return maxName
def main():
sales = []
customers = []
while True:
sale = int(input("Inserisci la spesa: "))
if sale == 0:
break
name = input("Inserisci il nome del cliente: ")
sales.append(sale)
customers.append(name)
print(nameOfBestCustomer(sales, customers))
main()

View File

@@ -0,0 +1,79 @@
def scambiaEstremi(a: list):
c = a[0]
a[0] = a[-1]
a[-1] = c
def ruotaDestra(a: list):
c = a.pop()
a.insert(0, c)
def azzeraPari(a: list):
for i in range(0, len(a), 2):
a[i] = 0
def maxL(a: list):
b = a.copy()
for i in range(1, len(a) - 1):
b[i] = max(a[i-1], a[i+1])
def rimuoviCentrale(a: list):
if len(a) % 2 == 0:
mi = len(a) // 2
a.pop(mi - 1)
a.pop(mi - 1)
return
mi = len(a) // 2
a.pop(mi - 1)
def pariInizio(a: list):
x = 0
for i in range(0, len(a), 2):
a.insert(x, a.pop(i))
x += 1
def secondMax(a: list):
if a[0] > a[1]:
fmax = a[0]
smax = a[1]
else:
fmax = a[1]
smax = a[0]
for i in range(2, len(a)):
if a[i] > fmax:
smax = fmax
fmax = a[i]
elif a[i] > smax:
smax = a[i]
return smax
def isListOrdered(a: list):
b = sorted(a)
for i in range(len(a)):
if a[i] != b[i]:
return False
return True
def twoAdiacentDuplicates(a: list):
for i in range(0, len(a) - 1):
if i[0] == i[1]:
return True
return False
def twoDuplicates(a: list):
return twoAdiacentDuplicates(sorted(a))

View File

@@ -0,0 +1,37 @@
posti = [[10 , 20, 30], [10 , 20, 30], [10 , 20, 30]]
def searchInTable(prezzo):
for i in range(len(posti)):
for j in range(len(posti[i])):
if posti[i][j] == prezzo:
posti[i][j] = 0
print("Posto prenotato con colonna", i, "riga", j)
return
print("Nessun posto prenotabile con quel prezzo")
while True:
ch = input("Vuoi inserire il posto o il prezzo? (posto/prezzo) ")
if ch == "posto":
x = int(input("Inserisci la colonna: "))
y = int(input("Inserisci la riga: "))
if x > len(posti) or x < 0:
print("Colonna non valida")
continue
if y > len(posti[x]) or y < 0:
print("Riga non valida")
continue
if posti[x][y] == 0:
print("Il posto è già occupato")
continue
posti[x][y] = 0
print("Posto prenotato")
else:
prezzo = input("Inserisci il prezzo: ")
searchInTable(prezzo)

View File

@@ -0,0 +1,15 @@
def play():
words = []
words.append(input("Inserisci una parola: "))
while True:
print(words)
word = input("Inserisci una parola: ")
if words[-1][-2:] == word[0:2] and word not in words:
words.append(word)
else:
print("Fine dei giochi")
return
play()

View File

@@ -0,0 +1,58 @@
def remMin(a: list):
x = 0
y = a[0]
for i in range(len(a)):
if y > a[i]:
y = a[i]
x = i
a.pop(x)
def remMax(a: list):
x = 0
y = a[0]
for i in range(len(a)):
if y < a[i]:
y = a[i]
x = i
a.pop(x)
def remOdd(a: list):
for i in range(len(a)-1, -1, -1):
if a[i] % 2 == 1:
a.pop(i)
def remLenNotTwo(a: list):
for i in range(len(a)-1, -1, -1):
if 10 > a[i] or a[i] > 99:
a.pop(i)
def printlistf(a):
print(":".join(list(map(lambda n: str(n), a))))
def main():
nums = list(map(lambda n: int(n), input("Inserisci la lista di numeri: ").split(":")))
a1 = nums.copy()
remMax(a1)
remMin(a1)
printlistf(a1)
a2 = nums.copy()
remOdd(a2)
printlistf(a2)
a3 = nums.copy()
remLenNotTwo(a3)
printlistf(a3)
main()

60
blackjack.py Normal file
View File

@@ -0,0 +1,60 @@
from random import randint
cardArray = []
def resetDeck():
global cardArray
cardArray = []
for i in range(1, 9):
for x in range(4):
cardArray.append(i)
for x in range(12):
cardArray.append(10)
def genCard():
global cardArray
n = randint(0, len(cardArray) - 1)
x = cardArray[n]
cardArray.pop(n)
return x
while True:
resetDeck()
computerSum = genCard()
print("La carta scoperta del banco è ", computerSum)
computerSum += genCard()
playerSum = genCard() + genCard()
while True:
print("La somma delle tue carte è pari a ", playerSum)
if playerSum > 21:
print("Hai perso")
break
cont = input("Hit or stay? ") == "hit"
if cont:
playerSum += genCard()
else:
break
if playerSum > 21:
print("\n"*4)
continue
while computerSum < 17:
computerSum += genCard()
print("La somma delle carte del banco è ", computerSum)
if computerSum > 21 or playerSum > computerSum:
print("Hai vinto")
else:
print("Hai perso")
print("\n"*4)

16449
ge.txt Normal file

File diff suppressed because it is too large Load Diff

36
generatorePassword.py Normal file
View File

@@ -0,0 +1,36 @@
from random import randint
from string import ascii_letters, digits
spChars = "+-*/?!"
def insert(string, char, index):
return string[0:index] + char + string[index+1:len(string)]
def randomCharFromArray(array):
return array[randint(0,len(array)-1)]
def makePassword(length):
password = ""
for _ in range(length):
password += randomCharFromArray(ascii_letters)
randIndex1 = randint(0,len(password)-1)
password = insert(password, randomCharFromArray(digits), randIndex1) #[randIndex1] = randomCharFromArray(digits)
randIndex2 = randint(0,len(password)-2)
if randIndex1 == randIndex2:
randIndex2 = len(password) - 1
password = insert(password, randomCharFromArray(spChars), randIndex2)
return password
def main():
length = int(input("Insert password length"))
print("Your password is", makePassword(length))
main()

4
indexdata.txt Normal file
View File

@@ -0,0 +1,4 @@
type:6
type:2
aa:12
fd:2

22
indice.py Normal file
View File

@@ -0,0 +1,22 @@
from sys import exit
from wordutils import clean
index = {}
try:
inf = open("indexdata.txt", "r")
except FileNotFoundError:
exit("File not found")
for line in inf:
fields = line.split(":")
key = fields[0].strip()
word = fields[1].strip()
if key not in index:
index[key] = set()
index[key].add(word)
print(index)

16
kilometri.py Normal file
View File

@@ -0,0 +1,16 @@
print("Programma per calcolare le percentuali di uso di una macchina")
d=float(input("distanza casa lavoro:"))
KmI=float(input("chilometraggio iniziale: "))
KmF=float(input("chilometraggio finale: "))
n=int(input("N. giorni lavorativi: "))
KmL = 2*d*n
TotKm= KmF-KmI
KmP = TotKm-KmL
print("percentuale Km per lavoro: ", KmL/TotKm*100)
print("Percentuale Km per uso personale:", KmP/TotKm*100)

7
printTriangolo.py Normal file
View File

@@ -0,0 +1,7 @@
n = int(input("Inserisci un numero: "))
for i in range(1, n + 1, 2):
spaces = n - i
smez = int(spaces/2)
print(" "*smez+"*"*i+" "*smez)

14
pymontecarlo.py Normal file
View File

@@ -0,0 +1,14 @@
from random import random
n = 100000000
din = 0
for i in range(n):
x = random()
y = random()
if x**2 + y**2 <= 1:
din += 1
print((din / n)*4)

14
removeDuplicates.py Normal file
View File

@@ -0,0 +1,14 @@
def removeDuplicates(st: str):
st = list(st)
letters = set()
i = 0
while i < len(st):
if st[i] in letters:
st.pop(i)
else:
letters.add(st[i])
i += 1
return "".join(st)

19
scacchi.py Normal file
View File

@@ -0,0 +1,19 @@
while True:
casella = input("Inserire casella es g15")
lettera = casella[0]
numero = int(casella[1])
if lettera in "abcdefgh" and 0 <= numero <= 8:
break
if lettera in "aceg":
if numero % 2 == 0:
print("Bianco")
else:
print("Nero")
else:
if numero % 2 == 1:
print("Bianco")
else:
print("Nero")

View File

@@ -0,0 +1,44 @@
import csv
segni = {}
somma = 0
with open("zodiaco.csv") as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
data_start = row[1]
data_start = data_start.split("/")
data_start = int(data_start[1] + data_start[0])
data_end = row[2]
data_end = data_end.split("/")
data_end = int(data_end[1] + data_end[0])
nome = row[0]
segni[nome] = {"start": data_start, "end": data_end, "goals": 0}
with open("sportivi.csv") as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
data = row[1]
data = data.split("/")
data = int(data[1] + data[0])
goals = row[0]
for segno in segni:
if segni[segno]["start"] < data < segni[segno]["end"]:
segni[segno]["goals"] += goals
somma += goals
break
for segno in segni:
dati = segni[segno]
barra = "*"*int((dati[goals] / somma) * 50)
print(f"${segno} (${dati['goals']}): ${barra}")

View File

@@ -0,0 +1,4 @@
1978;Kicked In The Teeth
1985;Playing with Girls
1985;Shake Your Foundations
1990;Thunderstruck

View File

@@ -0,0 +1,3 @@
01023;queen.txt
02346;kiss.txt
16750;acdc.txt

View File

@@ -0,0 +1,3 @@
1980;Two Sides of the Coin
1985;King Of The Mountain
1979;I Was Made for Lovin' You

View File

@@ -0,0 +1,31 @@
songs = dict()
artists = open("artisti.txt", "r")
for artist in artists:
artist = artist.split(";")
artCode = artist[0].strip()
songsFile = open(artist[1].strip(), "r")
for song in songsFile:
song = song.split(";", 1)
year = song[0]
title = song[1].strip()
if year not in songs:
songs[year] = []
songs[year].append({"artist": artCode, "title": title})
songsFile.close()
artists.close()
years = sorted(list(songs.keys()))
for year in years:
print(year + ":")
for s in songs[year]:
print(s["title"] + "\t" + s["artist"])

View File

@@ -0,0 +1,3 @@
1980;Crazy Little Thing Called Love
1985;Its a kind of magic
1978;Under pressure

View File

@@ -0,0 +1,9 @@
P234HF22223 r1112
P111TG11115 r1015
P111TG11115 r1216
P234HF22222 r1011
P331LS00110 r1014
P331LS00120 r1318
P331LS00130 r1019
P234HF22225 r1114
P234HF22223 r1114

View File

@@ -0,0 +1,71 @@
from sys import exit
def carica_prodotti(filename: str):
try:
fio = open(filename, "r")
prodotti = dict()
for line in fio:
line = line.strip().split()
prodotti[line[0]] = line[1]
fio.close()
return prodotti
except FileNotFoundError:
exit("Errore! Il file", filename, "non è stato trovato!")
def carica_acquisti(filename: str, prodotti: dict):
try:
fio = open(filename, "r")
prodotti_sospetti = dict()
for line in fio:
line = line.strip().split()
prodotto = line[0]
rivenditore = line[1]
if prodotto not in prodotti:
print("Attenzione! il prodotto", prodotto, "non esiste")
continue
if prodotto not in prodotti_sospetti:
prodotti_sospetti[prodotto] = []
prodotti_sospetti[prodotto].append(rivenditore)
fio.close()
return prodotti_sospetti
except FileNotFoundError:
exit("Errore! Il file", filename, "non è stato trovato!")
def controlla_acquisti(prodotti: dict, acquisti: dict):
prodotti_sospetti = dict()
for prodotto in acquisti:
if len(acquisti[prodotto]) > 1 or (len(acquisti[prodotto]) == 1 and acquisti[prodotto][0] != prodotti[prodotto]):
prodotti_sospetti[prodotto] = acquisti[prodotto]
return prodotti_sospetti
def stampa_prodotti_sospetti(prodotti: dict, prodotti_sospetti: dict):
print("Elenco transazioni sospette")
for prodotto in prodotti_sospetti:
print("Codice prodotto:", prodotto)
print("Rivenditore ufficiale:", prodotti[prodotto])
print("Lista rivenditori:", " ".join(prodotti_sospetti[prodotto]))
print()
def main():
prodotti = carica_prodotti("prodotti.txt")
acquisti = carica_acquisti("acquisti.txt", prodotti)
sospetti = controlla_acquisti(prodotti, acquisti)
stampa_prodotti_sospetti(prodotti, sospetti)
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,8 @@
P234HF22222 r1011
P234HF22223 r1112
P234HF22225 r1114
P111TG11115 r1015
P111TG11115 r1216
P331LS00110 r1017
P331LS00120 r1318
P331LS00130 r1019

View File

@@ -0,0 +1,3 @@
male
fretta
lavoro

View File

@@ -0,0 +1,23 @@
Principio degli elementi persi
Il raggio di caduta dal banco di lavoro di piccoli elementi varia inversamente alle loro dimensioni - e direttamente alla loro importanza per il completamento del lavoro intrapreso.
Legge di Perussel
Non c'è lavoro tanto semplice che non possa essere fatto male.
Regola di Ray sulla precisione
Misura con un micrometro.
Segna con un gessetto.
Taglia con un'ascia.
Legge dei semafori
Se è verde non hai fretta.
Legge di Pudder
Chi ben comincia, finisce male. Chi comincia male, finisce peggio.
Seconda Legge di Horowitz
In qualunque momento tu accenda la radio, sentirai le ultime note della tua canzone preferita.
Legge di Vile sul valore
Più un oggetto costa, più lontano bisognerà spedirlo per farlo riparare.

View File

@@ -0,0 +1,67 @@
from string import punctuation
def carica_leggi(filename: str):
try:
fio = open(filename, "r")
leggi = {}
titolo = fio.readline()
while titolo != "":
linea = fio.readline()
legge = ""
while linea != "\n" and linea != "":
legge += linea.strip()
linea = fio.readline()
leggi[titolo.strip()] = legge
titolo = fio.readline()
fio.close()
except FileNotFoundError:
exit(f"Errore: Il file {filename} non è stato trovato!")
except IOError:
exit("Errore: Si è verificato un problema durante la lettura del file!")
return leggi
def carica_argomenti(filename: str):
try:
fio = open(filename, "r")
argomenti = [arg.strip() for arg in fio]
fio.close()
except FileNotFoundError:
exit(f"Errore: Il file {filename} non è stato trovato!")
return argomenti
def rimuovi_punteggiatura(stringa: str):
for p in punctuation:
stringa = stringa.replace(p, " ")
return stringa
def main():
leggi = carica_leggi("leggi_di_Murphy.txt")
argomenti = carica_argomenti("argomenti.txt")
for legge in leggi:
testo_legge = leggi[legge]
parole = rimuovi_punteggiatura(testo_legge.lower()).split()
for argomento in argomenti:
if argomento in parole:
if len(testo_legge) > 50:
testo_legge = testo_legge[:50] + "..."
print(legge, "-", testo_legge)
break
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,55 @@
from sys import exit
def carica_piramide(filename: str):
try:
fio = open(filename, "r")
except FileNotFoundError:
exit(f"Attenzione! {filename} non trovato")
mappa = []
for i in fio:
righa = [int(c) for c in i.strip().split()]
mappa.append(righa)
fio.close()
return mappa
def lista_adiacenti(mappa: list, x: int, y: int):
items = []
for a in range(max(0, x - 1), min(x + 2, len(mappa))):
for b in range(max(0, y - 1), min(y + 2, len(mappa[x]))):
if a == x and b == y:
continue
items.append(mappa[a][b])
return items
def cerca_piramidi(mappa: list):
somma_altezze = 0
numero_piramidi = 0
for x in range(len(mappa)):
for y in range(len(mappa[x])):
altezza_massima = max(lista_adiacenti(mappa, x, y))
if mappa[x][y] > altezza_massima:
print(mappa[x][y], x, y)
somma_altezze += mappa[x][y]
numero_piramidi += 1
return somma_altezze / numero_piramidi
def main():
mappa = carica_piramide("mappa.txt")
media = cerca_piramidi(mappa)
print(f"Altezza media: {media} m")
main()

View File

@@ -0,0 +1,10 @@
3 4 4 4 3 2 1 0 0 0
3 4 5 4 3 2 1 1 1 1
3 4 4 4 3 2 2 2 2 1
3 3 3 3 3 3 3 3 2 1
2 2 2 2 2 3 4 3 2 1
1 1 1 1 2 3 3 3 2 1
0 0 0 1 2 2 2 2 2 1
0 0 0 1 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0

View File

@@ -0,0 +1,39 @@
file = open("presenze.txt", "r")
presenze = dict()
for i in file:
i = i.split("f")
presenza = dict()
presenza["number"] = i[1]
presenza["start"] = int(i[2])
presenza["end"] = int(i[3])
presenze[i[0]] = presenza
file.close()
file = open("sospetti.txt", "r")
for sospetto in file:
sospetto = sospetto.strip()
if sospetto not in presenze:
continue
inizio = presenze[sospetto]["start"]
fine = presenze[sospetto]["end"]
notFound = True
print("** Contatti del cliente :", sospetto, "**")
for nome in presenze:
if nome == sospetto:
continue
if min(fine, presenze[nome]["end"]) - max(inizio, presenze[nome]["start"]) > 0:
notFound = False
print("\tContatto con "+ nome + ", telefono "+presenze[nome]["number"])
if notFound:
print("\tll cliente", sospetto, "non ha avuto contatti")
file.close()

Some files were not shown because too many files have changed in this diff Show More