Skip to content

Instantly share code, notes, and snippets.

@jordi-petit
Last active April 26, 2018 07:26
Show Gist options
  • Save jordi-petit/4011270c54792649ea430af2130ffeb6 to your computer and use it in GitHub Desktop.
Save jordi-petit/4011270c54792649ea430af2130ffeb6 to your computer and use it in GitHub Desktop.
AP1 2017-09-20

Informació sobre Python

Versió: Utilitzarem Python 3, no Python 2. Entre ambdós hi ha poques diferències, però n'existeixen algunes que ens toquen ben aviat: la divisió entera és amb // enlloc de / i els print son amb parèntesis.

Entrada/Sortida: Per facilitar la lectura de dades, utilitzem la funció read del mòdul jutge. Podeu instal·lar aquest aquest mòdul amb pip3 install jutge (o pip install jutge o potser amb sudo davant, depèn del sistema). Ja es troba instal·lat a Jutge.org i a les aules de laboratori. La documentació és a https://github.com/jutge-org/jutge-python

Execució: Els programes s'editen amb un editor i es desen en un fitxer de codi font amb l'extensió .py, com ara programa.py. Després es poden executar amb python3 programa.py.

Iep! A les aules de la FIB, cal escriure python3.6.

# Hello world
print("Bon dia a tothom")
# Producte de dos enters
from jutge import read
x = read(int)
y = read(int)
p = x * y
print(p)
# Suma de tres enters
from jutge import read
a, b, c = read(int, int, int)
print(a + b + c)
# Màxim de dos enters
from jutge import read
x, y = read(int, int)
if x > y:
m = x
else:
m = y
print(m)

Operacions sobre els enters en Python (int)

Operador Operació
+ suma
- resta
* producte
// divisió entera (:warning:)
% rest de la divisió entera
**     exponenciació (:smiley:)

Comparació entre els enters

Operador Operació
< més petit
> més gran
<= més petit o igual
>= més gran o igual
== igual
!= diferent

Nota

En Python sí que es poden escriure expressions com a <= b <= c.

# Descomposició horària
from jutge import read
n = read(int) # Lectura de l'entrada
h = n // 3600 # Càlcul del nombre d'hores
m = (n % 3600) // 60 # Càlcul del nombre de minuts
s = n % 60 # Càlcul del nombre de segons
print(h, m, s) # Escriptura de les sortides
# Canvis de valors a les variables
i = 3
print(i)
i = 4
print(i)
j = i + 1
print(i, j)
i = i + 1
print(i, j)
# Intercanvi de dues variables
# 1er intent: no funciona !!!
a = ...
b = ...
a = b
b = a
print(a, b)
# 2n intent: ara sí!
a = ...
b = ...
c = a # variable temporal
a = b
b = c
print(a, b)
# Python style
a = ...
b = ...
a, b = b, a # assignació múltiple
# Sumar un segon
from jutge import read
h, m, s = read(int, int, int)
s = s + 1
if s == 60:
s = 0
m = m + 1
if m == 60:
m = 0
h = h + 1
if h == 24:
h = 0
print(h, m, s) # Al problema P34279 cal una sortida més "bonica"
# Escriure tots els nombres de 1 a n
from jutge import read
n = read(int)
i = 1
while i <= n:
print(i)
i = i + 1
# Calcular el factorial d'un natural
from jutge import read
n = read(int)
f = 1
i = 1
while i <= n:
f = f * i
i = i + 1
print(f)
# Calcular ("a mà") la suma dels n primers naturals
from jutge import read
n = read(int)
s = 0
i = 1
while i <= n:
s = s + i
i = i + 1
print(s)
# Calcular l'n-èsim número de Fibonacci
from jutge import read
n = read(int)
a, b = 0, 1
i = 1
while i <= n:
a, b = b, a + b
i = i + 1
print(a)

Deures

Convertiu a Python tots els vostres problemes de la llista Comencem! i Bucles del Jutge. Envieu-los al Jutge (fixeu-vos de triar Python3 com a compilador) per confirmar que ho heu fet bé.

@RoserCantenysSaba
Copy link

Amb el nostre pc també és necessari usar el 3.6 perquè sigui acceptat pel jutge?

@jordi-petit
Copy link
Author

@RoserCantenysSaba: No, són coses independents. Al vostre PC Python 3.5 també us hauria d'anar bé.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment