• Как сделать вывод элементов списка/строки в одно слово?

    на примере функции шифрования (с минимальными изменениями, как у Вас):
    1. Вынести объявление из цикла;
    2. печать так же вынести из цикла;
    3. результат не "джойним": у нас и так срока в функции шифрования
    def ciph():
    
        string = str(input("Введите строку, которую надо зашифровать: "))
        key = int(input("Введите ключ шифровки: "))
    
        array = ''
        for i in string:
            i = ord(i)
            i += key
            i = chr(i)
            array += i
        print(array)

    А то у Вас, как уже заметил nukler в комментариях, в каждую итерацию, результат обнуляется. Ну и, конечно, вывод результата - единожды, в конце, а не после каждой буквы.

    В функции deciph() - тоже самое с выносом из тела цикла, но тут (в варианте со списком) ''.join(array) как раз пригодится вместо ошибочной "array[array]". Но использование списка в данном случае избыточно (разве что с образовательной т.з.)
    Ответ написан
    1 комментарий
  • Можете ли вы доходчиво объяснить действие цикла for?

    @Alibaba2018
    Представьте что у Вас есть 5 не прозрачных стаканов и только в одном из них муха, а мб её вообще в них нет, но Вам все равно нужно проверить это перед тем как из них пить или что либо дальше делать.

    Так вот: что Вы делаете чтобы проверить?
    Скорее всего Вы просто посмотрите сначала в первый, потом во второй, итд... пока либо не посмотрите в каждый из всех стаканов в наличии и не посчитаете сколько у Вас всего мух.

    Точно также цикл for:
    for loops are for iterating over a collection (like a list or tuple) or an iterator.

    The standard syntax for a for loop is:

    for value in collection:
    # do something with value

    A for loop can be advanced to the next iteration, skipping the remainder of the block,
    using the continue keyword. Consider this code which sums up integers in a list and
    skips None values:

    sequence = [1, 2, None, 4, None, 5]
    total = 0
    for value in sequence:
    if value is None:
    continue
    total += value

    A for loop can be exited altogether using the break keyword. This code sums elements
    of the list until a 5 is reached:

    sequence = [1, 2, 0, 4, 6, 5, 2, 1]
    total_until_5 = 0
    for value in sequence:
    if value == 5:
    break
    total_until_5 += value
    Ответ написан
    1 комментарий