• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Как использовать переменную за пределами цикла Python?

shinenvice034

Active member
11.08.2020
42
0
BIT
0
Доброго дня, пишу некоторый скрипт:
Python:
counter = 0
    while counter != 1:
        length = int(input('Enter the length of string (more than 10 symbols): '))
        if length < 10:
            print('Wrong lenght')
        if length >= 10:
            set = string.ascii_lowercase + string.ascii_uppercase + string.digits
            string = ''.join(random.choice(set) for i in range(length))
            print("Random string of length", length, "is:", string)
            break

Мне нужно сгенерированую строку string использовать за пределами цикла. Как это можно реализовать?
 

Pernat1y

Red Team
05.04.2018
1 443
135
BIT
0
Есть смысл вынести данный код в отдельную функцию и просто возвращать полученную строку.

Python:
counter = 0
    while counter != 1:
А данную конструкцию лучше заменить на что-то простое, типа "while True:"
 
Последнее редактирование:

misha98857

Red Team
13.05.2021
5
19
BIT
2
По идее, ты можешь просто string выше поднять и её потом переопределить или написать, например такой код в виде функции и в ней вернуть переменную string после окончания цикла.

Python:
import random

counter = 0
string = ''
while True:
    length = int(input('Enter the length of string (more than 10 symbols): '))
    if length < 10:
        print('Wrong lenght')
    if length >= 10:
        set = ['a', 'b', 'c']
        string = ''.join(random.choice(set) for i in range(length))
        print("Random string of length", length, "is:", string)
        break
 

floppycrow

New member
23.11.2021
4
0
BIT
0
Как вариант, поместить этот код в функцию, которая будет возращать значение. Ещё можно использовать глобальные переменные, но это зло

Python:
import string
import random

def string_return():
    while True:
        length = int(input('Enter the length of string (more than 10 symbols): '))
        if length < 10:
            print('Wrong lenght')
        if length >= 10:
            set = string.ascii_lowercase + string.ascii_uppercase + string.digits
            new_string = ''.join(random.choice(set) for i in range(length))
            print("Random string of length", length, "is:", new_string)
            return new_string
      
new_string = string_return()
print(new_string)

Возможно, интересно будет глянуть на вариант с глобальными переменными, держи, но лучше использовать функции. Прошу обратить внимание на начало кода

Python:
import string
import random

global new_string

counter = 0
while counter != 1:
    length = int(input('Enter the length of string (more than 10 symbols): '))
    if length < 10:
        print('Wrong lenght')
    if length >= 10:
        set = string.ascii_lowercase + string.ascii_uppercase + string.digits
        new_string = ''.join(random.choice(set) for i in range(length))
        print("Random string of length", length, "is:", new_string)
        break
   
print(new_string)
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!