Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Delak Jure
- # VS
- # Windows
- '''
- Potrebno je v Pythonu narediti meni, ki uporabniku omogoča naslednje možnosti:
- Izpis vseh oseb v izbrani hiši
- Izpis vseh znancev za izbrano osebo (torej vseh mrežnih sosedov)
- Izpis vseh znancev, ampak ločeno po hišami (samo za Romea in Julijo)
- Izpis osebe s največ znancev
- Na koncu shraniti omrežje v formatu po izbiri, tako da vse informacije glede omrežja ostanejo
- shranjene
- '''
- import matplotlib.pyplot as plt
- import networkx as nx
- #from matplotlib import (izberemo posamezno funkcijo)
- graf=nx.Graph()
- #kreiramo vozlišča
- vozlisca=['Nurse','Tybalt','Friar Laurence','Capulet','Romeo','Benvolio','Montague',
- 'Escalus','Mercutio','Paris','Juliet']
- graf.add_nodes_from(vozlisca)
- print graf.nodes()
- #dodajanje povezav
- povezave=[('Juliet','Nurse'),
- ('Juliet','Tybalt'),
- ('Friar Laurence','Juliet'),
- ('Juliet','Romeo'),
- ('Juliet','Capulet'),
- ('Tybalt','Capulet'),
- ('Capulet','Escalus'),
- ('Capulet','Paris'),
- ('Romeo','Friar Laurence'),
- ('Romeo','Benvolio'),
- ('Romeo','Mercutio'),
- ('Benvolio','Montague'),
- ('Montague','Escalus'),
- ('Mercutio','Escalus'),
- ('Mercutio','Paris'),
- ('Romeo','Montague'),
- ('Paris','Escalus')]
- graf.add_edges_from(povezave)
- nx.draw(graf,with_labels=True)
- #---dodajanje hiš v atribute---
- #capuleti
- graf.node['Juliet']['hisa']='House of Capulet'
- graf.node['Capulet']['hisa']='House of Capulet'
- graf.node['Tybalt']['hisa']='House of Capulet'
- #montague
- graf.node['Romeo']['hisa']='House of Montague'
- graf.node['Benvolio']['hisa']='House of Montague'
- graf.node['Montague']['hisa']='House of Montague'
- #verona
- graf.node['Escalus']['hisa']='Rulling house of Verona'
- graf.node['Mercutio']['hisa']='Rulling house of Verona'
- graf.node['Paris']['hisa']='Rulling house of Verona'
- #brez hiše
- graf.node['Nurse']['hisa']='nima hiše'
- graf.node['Friar Laurence']['hisa']='nima hiše'
- montague={}
- capulet={}
- verona={}
- brez={}
- hise={}
- nx.set_node_attributes(graf,'hisa',hise)
- atribut=nx.get_node_attributes(graf,'hisa')
- nx.write_gml(graf,"graf_gml.gml")
- input1=input('Za izpis vseh oseb v izbrani hiši vtipkaj 1, za izpis vseh znancev za izbrano osebo (torej vseh mrežnih sosedov) vtipkaj 2,za izpis vseh znancev, ampak ločeno po hišami (samo za Romea in Julijo) vtipkaj 3,za izpis osebe s največ znancev vtipkaj 4: ')
- #izpis oseb po hišah
- if input1==1:
- input11=raw_input('Izbrali ste izpis oseb v izbrani hiši, sedaj vnesite ime hiše za katero želite izpisati osebe (Montague,Verona ali Capulet): ')
- if input11=='Montague':
- print ('Osebe ki prihajajo iz hiše Montague so:')
- for voz in graf.nodes():
- if atribut[voz]=='House of Montague':
- print voz
- elif input11=='Capulet':
- print ('Osebe ki prihajajo iz hiše Capulet so:')
- for voz in graf.nodes():
- if atribut[voz]=='House of Capulet':
- print voz
- elif input11=='Verona':
- print ('Osebe ki prihajajo iz hiše Verona so:')
- for voz in graf.nodes():
- if atribut[voz]=='Rulling house of Verona':
- print voz
- else:
- print (' Ta hiša žal ne obstaja')
- #izpis vseh znancev za izbrano osebo
- elif input1==2:
- input22=raw_input('Vnesi ime za katerega želimo preveriti njegove sosede: ')
- for sosedi in graf.nodes():
- a=graf.has_edge(input22,sosedi)
- if a==True:
- print ('Sosed/a %s je %s' %(input22,sosedi))
- #izpis vseh znancev ločeno po hišami samo za Romea in Julijo
- elif input1==3:
- input33=raw_input('Vnesite Juliet ali Romeo in izpisal vam bom sosede razvrščene po hišah: ')
- stevec1=0
- stevec2=0
- stevec3=0
- stevec4=0
- if input33=='Juliet' or input33=='Romeo':
- for sosedi1 in graf.nodes():
- a=graf.has_edge(input33,sosedi1)
- if a==True:
- hisaizpis=atribut[sosedi1]
- if hisaizpis=='House of Montague':
- montague[stevec1]=sosedi1
- stevec1=stevec1+1
- elif hisaizpis=='House of Capulet':
- capulet[stevec2]=sosedi1
- stevec2=stevec2+1
- elif hisaizpis=='Rulling house of Verona':
- verona[stevec3]=sosedi1
- stevec3=stevec3+1
- elif hisaizpis=='nima hiše':
- brez[stevec4]=sosedi1
- stevec4=stevec4+1
- print ('Osebe ki so sosedje %s in prihajajo iz različnih hiš so:' %(input33))
- print ('Hiša Montague:')
- for m in range(0,len(montague)):
- print (montague[m])
- print ('Hiša Capulet:')
- for c in range(0,len(capulet)):
- print (capulet[c])
- print ('Hiša Verona:')
- for v in range(0,len(verona)):
- print (verona[v])
- print ('Brez hiše:')
- for b in range(0,len(brez)):
- print (brez[b])
- else:
- print('Narobe ste vpisali imena')
- #izpis osebe z največ znanci
- elif input1==4:
- stopnje=list(graf.degree().values())
- maximum=max(stopnje)
- for i in range(0,len(stopnje)) :
- if stopnje[i]==maximum:
- print 'Oseba ki ima največ povezav (%d) je: %s'%(maximum,vozlisca[i])
- else:
- print('Vnesli ste napačno številko')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement