Return
всегда завершает выполнение функции/метода. Т.е. после первой итерации цикл гарантированно прервется. Если вы так проверяете наличие элементов в списке, то стоить как минимум на if
.Как перевести код с Pascal на Python?
from math import sqrt
for i in range(289123456, 389123456+1):
sqrtIT = sqrt(i)
numDel = 0
if (round(sqrtIT)) == sqrtIT:
maxDel = 1
for j in range(1, round(sqrtIT)): # Раз ошибка
"""
Собственно, первый цикл 'for i := 289123456 to 389123456 do begin' вы переделали правильно, почему второй так сделали - непонятно
"""
round(sqrtIT)
if (i % j == 0):
if maxDel == 1 and j != 1: # вторая ошибка. В питоне - не равно пишется так: !=
maxDel = i // j # Еще одна ошибка (из коментов)
if (j != round(sqrtIT)): # третья ошибка
numDel += 2
if j * j == i:
numDel += 1
if numDel == 5:
print(i, ' ', maxDel)
a[href="https://qna.habr.com/user/LanMaster"]:hover:after {
content: ' (произвольная приписка)';
}
proxy.RoundRobinProxySwitcher("http://203.28.8.37:80")
const data = Object.entries(сюда кидаете свои данные);
const years = Array
.from(new Set(data.flatMap(n => Object.keys(n[1].G))))
.sort((a, b) => a - b);
const columns = Array
.from(new Set(data.flatMap(n => Object.values(n[1].G).flatMap(Object.keys))))
.sort();
<TableHead>
<TableRow>
<TableCell rowSpan={2}>regions</TableCell>
{years.map(n => <TableCell colSpan={columns.length}>{n}</TableCell>)}
</TableRow>
<TableRow>
{years.flatMap(n => columns.map(m => <TableCell>{m}</TableCell>))}
</TableRow>
</TableHead>
<TableBody>
{data.map(([ region, { G } ]) => (
<TableRow>
<TableCell>{region}</TableCell>
{years.flatMap(n => columns.map(m => <TableCell>{G[n]?.[m]?.value ?? 0}</TableCell>))}
</TableRow>
))}
</TableBody>
function UpdateName() { // ... }
то можно так:this[v].call(null);
let
или const
, то хорошего варианта нет. eval()
, но это крайне нежелательно:eval(`${v}.call(null)`);
— т.е. составляется текстовая строка JS-кода, которая исполняется.const methods = {
UpdateName: () => { /* ... */ },
UpdateAddress: () => { /* ... */ },
};
methods[v].call(null);