Programování často vyžaduje práci s dvourozměrnými poli, což je datová struktura obsahující řádky a sloupce. V Pythonu existuje několik způsobů, jak zadat dvourozměrné pole z klávesnice, a v tomto článku se na ně podíváme.
Prvním způsobem je zavedení pole po vzoru. V takovém případě je uživatel vyzván, aby zadal každý řádek pole zvlášť. Můžeme použít smyčku for nebo while k opakování zadávání a ukládání řádků do pole.
Příklad:rows = int (input ("zadejte počet řádků:"))
columns = int (input ("zadejte počet sloupců:"))
array = []
for i in range(rows):
row = []
for j in range(columns):
element = int (input (f"zadejte položku [][]: "))
row.append(element)
array.append(row)
V tomto příkladu nejprve požadujeme počet řádků a sloupců. Poté vytvoříme prázdné pole a pomocí dvou vnořených cyklů zadáme prvky každého řádku. Každý prvek je přidán do dočasného pole řetězce a poté je tento řádek přidán do hlavního pole.
Druhým způsobem je zadání pole jako jednoho řádku. V takovém případě musí uživatel zadat všechny prvky pole přes mezeru. Můžeme použít metodu split() Chcete-li rozdělit řetězec na prvky a poté je převést na čísla.
Příklad:row = int (input ("zadejte počet řádků:"))
column = int (input ("zadejte počet sloupců:"))
elements = input ("zadejte prvky pole přes mezeru:").split()
array = []
for i in range(row):
array.append([int(elements[j]) for j in range(i * column, (i + 1) * column)])
V tomto příkladu nejprve požadujeme počet řádků a sloupců. Poté požadujeme všechny prvky pole a rozdělíme je metodou split(). Poté použijeme zapnutí seznamu k vytvoření dočasných seznamů a přidáme je do hlavního pole.
Nyní znáte dva způsoby, jak zadat dvourozměrné pole z klávesnice v Pythonu. Vyberte si ten, který vám nejvíce vyhovuje, podle konkrétního úkolu. Hodně štěstí v programování!
Jak zadat dvourozměrné pole z klávesnice v Pythonu
Uvedu příklad programu, který umožňuje uživateli zadat dvourozměrné pole z klávesnice:
rows = int(input("Введите количество строк: "))cols = int(input("Введите количество столбцов: "))matrix = []for i in range(rows):row = []for j in range(cols):ele = int(input("Введите элемент [" + str(i) + "][" + str(j) + "]: "))row.append(ele)matrix.append(row)print("Введенный двумерный массив:")for i in range(rows):for j in range(cols):print(matrix[i][j], end=" ")print()
Při provádění programu je nejprve požadován počet řádků a sloupců, poté jsou zadány položky jeden po druhém. Po zadání pole se zobrazí na obrazovce jako matice.
Je možné, že v procesu zadávání dvourozměrného pole z klávesnice mohou nastat chyby. Uživatel může například zadat místo čísla písmeno. V takovém případě by došlo k chybě ValueError. Abyste se vyhnuli podobným chybám, můžete zabalit vstup prvku pole do bloku try-except:
for i in range(rows):row = []for j in range(cols):try:ele = int(input("Введите элемент [" + str(i) + "][" + str(j) + "]: "))except ValueError:print("Ошибка! Введите число.")ele = int(input("Введите элемент [" + str(i) + "][" + str(j) + "]: "))row.append(ele)matrix.append(row)
Příklady a vysvětlení
V Pythonu lze dvourozměrné pole zobrazit jako seznam seznam seznamů nebo pomocí knihovny numpy. Zvažte obě možnosti:
1. Dvourozměrné pole jako seznam seznamů
Chcete-li vytvořit dvourozměrné pole jako seznam seznamů, musíte zadat velikost pole a poté vyplnit jeho položky pomocí vnořených cyklů:
rows = int(input("Введите количество строк: "))cols = int(input("Введите количество столбцов: "))arr = []for i in range(rows):row = []for j in range(cols):element = int(input(f"Введите элемент [][]: "))row.append(element)arr.append(row)
Poté můžete pole přenést na obrazovku nebo s ním provádět různé operace, například:
for i in range(rows):for j in range(cols):print(arr[i][j], end=" ")print()
Pokud potřebujete přístup k určitému prvku pole, můžete použít syntaxi arr[i][j] , kde i je index řádku a j je index sloupce.
2. Dvourozměrné pole pomocí knihovny numpy
Pokud je nainstalována knihovna numpy, můžete její funkce použít k vytvoření a práci s dvourozměrnými poli. Pro psaní pole z klávesnice můžete použít funkci numpy.array() :
import numpy as nprows = int(input("Введите количество строк: "))cols = int(input("Введите количество столбцов: "))arr = np.array([input().split() for _ in range(rows)], dtype=int)
Kde input().split () odděluje vstupní prvky pole a dtype=int označuje potřebu přeměny prvků na celá čísla.
Dále je možné provádět s řadou různých operací pomocí funkcí a metod poskytovaných knihovnou numpy.