Commit 89c877bf authored by cermak's avatar cermak

Lecture 2

parent 22e100e4
......@@ -3,7 +3,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# %load first.py\n",
......@@ -16,7 +18,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# %load first-even.py\n",
......@@ -30,7 +34,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# %load first-input.py\n",
......@@ -47,7 +53,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# %load first-comments.py\n",
......@@ -168,9 +176,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.7.6-final"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
}
\ No newline at end of file
......@@ -117,4 +117,30 @@ Existuje zkratka:
% ----------------------------------------------------------------------
\begin{frame}{Příklad: sčítáme posloupnost čísel}
\pycode{posloupnost-soucet-break.py}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}{Příklad: sčítáme posloupnost čísel v Pythonu 3.8}
Novinka v Pythonu 3.8: „mroží“ operátor (assignment expressions / přiřazovací výrazy).
:= přiřadí hodnotu do proměnné a zároveň hodnoty nabývá
\pycode{posloupnost-soucet-mroz.py}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}{Úkol na zbytek hodiny}
Spočítejte, kolik má zadané číslo cifer.
\end{frame}
% ----------------------------------------------------------------------
\end{document}
#!/usr/bin/env python3
# Největší společný dělitel: Euklidův algoritmus s modulem
x = int(input())
y = int(input())
while x > 0 and y > 0:
if x > y:
x %= y
else:
y %= x
if x > 0:
print(x)
else:
print(y)
#!/usr/bin/env python3
# Největší společný dělitel: Euklidův algoritmus s odčítáním
x = int(input())
y = int(input())
while x != y:
if x > y:
x -= y
else:
y -= x
print(x)
#!/usr/bin/env python3
# Největší společný dělitel: Euklidův algoritmus s pár triky navíc
x = int(input())
y = int(input())
while y > 0:
x, y = y, x%y
print(x)
#!/usr/bin/env python3
# Spočítá počet cifer zadaného nezáporného celého čísla
n = int(input())
# pomocí řetězce
# takto jsme to nechtěli
print(f"zadané číslo má {len(str(n))} cifer")
# rekurzí (to se budeme učit)
def cifer(x):
if x < 10:
return 1
return 1 + cifer(x // 10)
print(f"zadané číslo má {cifer(n)} cifer")
# matematická řešení níže nefungují pro nulu!
if n == 0:
print(f"zadané číslo má {1} cifer")
exit() # ukončí program
# řešení s matematickou knihovnou
# nefunguje pro čísla > 999999999999997
import math
print(f"zadané číslo má {int(math.log10(n))+1} cifer")
# pomocí cyklu (to jsme chtěli)
cifer = 0
while n:
cifer += 1
n //= 10
print(f"zadané číslo má {cifer} cifer")
#!/usr/bin/env python3
# Načítá čísla ze vstupu ukončená -1,
# vypíše druhé největší z nich
m1 = 0 # Zatím největší číslo
m2 = 0 # Zatím druhé největší
while True:
n = int(input())
if n == -1:
break
if n >= m1:
m1, m2 = n, m1
elif n >= m2:
m2 = n
print(m2)
#!/usr/bin/env python3
# Načítá čísla ze vstupu ukončená -1,
# vypíše druhé největší z nich
# vypíše jejich součet
m1 = 0 # Zatím největší číslo
m2 = 0 # Zatím druhé největší
s = 0
while True:
n = int(input())
if n == -1:
break
s += n
if n >= m1:
m1, m2 = n, m1
elif n >= m2:
m2 = n
print(m2)
print(s)
#!/usr/bin/env python3
# Načítá čísla ze vstupu ukončená -1,
# vypíše jejich součet
# používáme mrože (walrus operator)
# nutný python 3.8
s = 0
while (n := int(input())) != -1:
s += n
print(s)
\ No newline at end of file
......@@ -4,10 +4,9 @@
s = 0
while True:
n = int(input())
if n == -1:
break
n = int(input())
while n != -1:
s += n
n = int(input())
print(s)
......@@ -6,8 +6,8 @@ d = 2
while d < n:
if n%d == 0:
print("Číslo", n, "je dělitelné", d)
print(f"Číslo {n} je dělitelné {d}")
break
d += 1
else:
print("Číslo", n, "je prvočíslo")
print("Číslo {n} je prvočíslo")
\ No newline at end of file
......@@ -7,10 +7,10 @@ mam_delitele = False
while d < n:
if n%d == 0:
print("Číslo", n, "je dělitelné", d)
print(f"Číslo {n} je dělitelné {d}")
mam_delitele = True
break
d += 1
if not mam_delitele:
print("Číslo", n, "je prvočíslo")
print(f"Číslo {n} je prvočíslo")
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment