Advertisement
LilChicha174

Untitled

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