Ukrainian subtitles

← 02-52 Виводимо усі посилання

dummy description

Get Embed Code
9 Languages

Subtitles translated from Russian Showing Revision 1 created 11/19/2013 by natasha.nikityuk.

  1. Отже, ми модифікували нашу процедуру getnexttarget(),
  2. і тепер вона повертає None у якості першого результату, якщо у вхідному рядку немає посилання.
  3. В протилежному випадку вона поверне URL та позицію закриваючої лапки.
  4. І тепер нам залишилось збагнути, як повторити її виклик.
  5. Подивимось на те, що ми зробили раніше.
  6. ми перетворили ці 4 рядки кода у нашу процедуру,
  7. і тепер ми можемо замість того, щоб писати весь цей код,
  8. просто викликати getnexttarget()
  9. та розмістити її результати в змінні.
  10. Тепер у нас є значення URL, яке ми виводимо на екран,
  11. мо продовжимо виводити його, як і раніше.
  12. І нам все ще треба змінювати значення page,
  13. але тепер ми не будемо використовувати для цього end_quote.
  14. Замість нього ми використовуємо це повертне значення,
  15. яке ми просвоїли змінній endpos.
  16. І потім все повторюється знов.
  17. Замість всього цього коду ми робимо ще один виклик getnexttarget(),
  18. і знов використовуємо endpos замість end_quote.
  19. І нам необхідно викликати процедуру, доки ми не дійдемо до кінця сторінки,
  20. проте як ми дізнаємось, що дійши до кінця?
  21. Ну, ми розуміємо що дістались кінця, коли
  22. замість URL повертається None.
  23. І коли виклик getnexttarget() повертає None замість URL,
  24. ми розуміємо, що закінчили.
  25. Ми вже знайшли спосіб повторювати один і той самий код - while-цикл.
  26. Ми дізнались, як виконувати перевірку умови,
  27. щоб перевіряти URL.
  28. І тепер ми знаємо все необхідне для того, аби вивести всі посилання на веб-сторінці.
  29. Я покажу вам, як почати писати цю процедуру,
  30. а ви завершите її.
  31. Ми визначимо процедуру,
  32. яка виводить всі посилання на сторінці,
  33. приймаючи на вхід рядок page; тому ми будемо використовувати у ній while-цикл,
  34. і я залишу порожньою умову while-циклу.
  35. Її вам треба буде вписати самостійно.
  36. В тілі while-циклу ми будемо викликати getnexttarget(),
  37. присвоюючи результати виклику змінних url та endpos.
  38. Те ж саме ми робили у нашому прикладі.
  39. Тепер нам необхідно перевірити правильність отриманого URL,
  40. раніше ми завжди
  41. вважали, що отримуємо коректний URL,
  42. виводили його на екран та продовжували виконувати код, але тепер нам необхідно перевіряти,
  43. чи рівний повертний URL значенню None.
  44. Цим ми й займемося.
  45. У нас є умова if url, та якщо вона істинна, ми знайшли коректний URL.
  46. Тобто ми не отримали значення None у результаті виклику getnexttarget(),
  47. і значить, нам необхідно вивести його на екран, як і раніше.
  48. Ми виводимо URL, та врізуємо уміст page,
  49. прибираючи всі символи до endpos.
  50. Якщо ми не отримауємо коректний URL,
  51. це значить, що getnexttarget() не знайшла посилання.
  52. Тобто на сторінці більше не залишилось посилань,
  53. і нам необхідно зробити щось інше, але замість цього "щось"
  54. я залишу прочерк.
  55. Отже, це все, що нам необхідно для процедури printalllinks() [вивести усі посилання].
  56. Щоб виконати це завдання, вам необхідно буде заповнити два пропуски.
  57. подивимось, чи зможете ви зрозуміти, якою повинна бути умова while-циклу
  58. та вміст else-блоку.
  59. Та якщо ваша здогадка виявиться правильною, ви зможете вивести усі посилання на веб-сторінці.