Skip to content

Instantly share code, notes, and snippets.

@geekdinazor
Created November 19, 2015 20:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save geekdinazor/0c63908574b4a75ca3b5 to your computer and use it in GitHub Desktop.
Save geekdinazor/0c63908574b4a75ca3b5 to your computer and use it in GitHub Desktop.
Ertonun ibretliq python kodları xD
# -*- coding: cp1254 -*
import os
print "Welcome to Assignment 3 (Part1)"
print "-------------------------------"
#START
a = open ("commandsP1.txt")
b = a.read()
c = b.split("\n")
d = len(c)
for i in range (0, d):
e = c[i].split(" ")
if(e[0]=="AU"): #Add User
if(len(e)==3):
qx = e[1]
qy = e[2]
yazdir = open("sn_new.txt", "w")
aa = open ("sn.txt")
bb = aa.read()
cc = bb.split("\n")
dd = len(cc)
isimler = []
degerler = []
for i in range (0,dd):
ee = cc[i].split(":")
isimler.append(str(ee[0]))
degerler.append(str(ee[1]))
if qy not in isimler:
print "There is no user named '{0}'" .format(qy)
elif qx in isimler:
print "This user already exists!!"
else:
yer = isimler.index(qy)
gg = str(degerler[yer]) + " {0}".format(qx)
degerler[yer] = gg
isimler.append(str(qx))
degerler.append(str(qy))
dd = dd+1
print "User '{0}' has been added and tied to '{1}' successfully" .format(qx, qy)
else:
print "Error: Wrong input type for 'AU'!"
elif(e[0]=="RU"): #Remove User
if (len(e)==2):
qx = e[1]
if qx not in isimler:
print "There is no user named 'Z'!!"
else:
yer = isimler.index(qx)
del isimler[yer]
dd = dd - 1
ft = degerler[yer].split(" ")
#print ft
for i in range (0, len(ft)):
mx = e[1]
#print mx
ft1 = isimler.index(ft[i])
erto = []
one = degerler[ft1]
erto = one.split(" ")
to = erto.index(mx)
del erto[to]
kelime = ""
for i in range(0, len(erto)):
kelime = kelime + "{0} ".format(erto[i])
yeni = kelime[0:len(kelime)-1]
degerler[ft1] = yeni
#########
full = ""
for i in range (0, dd):
full = full + "{0}:{1}\n".format(isimler[i], degerler[i])
danaci = full[0:len(full)-1]
yazdir = open ("sn_new.txt", "w")
yazdir.write(danaci)
yazdir.close()
##########
del degerler[yer]
print "User 'S' and its all relations have been removed successfully."
else:
print "Error: Wrong input type! for 'RU'!"
elif(e[0]=="AR"): #Add New Relation
if(len(e)==3):
qx = e[1]
qy = e[2]
if qx not in isimler:
print "No user named '{0}' or '{1}' found!!" .format(qx, qy)
elif qy not in isimler:
print "No user named '{0}' or '{1}' found!!" .format(qx, qy)
else:
yere = isimler.index(qx)
yerk = isimler.index(qy)
if qx in degerler[yerk]:
print "A relation between '{0}' and '{1}' already exists!!" .format(qx, qy)
elif qy in degerler[yere]:
print "A relation between '{0}' and '{1}' already exists!!" .format(qx, qy)
else:
yere = isimler.index(qx)
yerk = isimler.index(qy)
degerler[yere] = degerler[yere] + " {0}".format(qy)
degerler[yerk] = degerler[yerk] + " {0}".format(qx)
print "Relation between '{0}' and '{1}' has been added succesfully." .format(qx, qy)
else:
print "Error: Wrong input type! for 'AR'!"
elif(e[0]=="RR"): # Remove Existing Relation
if(len(e)==3):
qx = e[1]
qy = e[2]
if qx not in isimler:
print "No user named '{0}' or '{1}' found!!" .format(qx, qy)
elif qy not in isimler:
print "No user named '{0}' or '{1}' found!!" .format(qx, qy)
else:
yere = isimler.index(qx)
yerk = isimler.index(qy)
if qx not in degerler[yerk]:
print "No relation between '{0}' and '{1}' found!!" .format(qx, qy)
elif qy not in degerler[yere]:
print "No relation between '{0}' and '{1}' found!!" .format(qy, qx)
else:
yere = isimler.index(qx)
yerk = isimler.index(qy)
one = degerler[yere]
two = degerler[yerk]
erto = one.split(" ")
to = erto.index(qy)
del erto[to]
kelime = ""
for i in range(0, len(erto)):
kelime = kelime + "{0} ".format(erto[i])
yeni = kelime[0:len(kelime)-1]
degerler[yere] = yeni
erto = two.split(" ")
to = erto.index(qx)
del erto[to]
kelime = ""
for i in range(0, len(erto)):
kelime = kelime + "{0} ".format(erto[i])
yeni = kelime[0:len(kelime)-1]
degerler[yerk] = yeni
print "A relation between '{0}' and '{1}' has been removed successfully." .format(qx, qy)
else:
print "Error: Wrong input type! for 'RR'!"
elif(e[0]=="PA"): #Rank Users
if(len(e)==2):
if (int(e[1])<=len(isimler)):
#########
full = ""
for i in range (0, dd):
full = full + "{0}:{1}\n".format(isimler[i], degerler[i])
danaci = full[0:len(full)-1]
yazdir = open ("sn_new.txt", "w")
yazdir.write(danaci)
yazdir.close()
##########
k = open ("sn_new.txt")
l = k.read()
m = l.split("\n")
q = len(m)
isim = []
sayi = []
for i in range(0,q):
n = m[i].split(":")
o = n[1].split(" ")
isim.append(str(n[0]))
sayi.append(int(len(o)))
for i in range(0,q):
print "User '{0}' has {1} friends.".format(isim[i], sayi[i])
k.close()
#TOP L�ST
yeni_isim = isim
yeni_sayi = sayi
tur = int(e[1])
indisler = []
sayilari = []
isimleri = []
for j in range(0,tur):
eb = int(yeni_sayi[0])
indis = int(0)
for i in range(1,len(yeni_sayi)):
if(int(yeni_sayi[i]) > eb):
eb = yeni_sayi[i]
indis = int(i)
sayilari.append(int(eb))
indisler.append(indis)
isimleri.append(yeni_isim[indis])
del yeni_sayi[indis]
del yeni_isim[indis]
for i in range(0, tur):
print "{0}. '{1}': {2}" .format((i+1), isimleri[i], sayilari[i])
else:
print "Invalid input since n is greater than {0}".format(len(isimler))
else:
print "Error: Wrong input type! for 'PA'!"
elif(e[0]=="SA"): #Suggest Friendship
if(len(e)==3):
ed = e[1]
ek = e[2]
if ed not in isim:
print "No user named '{0}' found!!" .format(ed)
elif(sayi[(isim.index(ed))] < int(ek)):
print "User '{0}' has less friend than {1}".format(ed, ek)
else:
kisi = {}
for i in range (0, len(isimler)):
kisi.update({isimler[i]:degerler[i].replace(" ","")})
#------------
mundarliste = set()
x2 = []
itsurusu = list(kisi[ed])
xxx = kisi.keys()
xxx.remove(ed)
print "Suggestion List for '%s' (when MD is %s):" % (ed,ek)
for adam in itsurusu:
xxx.remove(adam)
for kef in itsurusu:
for adam in xxx:
if kef in kisi[adam]:
mundarliste.add((adam,kef))
for x1 in mundarliste:
x2.append(x1[0])
for x1 in set(x2):
if x2.count(x1) >= int(ek):
print "'%s' has %s mutual friends with %s" % (ed, ek, x1)
else:
print "Error: Wrong input type! for 'SA'!"
elif(e[0]=="XX"):
print "Error: Undefined command type!"
#THE END
#print danaci
#########
full = ""
for i in range (0, dd):
full = full + "{0}:{1}\n".format(isimler[i], degerler[i])
danaci = full[0:len(full)-1]
yazdir = open ("sn.txt", "w")
yazdir.write(danaci)
yazdir.close()
##########
os.remove("sn_new.txt")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment