Что делает C# для цикла, делают, когда все выражения отсутствуют. например, для (;;) {}

Iterrows возвращает кортеж (индекс, (столбцы)), поэтому решение состоит в том, чтобы разобрать его немного по-другому:

for _,(first_name, last_name) in names.iterrows():
    url = "https://zbmath.org/authors/?q={}+{}".format(first_name, 
    last_name)
    r = requests.get(url)
    html = BeautifulSoup(r.text)
    html=str(html)
    frequency = re.findall('Joint\sPublications">(.*?)</a>', html)
    freq.append(frequency)

print(freq)
8
задан lc. 30 March 2009 в 03:03
поделиться

10 ответов

Это - действительно бесконечный цикл.

Под капотом компилятор/дрожание оптимизирует это к (эффективно) простой операции JMP.

Это - также эффективно то же как:

while (true)
{
}

(за исключением того, что это также оптимизировано далеко, так как (истинная) часть некоторое время выражения обычно требует своего рода сравнения, однако в этом случае, нет ничего для сравнения. Просто сохраните цикличное выполнение!)

5
ответ дан 3 November 2019 в 12:50
поделиться

Да, это - бесконечный цикл.

Примеры:

for (; ;) { } (иначе: краб)

while (true) { }

do { } while (true)

15
ответ дан 3 November 2019 в 12:50
поделиться

Да, это - бесконечный цикл. Можно не учесть любое из этих трех выражений, хотя, по моему опыту, это является обычно или первым или все 3.

4
ответ дан 3 November 2019 в 12:50
поделиться

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

2
ответ дан 3 November 2019 в 12:50
поделиться

Это бесконечно цикл. Эффективно, это совпадает с этим:

while (true)
{
}
3
ответ дан 3 November 2019 в 12:50
поделиться

for (; ;) { } бесконечный цикл, Вы корректны.

если Вы хотите использовать его, то необходимо поместить некоторое условие в тело цикла, так, чтобы это могло выйти из цикла.

for (; ;) 
{
    if (conditionTrue)
        break;
    else
        continue;
} 
3
ответ дан 3 November 2019 в 12:50
поделиться

Нет никаких значений по умолчанию для первой и третьей части (они не принимают значение по умолчанию ни к чему, и она работала бы). Значение по умолчанию для условного выражения true который сделает for(;;) эффективно бесконечный цикл. (Если значение по умолчанию, как предполагалось, было false, было бы бесполезно иметь такую конструкцию).

2
ответ дан 3 November 2019 в 12:50
поделиться

Точно так же, как в C и C++ можно опустить любой из этих трех или всех трех.

1
ответ дан 3 November 2019 в 12:50
поделиться

В Справочнике программиста Microsoft C# говорится:

Все выражения для оператора являются дополнительными; например, следующее утверждение используется для записи бесконечного цикла:

for (;;) {
   ...
}
1
ответ дан 3 November 2019 в 12:50
поделиться

Это - бесконечный цикл :).

0
ответ дан 3 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

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