Advertisement
LilChicha174

Untitled

Dec 27th, 2021
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.92 KB | None | 0 0
  1. import wikipedia
  2.  
  3.  
  4. # функция проверки существования страницы
  5.  
  6. def is_page_valid(page):
  7.     try:
  8.         wikipedia.page(page)
  9.     except Exception:
  10.         return False
  11.     return True
  12.  
  13.  
  14. # Проверка существования языка
  15. def language(lang):
  16.     try:
  17.         s = wikipedia.languages()[lang]
  18.         wikipedia.set_lang(lang)
  19.         return True
  20.     except:
  21.         return False
  22.  
  23.  
  24. # Максимальное количество слов в кр. содержании страницы
  25. def max_words(first):
  26.     kol_max = 0
  27.     name_max = None
  28.     for i in range(len(first)):
  29.         if is_page_valid(first[i]):
  30.             name = wikipedia.page(first[i])
  31.             kl = len(name.summary.split())
  32.             if kl >= kol_max:
  33.                 kol_max = kl
  34.                 name_max = name.title
  35.     return [kol_max, name_max]
  36.  
  37.  
  38. # Подзадача №3
  39. def chain_of(first):
  40.     the_end = [first[0]]
  41.     for i in range(len(first) - 1):
  42.         now = first[i]
  43.         next1 = first[i + 1]
  44.         if is_page_valid(now):
  45.             links_now1 = wikipedia.page(now).links
  46.         if next1 in links_now1:
  47.             the_end.append(next1)
  48.             continue
  49.         else:
  50.             for k in links_now1:
  51.                 links_j = wikipedia.page(k).links
  52.                 if next1 in links_j:
  53.                     the_end.append(k)
  54.                     the_end.append(next1)
  55.                     break
  56.     return the_end
  57.  
  58.  
  59. #  list страниц без пробелов
  60. first = input().split(',')
  61. for i in range((len(first))):
  62.     first[i] = first[i].strip()
  63. while True:
  64.     if not (language(first[-1])):
  65.         print("no results")
  66.         break
  67.     else:
  68.         del first[-1]
  69.     kl_max = max_words(first)[0]
  70.     name_of_max = max_words(first)[1]
  71.     print(kl_max, name_of_max)
  72.     the_end = chain_of(first)
  73.     print(the_end)
  74.     break
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement