Как я могу остановить некоторое время цикл?

Вы можете проверить это самостоятельно, если напишите многострочный текст

Ввод:

1

2

3

4

5

6

7

в текстовое поле с помощью конструктора и свойства Text, вы можете видеть, что он генерирует что-то вроде этого:

текстовое значение:

"1 \ r \ n2 \ r \ n3 \ r \ n4 \ r \ n5 \ r \ n6 \ r \ n7 "

Код:

string txt = multiLineTextBox.Text;

Поэтому, если вы добавите \r\n к существующему тексту, он добавит текст в новую строку:

for (int i = Convert.ToInt32(textBox1.Text); i <= Convert.ToInt32(textBox2.Text); i++)
{
    int a = i % 2;
    if (a == 0)
    {
        textBox3.Text = $"{textBox3.Text}{i}\r\n";
        // or using string.Format for older versions
        //textBox3.Text = string.Format("{0}{1}\r\n", textBox3.Text, i);
    }
}
12
задан Termininja 23 December 2015 в 00:27
поделиться

4 ответа

просто форматируйте свой код правильно:

def determine_period(universe_array):
    period=0
    tmp=universe_array
    while True:
        tmp=apply_rules(tmp)#aplly_rules is a another function
        period+=1
        if numpy.array_equal(tmp,universe_array) is True:
            return period
        if period>12:  #i wrote this line to stop it..but seems its doesnt work....help..
            return 0
        else:   
            return period

Необходимо понять что break оператор в Вашем примере выйдет из бесконечного цикла, с которым Вы создали while True. Таким образом, когда условие повреждения Правда, программа выйдет из бесконечного цикла и продолжится к следующему блоку с отступом. С тех пор нет никакого после блока в Вашем коде, функциональных концах, и ничего не возвращайте. Таким образом, я исправил Ваш код путем замены break оператор a return оператор.

После Вашей идеи использовать бесконечный цикл, это - лучший способ записать это:

def determine_period(universe_array):
    period=0
    tmp=universe_array
    while True:
        tmp=apply_rules(tmp)#aplly_rules is a another function
        period+=1
        if numpy.array_equal(tmp,universe_array) is True:
            break
        if period>12:  #i wrote this line to stop it..but seems its doesnt work....help..
            period = 0
            break

    return period
17
ответ дан 2 December 2019 в 05:42
поделиться
def determine_period(universe_array):
    period=0
    tmp=universe_array
    while period<12:
        tmp=apply_rules(tmp)#aplly_rules is a another function
        if numpy.array_equal(tmp,universe_array) is True:
            break 
        period+=1

    return period
8
ответ дан 2 December 2019 в 05:42
поделиться

is оператор в Python, вероятно, не делает то, что Вы ожидаете. Вместо этого:

    if numpy.array_equal(tmp,universe_array) is True:
        break

Я записал бы это как это:

    if numpy.array_equal(tmp,universe_array):
        break

is оператор тестирует объектные идентификационные данные, которые являются чем-то очень отличающимся от равенства.

2
ответ дан 2 December 2019 в 05:42
поделиться

Я сделал бы это с помощью для цикла как показано ниже:

def determine_period(universe_array):
    tmp = universe_array
    for period in xrange(1, 13):
        tmp = apply_rules(tmp)
        if numpy.array_equal(tmp, universe_array):
            return period
    return 0
0
ответ дан 2 December 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: