Diskuze: Špatné testovací řešení

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Vypisuj postupně všechny znaky v rozsahu ASCII a po každém desátém znaku odřádkuj.
def vypis_ascii_tabulku():
for i in range(256):
print(chr(i), end=" ")
if (i % 10) == 9:
print()
vypis_ascii_tabulku()
Takže, je to tak jednoduché?
Moc krát Vám děkuji!
Zkusil jsem napsat to trochu jinak:
print("ASCII tabulka")
print("=============")
seznam = list(range(0, 256)) # seznam kódů a názvů
kod = 0 #první č. kodu v tabulce
for kod, nazev in enumerate(seznam):
nazev = chr(kod)
kod = kod + 1
print(f"{kod}: {nazev}" + "\t", end=" ")
if kod % 10 == 0:
print()
Všechno funguje. ale mám druhou otázku ohledně funkce
end=" "
.
Poraďe prosím, proč v tomto případě:
print(f"{kod}: {nazev}" + "\t", end=" ")
nefunguje zpusob:
print(f"{kod}: {nazev}", end="\t")
?
Proč nemohu použit end="\t"
pro zadání koncovky
tabulatorem?
print("ASCII tabulka")
print("=============")
seznam = list(range(256)) # seznam kódů a názvů
for kod, nazev in enumerate(seznam):
nazev = chr(kod)
print(f"{kod}: {nazev}", end="\t")
if kod % 10 == 9:
print()
Tento kód je funkční, ověřováno v online překladači.
Dvě věci:
Není třeba vytvářet seznam. Kód i znakovou reprezentaci kódu lze vyjádřit přes iterator.
Je dobré vypisovat pouze tisknutelne znaky (od kódu 32), jinak výstup nemusí být korektní. Viz znaky LF a CR a možné další.
Děkuji!!!
Jen: znaky LF a CR a kód 32 - co to znamená?
LF - Line Feed - přesun na nový řádek
CR - Carriage Return - návrat na začátek řádku
Kód 32 dle ASCII představuje mezeru. Znaky 0 až 31 jsou řídící netisknutelné znaky.
Teď je všechno jasné!
Moc krát Vám děkuji!
Pokračuji studování.
Zobrazeno 8 zpráv z 8.