#!/usr/bin/python3
#List Comprehensions
import random
def main():
	ml=[]
	for i in range(10):
		ml.append(i)
	print (*ml)
	ml=[i or i in range(10)]
	sq=[x**2 for x in range(1,11)]
	print (f'List sq len={len(sq)}') #to len  mas dinei  thn diastasi ths listas (episi h lista den einai sxima)
	for el in sq:
		print (el, end=',')
	print("")
	print (*sq)
	print(sq)	
	#x**2 dinami tou 2
	#x/2->float
	#x//2->int
	#x%2 ->modulo
	#filtrarisma listas 
	ml=[i for i in range(100)]
	even_num=[x for x in ml if x%2==0]
	print (even_num)
	#tomi liston(ta koina stoixeia)
	list1=[1,2,3,4]
	list2=[2,4,5,6]
	tomi=[x for x in list1 if x in list2]
	print (tomi)
	#enwsi (task1)
	#list me tuples
	sqt=[(1,2),(2,3),(3,4)]
	print(sqt)
	print(sqt[0])
	print((sqt[0])[0])
	sqtn=[[1,2],[2,3],[3,4]]
	print(sqtn[0][1])
	print(f'shape=({len(sqtn)},{len(sqtn[0])})')	#sxima listas
	#Anastrofi listas
	original=[1,2,3,4,5]
	slice=original[0:2] # koboume thn lista apo to start mexri to end , yparxei kai step alla to paraleipoue giati einai 1
	print (slice)  # [::3]  apo start mexri to  , [::] otan einai :: einai apo thn arxi mexri to telos me bhma meta tis ::
	rev=original[::-1] # edw simainei oti edw eimaste me -1
	print (rev)
	#Pinakas Pollaplasiasmou
	mul_tab=[[i*j for j in range(1,4)] for i in range(1,4)]
	print (mul_tab)
	#Pinakas nxn me midenika
	my_ml=None
	n=None
	try:
		n=input("Δώσε n:")
		n=int(n)
		my_ml=[[0 for _ in range(n)] for _ in range(n)]
	except Exception as e:
		print ("Exveption:"+str(e))
	print(my_ml)
	#3D
	cube=[[[1 for _ in range(10)] for _ in range(n)] for _ in range(n)]
	print (cube)
	#listes kai tyxaioi arithmoi
	numList=[random.randint(1,100) for _ in range(n)]
	print ("Λιστα :", numList)
	print ("Sum=", sum(numList))
	print("Avarage=", sum(numList)/len(numList))		
if __name__=="__main__":
	main()
