Въпроси по лекция №2

  1. Надявам се да не съм се заблудил.

    Става на въпрос за кода на страница 31 и 32 от лекцията:

    numbers = range(3)
    
    for number in numbers:
        print('We can count to ' + numbers)
    

    Не липсва едно кастване към str(). Ако е махнато умишлено, някой може ли да ми каже защо?

  2. Здравейте, аз исках да попитам на слайд 5 от лекцията, защо Ще изпринти един от елементите, без гаранция кой ? Тъй като си написах малък unittest и винаги ми връща една и съща стойност, a именно първата. Ето го и примерния тест: https://gist.github.com/yoandinkov/625ae2c80c74861e9807

  3. Защото е множество и няма ред на елементите(по-точно си има някакъв ред ама не може да се очаква какъв точно ще бъде, защото при всяко добавяне на елемент ги пренарежда). В случая понеже са числа ги подрежда по големина, първото число е 0, ти винаги искаш първото => ще връща винаги 0.

    Тествай с множество от стрингове, като след даден тест, добави още стрингове и пак пусни теста или пък добави някакви произволни числа в множеството, тествай, после добави още произволни и пак тествай.

  4. @Йоан, реда на елементите в множествата не е гарантиран по спецификация. Това не го прави непредсказуем. Обазалагам се, че ако направиш set от 50 елемента с различен тип винаги ще получаваш един и същи резултат. Просто защото в самото итериране няма заложено "разбъркване" на елементите.

    Но вече конкретния ред е някакъв имплементационен детайл. Това ще рече, че колкото и пъти да се опиташ да обходиш елементите на set, ползвайки 3.4.3 винаги ще получиш един и същи резултат. Но нямаш никаква гаранция, че няма да сменят тази имплементация в 3.4.4, 3.4.5 или нататък. Дори няма да се учудя, ако тази промяна не бъде посочена в "Release notes".

    Тъй като това по никакъв начин не внася промени в спецификацията на езика и ако някой е разчитал на този ред, проблемът си е негов.

    Никога, по никакъв повод, при никакви обстоятелства, недей да разчиташ на подредбата, в която получаваш елементите от множества или ключовете от речници.

Трябва да сте влезли в системата, за да може да отговаряте на теми.