Revert "[FP] Code reformat"
This reverts commit 1076777203
.
Reformated '1ano/1semestre/fp/extra2/twitter.json' which created over 100,000 lines.
This commit is contained in:
parent
3491537582
commit
cd9462e1d8
|
@ -1,17 +1,13 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
### Projetos + resoluções de exercícios organizados por aulas
|
### Projetos + resoluções de exercícios organizados por aulas
|
||||||
|
|
||||||
### Linguagem usada: [Python](https://www.python.org/)
|
### Linguagem usada: [Python](https://www.python.org/)
|
||||||
|
|
||||||
## [Finished]
|
## [Finished]
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Índice
|
## Índice
|
||||||
|
|
||||||
| Aula nº | Tópicos |
|
| Aula nº | Tópicos |
|
||||||
|------------------------------------------------------------------------------------|----------------------------------------|
|
|--------------------------------------------------------------------------|----------------------------------------|
|
||||||
| [01](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula01) | Introduction, Basics |
|
| [01](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula01) | Introduction, Basics |
|
||||||
| [02](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula02) | Conditionals, Boolean expressions |
|
| [02](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula02) | Conditionals, Boolean expressions |
|
||||||
| [03](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula03) | Functions, Lambda expressions |
|
| [03](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula03) | Functions, Lambda expressions |
|
||||||
|
@ -22,6 +18,5 @@
|
||||||
| [08](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula08) | List Comprehensions, Sets |
|
| [08](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula08) | List Comprehensions, Sets |
|
||||||
| [09](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula09) | Searching, Sorting, Lambda Expressions |
|
| [09](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula09) | Searching, Sorting, Lambda Expressions |
|
||||||
| [10](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula10) | Recursive Functions |
|
| [10](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/1semestre/fp/aula10) | Recursive Functions |
|
||||||
|
|
||||||
---
|
---
|
||||||
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
| Expressão | Valor | Tipo |
|
| Expressão | Valor | Tipo |
|
||||||
|---------------|----------|-----------|
|
|---------------|-----------|-----------|
|
||||||
| 1 + 2 * 5 | 11 | int |
|
| 1 + 2 * 5 | 11 | int |
|
||||||
| 17 / 3.0 | 5.666667 | float |
|
| 17 / 3.0 | 5.666667 | float |
|
||||||
| 17 / 3 | 5.666667 | float |
|
| 17 / 3 | 5.666667 | float |
|
||||||
|
|
|
@ -9,3 +9,4 @@ surname = input("Apelido? ")
|
||||||
course = input("Curso? ")
|
course = input("Curso? ")
|
||||||
|
|
||||||
print("Olá {} {}!\nBem vindo ao curso de {}!".format(name, surname, course))
|
print("Olá {} {}!\nBem vindo ao curso de {}!".format(name, surname, course))
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 01 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp01-intro.pdf)
|
## Aula 01 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp01-intro.pdf)
|
||||||
|
|
||||||
### Tópico principal da aula: Introduction, Basics
|
### Tópico principal da aula: Introduction, Basics
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -4,4 +4,5 @@ mins = secs // 60
|
||||||
m = mins % 60
|
m = mins % 60
|
||||||
h = mins // 60
|
h = mins // 60
|
||||||
|
|
||||||
|
|
||||||
print("{:02d}:{:02d}:{:02d}".format(h, m, s))
|
print("{:02d}:{:02d}:{:02d}".format(h, m, s))
|
|
@ -1,5 +1,6 @@
|
||||||
from math import *
|
from math import *
|
||||||
|
|
||||||
|
|
||||||
A = float(input('Comprimento do cateto A: '))
|
A = float(input('Comprimento do cateto A: '))
|
||||||
B = float(input('Comprimento do cateto B: '))
|
B = float(input('Comprimento do cateto B: '))
|
||||||
|
|
||||||
|
@ -9,5 +10,4 @@ cosseno = A / C
|
||||||
angRad = acos(cosseno)
|
angRad = acos(cosseno)
|
||||||
angDeg = angRad * 180 / pi
|
angDeg = angRad * 180 / pi
|
||||||
|
|
||||||
print(
|
print(f'O comprimento da hipotenusa é {round(C, 2)} e o valor do angulo entre o cateto A e a hipotenusa é {round(angDeg, 2)}°')
|
||||||
f'O comprimento da hipotenusa é {round(C, 2)} e o valor do angulo entre o cateto A e a hipotenusa é {round(angDeg, 2)}°')
|
|
|
@ -1,5 +1,6 @@
|
||||||
from math import sqrt
|
from math import sqrt
|
||||||
|
|
||||||
|
|
||||||
x1, y1 = input("Introduza x1 e y1, separados por uma virgula ',': ").split(',')
|
x1, y1 = input("Introduza x1 e y1, separados por uma virgula ',': ").split(',')
|
||||||
x2, y2 = input("Introduza x2 e y2, separados por uma virgula ',': ").split(',')
|
x2, y2 = input("Introduza x2 e y2, separados por uma virgula ',': ").split(',')
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 02 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp02-selection.pdf)
|
## Aula 02 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp02-selection.pdf)
|
||||||
|
|
||||||
### Tópico principal da aula: Conditionals, Boolean expressions
|
### Tópico principal da aula: Conditionals, Boolean expressions
|
||||||
---
|
---
|
||||||
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# A teenager is a person between 13 and 19 years old, inclusive.
|
# A teenager is a person between 13 and 19 years old, inclusive.
|
||||||
# A child is under 13. A grown-up is 20 or more.
|
# A child is under 13. A grown-up is 20 or more.
|
||||||
# This program outputs the age category for a given input age.
|
# This program outputs the age category for a given input age.
|
||||||
|
|
|
@ -2,8 +2,7 @@ import math
|
||||||
|
|
||||||
POINTS = (6, 13, 4, 18, 1, 20, 5, 12, 9, 14, 11, 8, 16, 7, 19, 3, 17, 2, 15, 10)
|
POINTS = (6, 13, 4, 18, 1, 20, 5, 12, 9, 14, 11, 8, 16, 7, 19, 3, 17, 2, 15, 10)
|
||||||
|
|
||||||
print(
|
print("Introduza as coordenadas (x, y) do dardo.\nRepresenta as posicoes horizontal e vertical respetivamente.\nAmbas em milimetros.")
|
||||||
"Introduza as coordenadas (x, y) do dardo.\nRepresenta as posicoes horizontal e vertical respetivamente.\nAmbas em milimetros.")
|
|
||||||
|
|
||||||
x = int(input('X: '))
|
x = int(input('X: '))
|
||||||
y = int(input('Y: '))
|
y = int(input('Y: '))
|
||||||
|
@ -20,6 +19,7 @@ elif mod < 32:
|
||||||
print('Pontuacao: 25 pontos.')
|
print('Pontuacao: 25 pontos.')
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
angleRad = math.atan2(y, x)
|
angleRad = math.atan2(y, x)
|
||||||
angleDeg = math.degrees(angleRad) - 9
|
angleDeg = math.degrees(angleRad) - 9
|
||||||
score = POINTS[int(angleDeg / 20)]
|
score = POINTS[int(angleDeg / 20)]
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
CTP = float(input('Componente Teorica-pratica: '))
|
CTP = float(input('Componente Teorica-pratica: '))
|
||||||
CP = float(input('Componente Pratica: '))
|
CP = float(input('Componente Pratica: '))
|
||||||
|
|
||||||
|
|
||||||
NF = round(0.3 * CTP + 0.7 * CP)
|
NF = round(0.3 * CTP + 0.7 * CP)
|
||||||
|
|
||||||
if (CTP < 6.6) or (CP < 6.6):
|
if (CTP < 6.6) or (CP < 6.6):
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 03 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp03-functions.pdf)
|
## Aula 03 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp03-functions.pdf)
|
||||||
|
|
||||||
### Tópico principal da aula: Functions
|
### Tópico principal da aula: Functions
|
||||||
---
|
---
|
||||||
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
def isLeapYear(year):
|
def isLeapYear(year):
|
||||||
return year % 400 == 0 if year % 100 == 0 else year % 4 == 0
|
return year % 400 == 0 if year % 100 == 0 else year % 4 == 0
|
||||||
|
|
||||||
|
|
||||||
def monthDays(year, month):
|
def monthDays(year, month):
|
||||||
assert month > 0
|
assert month > 0
|
||||||
|
|
||||||
|
@ -10,7 +9,6 @@ def monthDays(year, month):
|
||||||
|
|
||||||
return days + 1 if (isLeapYear(year) and month == 2) else days
|
return days + 1 if (isLeapYear(year) and month == 2) else days
|
||||||
|
|
||||||
|
|
||||||
def nextDay(year, month, day):
|
def nextDay(year, month, day):
|
||||||
# Verifica se é o último dia do ano
|
# Verifica se é o último dia do ano
|
||||||
if (month, day) == (12, 31):
|
if (month, day) == (12, 31):
|
||||||
|
@ -19,7 +17,7 @@ def nextDay(year, month, day):
|
||||||
day = 1
|
day = 1
|
||||||
|
|
||||||
# Verifica se é o último dia do mês
|
# Verifica se é o último dia do mês
|
||||||
elif monthDays(year, month) == day:
|
elif (monthDays(year, month) == day):
|
||||||
month += 1
|
month += 1
|
||||||
day = 1
|
day = 1
|
||||||
|
|
||||||
|
@ -54,7 +52,6 @@ def main():
|
||||||
y, m, d = nextDay(2017, 12, 31)
|
y, m, d = nextDay(2017, 12, 31)
|
||||||
print(y, m, d) # 2018 1 1 ?
|
print(y, m, d) # 2018 1 1 ?
|
||||||
|
|
||||||
|
|
||||||
# call the main function
|
# call the main function
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -1,9 +1,6 @@
|
||||||
#### Exercícios propostos no [CodeCheck](https://horstmann.com/codecheck/index.html)
|
#### Exercícios propostos no [CodeCheck](https://horstmann.com/codecheck/index.html)
|
||||||
|
|
||||||
___
|
___
|
||||||
|
|
||||||
## Ex 1.
|
## Ex 1.
|
||||||
|
|
||||||
height = 4.5<br />
|
height = 4.5<br />
|
||||||
width = 3<br />
|
width = 3<br />
|
||||||
volume1 = balloonVolume(width, height)<br />
|
volume1 = balloonVolume(width, height)<br />
|
||||||
|
@ -14,9 +11,7 @@ print("Change: ", change)<br />
|
||||||
change = balloonVolume(width + 2, height + 2) - volume2<br />
|
change = balloonVolume(width + 2, height + 2) - volume2<br />
|
||||||
print("Change: ", change)
|
print("Change: ", change)
|
||||||
___
|
___
|
||||||
|
|
||||||
## Ex 2.
|
## Ex 2.
|
||||||
|
|
||||||
def balloonVolume(width, height):<br />
|
def balloonVolume(width, height):<br />
|
||||||
 pi = 3.1415926<br />
|
 pi = 3.1415926<br />
|
||||||
 a = height / 2<br />
|
 a = height / 2<br />
|
||||||
|
@ -24,15 +19,11 @@ def balloonVolume(width, height):<br />
|
||||||
 volume = 4 * pi * a * c * c / 3<br />
|
 volume = 4 * pi * a * c * c / 3<br />
|
||||||
 return volume
|
 return volume
|
||||||
___
|
___
|
||||||
|
|
||||||
## Ex 3.
|
## Ex 3.
|
||||||
|
|
||||||
def hideCharacters(string) :<br />
|
def hideCharacters(string) :<br />
|
||||||
 return "*" * len(string)
|
 return "*" * len(string)
|
||||||
___
|
___
|
||||||
|
|
||||||
## Ex 4.
|
## Ex 4.
|
||||||
|
|
||||||
def isEven(n):<br />
|
def isEven(n):<br />
|
||||||
 if n % 2 == 0:<br />
|
 if n % 2 == 0:<br />
|
||||||
  return True<br />
|
  return True<br />
|
||||||
|
@ -48,9 +39,7 @@ def main() :<br />
|
||||||
<br />
|
<br />
|
||||||
main()
|
main()
|
||||||
___
|
___
|
||||||
|
|
||||||
## Ex 5.
|
## Ex 5.
|
||||||
|
|
||||||
def countSpaces(string):<br />
|
def countSpaces(string):<br />
|
||||||
 spaces = 0<br />
|
 spaces = 0<br />
|
||||||
 for char in string:<br />
|
 for char in string:<br />
|
||||||
|
|
|
@ -4,11 +4,9 @@ def max2(x, y):
|
||||||
else:
|
else:
|
||||||
return y
|
return y
|
||||||
|
|
||||||
|
|
||||||
def max3(x, y, z):
|
def max3(x, y, z):
|
||||||
return max2(x, max2(y, z))
|
return max2(x, max2(y, z))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
n1 = float(input('Introduza dois valores.\nN1: '))
|
n1 = float(input('Introduza dois valores.\nN1: '))
|
||||||
n2 = float(input('N2: '))
|
n2 = float(input('N2: '))
|
||||||
|
|
|
@ -5,6 +5,5 @@ def tax(r):
|
||||||
return 0.2 * r - 100
|
return 0.2 * r - 100
|
||||||
return 0.3 * r - 300
|
return 0.3 * r - 300
|
||||||
|
|
||||||
|
|
||||||
x = float(input('R? '))
|
x = float(input('R? '))
|
||||||
print('O valor de tax(r) é: {:.3f}'.format(tax(x)))
|
print('O valor de tax(r) é: {:.3f}'.format(tax(x)))
|
|
@ -1,18 +1,15 @@
|
||||||
def intersects(a1, b1, a2, b2):
|
def intersects(a1, b1, a2, b2):
|
||||||
assert a1 <= b1 and a2 <= b2, "Os intervalos não são válidos."
|
assert a1 < b1
|
||||||
return a1 <= b2 and a2 <= b1
|
assert a2 < b2
|
||||||
|
|
||||||
|
if a1 < b2 and a2 < b1:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
def main():
|
|
||||||
a1 = float(input("a1: "))
|
a1 = float(input("a1: "))
|
||||||
b1 = float(input("b1: "))
|
b1 = float(input("b1: "))
|
||||||
a2 = float(input("a2: "))
|
a2 = float(input("a2: "))
|
||||||
b2 = float(input("b2: "))
|
b2 = float(input("b2: "))
|
||||||
|
|
||||||
try:
|
|
||||||
print(intersects(a1, b1, a2, b2))
|
print(intersects(a1, b1, a2, b2))
|
||||||
except AssertionError as e:
|
|
||||||
print(e)
|
|
||||||
|
|
||||||
|
|
||||||
main()
|
|
||||||
|
|
|
@ -1,16 +1,11 @@
|
||||||
#### Exercícios propostos no [CodeCheck](https://horstmann.com/codecheck/index.html)
|
#### Exercícios propostos no [CodeCheck](https://horstmann.com/codecheck/index.html)
|
||||||
|
|
||||||
___
|
___
|
||||||
|
|
||||||
## Ex 10.
|
## Ex 10.
|
||||||
|
|
||||||
def hms2sec(h, m, s):<br />
|
def hms2sec(h, m, s):<br />
|
||||||
 sec = h * 3600 + m * 60 + s
|
 sec = h * 3600 + m * 60 + s
|
||||||
 return sec
|
 return sec
|
||||||
___
|
___
|
||||||
|
|
||||||
## Ex 11.
|
## Ex 11.
|
||||||
|
|
||||||
def sec2hms(sec):<br />
|
def sec2hms(sec):<br />
|
||||||
 h = sec // 3600<br />
|
 h = sec // 3600<br />
|
||||||
 m = (sec // 60) % 60<br />
|
 m = (sec // 60) % 60<br />
|
||||||
|
|
|
@ -11,6 +11,5 @@ def countdown(n):
|
||||||
yield n
|
yield n
|
||||||
n -= 1
|
n -= 1
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -7,13 +7,11 @@ def mdc(a, b):
|
||||||
else:
|
else:
|
||||||
return mdc(b, r)
|
return mdc(b, r)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
print('Este programa calcula o máximo divisor comum de dois námeros naturais')
|
print('Este programa calcula o máximo divisor comum de dois námeros naturais')
|
||||||
n1 = int(input('Numero 1: '))
|
n1 = int(input('Numero 1: '))
|
||||||
n2 = int(input('Numero 2: '))
|
n2 = int(input('Numero 2: '))
|
||||||
print(f'\nO Máximo Divisor Comum de {n1} e {n2} é: {mdc(n1, n2)}')
|
print(f'\nO Máximo Divisor Comum de {n1} e {n2} é: {mdc(n1, n2)}')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 04 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp04-iteration.pdf)
|
## Aula 04 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp04-iteration.pdf)
|
||||||
|
|
||||||
### Tópico principal da aula: Iteration, Loops
|
### Tópico principal da aula: Iteration, Loops
|
||||||
---
|
---
|
||||||
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
||||||
|
|
|
@ -20,7 +20,6 @@ Este é um número {category(n, div_list_array)}.
|
||||||
|
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
|
||||||
# Obtém uma lista com todos os dividores de um número
|
# Obtém uma lista com todos os dividores de um número
|
||||||
def divList(n):
|
def divList(n):
|
||||||
divs = []
|
divs = []
|
||||||
|
@ -29,7 +28,6 @@ def divList(n):
|
||||||
divs.append(str(x))
|
divs.append(str(x))
|
||||||
return divs
|
return divs
|
||||||
|
|
||||||
|
|
||||||
# Obtém a categoria de um número
|
# Obtém a categoria de um número
|
||||||
def category(n, divs):
|
def category(n, divs):
|
||||||
total = 0
|
total = 0
|
||||||
|
@ -39,6 +37,5 @@ def category(n, divs):
|
||||||
if total == n: return 'perfeito'
|
if total == n: return 'perfeito'
|
||||||
if total > n: return 'abundante'
|
if total > n: return 'abundante'
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -4,11 +4,9 @@ def factorial(n):
|
||||||
total *= x
|
total *= x
|
||||||
return total
|
return total
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
n = int(input('Introduza um número: '))
|
n = int(input('Introduza um número: '))
|
||||||
print('O fatorial de {} é: {}'.format(n, factorial(n)))
|
print('O fatorial de {} é: {}'.format(n, factorial(n)))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -3,11 +3,9 @@ def fibonacci(n):
|
||||||
if n == 1: return 1
|
if n == 1: return 1
|
||||||
return fibonacci(n-1) + fibonacci(n-2)
|
return fibonacci(n-1) + fibonacci(n-2)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
n = int(input('Introduza um número: '))
|
n = int(input('Introduza um número: '))
|
||||||
print(f'O {n}º número de Fibonacci é: {fibonacci(n)}')
|
print(f'O {n}º número de Fibonacci é: {fibonacci(n)}')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# Pick a random number between 1 and 100, inclusive
|
# Pick a random number between 1 and 100, inclusive
|
||||||
secret = random.randrange(1, 101)
|
secret = random.randrange(1, 101)
|
||||||
|
@ -20,9 +19,7 @@ def main():
|
||||||
c += 1
|
c += 1
|
||||||
trieslist.append(str(num))
|
trieslist.append(str(num))
|
||||||
triesstr = ', '.join(trieslist)
|
triesstr = ', '.join(trieslist)
|
||||||
print(
|
print(f'Well done! The secret number was {secret}. It took you {c} tries to get it right.\nList of tries: {triesstr}')
|
||||||
f'Well done! The secret number was {secret}. It took you {c} tries to get it right.\nList of tries: {triesstr}')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -10,17 +10,14 @@ def GetValues():
|
||||||
count += 1
|
count += 1
|
||||||
return values
|
return values
|
||||||
|
|
||||||
|
|
||||||
# Calcula a média dos valores da lista 'values'
|
# Calcula a média dos valores da lista 'values'
|
||||||
def GetMedia(val):
|
def GetMedia(val):
|
||||||
return sum(val) / len(val)
|
return sum(val) / len(val)
|
||||||
|
|
||||||
|
|
||||||
# Função principal
|
# Função principal
|
||||||
def main():
|
def main():
|
||||||
values = GetValues()
|
values = GetValues()
|
||||||
print('Média dos valores introduzidos: ', GetMedia(values))
|
print('Média dos valores introduzidos: ', GetMedia(values))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -4,7 +4,6 @@
|
||||||
def isLeapYear(year):
|
def isLeapYear(year):
|
||||||
return year%4 == 0 and year%100 != 0 or year%400 == 0
|
return year%4 == 0 and year%100 != 0 or year%400 == 0
|
||||||
|
|
||||||
|
|
||||||
def printLeapYears(year1, year2):
|
def printLeapYears(year1, year2):
|
||||||
"""Print all leap years in range [year1, year2[."""
|
"""Print all leap years in range [year1, year2[."""
|
||||||
for year in listLeapYears(year1, year2):
|
for year in listLeapYears(year1, year2):
|
||||||
|
|
|
@ -10,12 +10,10 @@ def inputTotal():
|
||||||
if n == '': return tot
|
if n == '': return tot
|
||||||
tot += float(n)
|
tot += float(n)
|
||||||
|
|
||||||
|
|
||||||
# MAIN PROGRAM
|
# MAIN PROGRAM
|
||||||
def main():
|
def main():
|
||||||
tot = inputTotal()
|
tot = inputTotal()
|
||||||
print(tot)
|
print(tot)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -15,11 +15,9 @@ def main():
|
||||||
table(i)
|
table(i)
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
||||||
def table(n):
|
def table(n):
|
||||||
for i in range(1, 11):
|
for i in range(1, 11):
|
||||||
print(f'{n} x {i} = {n*i}')
|
print(f'{n} x {i} = {n*i}')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -6,14 +6,12 @@
|
||||||
|
|
||||||
import turtle # allows us to use the turtles library
|
import turtle # allows us to use the turtles library
|
||||||
|
|
||||||
|
|
||||||
# Make turtle t draw a square with the given side length
|
# Make turtle t draw a square with the given side length
|
||||||
def square(t, side):
|
def square(t, side):
|
||||||
for n in range(4):
|
for n in range(4):
|
||||||
t.forward(side)
|
t.forward(side)
|
||||||
t.left(90)
|
t.left(90)
|
||||||
|
|
||||||
|
|
||||||
# Make turtle t draw a spiral.
|
# Make turtle t draw a spiral.
|
||||||
# The first side should have length = start, the second start+incr, etc.,
|
# The first side should have length = start, the second start+incr, etc.,
|
||||||
# until the length reaches length=end (exclusive).
|
# until the length reaches length=end (exclusive).
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 05 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp05-sequences.pdf)
|
## Aula 05 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp05-sequences.pdf)
|
||||||
|
|
||||||
### Tópico principal da aula: Tuples, Lists
|
### Tópico principal da aula: Tuples, Lists
|
||||||
---
|
---
|
||||||
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
||||||
|
|
|
@ -10,6 +10,5 @@ def shorten(string):
|
||||||
abv += char
|
abv += char
|
||||||
return abv
|
return abv
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
|
@ -19,7 +19,6 @@ def nameToTels(partName, telList, nameList):
|
||||||
tels.append(telList[index])
|
tels.append(telList[index])
|
||||||
return tels
|
return tels
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# Lists of telephone numbers and names
|
# Lists of telephone numbers and names
|
||||||
telList = ['975318642', '234000111', '777888333', '911911911']
|
telList = ['975318642', '234000111', '777888333', '911911911']
|
||||||
|
|
|
@ -15,6 +15,7 @@ print(len(train))
|
||||||
# Qual o total de passageiros?
|
# Qual o total de passageiros?
|
||||||
print(sum(train))
|
print(sum(train))
|
||||||
|
|
||||||
|
|
||||||
# Os dias da semana:
|
# Os dias da semana:
|
||||||
week = ['sab', 'dom', 'seg', 'ter', 'qua', 'qui', 'sex']
|
week = ['sab', 'dom', 'seg', 'ter', 'qua', 'qui', 'sex']
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,6 @@ def passengers(train, n):
|
||||||
num2 = sum(class2)
|
num2 = sum(class2)
|
||||||
return [num1, num2]
|
return [num1, num2]
|
||||||
|
|
||||||
|
|
||||||
def test():
|
def test():
|
||||||
train1 = [12, 32, 10, 21]
|
train1 = [12, 32, 10, 21]
|
||||||
train2 = [9, 29, 19]
|
train2 = [9, 29, 19]
|
||||||
|
@ -27,7 +26,6 @@ def test():
|
||||||
print(passengers(train2, 1))
|
print(passengers(train2, 1))
|
||||||
print(passengers(train3, 0))
|
print(passengers(train3, 0))
|
||||||
|
|
||||||
|
|
||||||
# Run tests:
|
# Run tests:
|
||||||
test()
|
test()
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ def transfer1car(t1, t2):
|
||||||
t2.append(t1[-1])
|
t2.append(t1[-1])
|
||||||
t1.remove(t1[-1])
|
t1.remove(t1[-1])
|
||||||
|
|
||||||
|
|
||||||
def test():
|
def test():
|
||||||
train1 = [12, 32, 10, 21]
|
train1 = [12, 32, 10, 21]
|
||||||
train2 = [9, 29, 19]
|
train2 = [9, 29, 19]
|
||||||
|
@ -22,7 +21,6 @@ def test():
|
||||||
transfer1car(train3, train1)
|
transfer1car(train3, train1)
|
||||||
print(train1, train2, train3)
|
print(train1, train2, train3)
|
||||||
|
|
||||||
|
|
||||||
# Run tests:
|
# Run tests:
|
||||||
test()
|
test()
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@ def match(t1, t2, g1, g2):
|
||||||
t1[2] += 1
|
t1[2] += 1
|
||||||
t2[2] += 1
|
t2[2] += 1
|
||||||
|
|
||||||
|
|
||||||
def test():
|
def test():
|
||||||
team1 = ["Ajax", 0, 0, 0]
|
team1 = ["Ajax", 0, 0, 0]
|
||||||
team2 = ["Benfica", 0, 0, 0]
|
team2 = ["Benfica", 0, 0, 0]
|
||||||
|
@ -32,7 +31,6 @@ def test():
|
||||||
match(team3, team1, 0, 3)
|
match(team3, team1, 0, 3)
|
||||||
print(team1, team2, team3)
|
print(team1, team2, team3)
|
||||||
|
|
||||||
|
|
||||||
# Run tests:
|
# Run tests:
|
||||||
test()
|
test()
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ def inputDate():
|
||||||
d = int(input("Dia? "))
|
d = int(input("Dia? "))
|
||||||
return (y, m, d)
|
return (y, m, d)
|
||||||
|
|
||||||
|
|
||||||
# Complete a definição de forma que inputPerson(msg)
|
# Complete a definição de forma que inputPerson(msg)
|
||||||
# peça o nome de uma pessoa e a sua data de nascimento
|
# peça o nome de uma pessoa e a sua data de nascimento
|
||||||
# e devolva esses dados num tuplo com a forma (nome, (ano, mẽs, dia)).
|
# e devolva esses dados num tuplo com a forma (nome, (ano, mẽs, dia)).
|
||||||
|
@ -19,7 +18,6 @@ def inputPerson(msg):
|
||||||
birth = inputDate()
|
birth = inputDate()
|
||||||
return (name, birth)
|
return (name, birth)
|
||||||
|
|
||||||
|
|
||||||
def test():
|
def test():
|
||||||
print("Natal de 2020")
|
print("Natal de 2020")
|
||||||
natal = inputDate()
|
natal = inputDate()
|
||||||
|
@ -33,7 +31,6 @@ def test():
|
||||||
older = p1[1] < p2[1]
|
older = p1[1] < p2[1]
|
||||||
print("p1 é mais velha que p2:", older)
|
print("p1 é mais velha que p2:", older)
|
||||||
|
|
||||||
|
|
||||||
# Run tests:
|
# Run tests:
|
||||||
test()
|
test()
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
MESESPT = ("janeiro", "fevereiro", "março", "abril", "maio", "junho",
|
MESESPT = ("janeiro", "fevereiro", "março", "abril", "maio", "junho",
|
||||||
"julho", "agosto", "setembro", "outubro", "novembro", "dezembro")
|
"julho", "agosto", "setembro", "outubro", "novembro", "dezembro")
|
||||||
|
|
||||||
|
|
||||||
# Complete a função para que, dado um tuplo (ano, mes, dia)
|
# Complete a função para que, dado um tuplo (ano, mes, dia)
|
||||||
# devolva um data por extenso.
|
# devolva um data por extenso.
|
||||||
# Por exemplo, datePT((1938, 1, 22)) deve devolver "22 de janeiro de 1938".
|
# Por exemplo, datePT((1938, 1, 22)) deve devolver "22 de janeiro de 1938".
|
||||||
|
@ -13,7 +12,6 @@ def datePT(date):
|
||||||
s = f"{str(dia)} de {MESESPT[mes-1]} de {ano}"
|
s = f"{str(dia)} de {MESESPT[mes-1]} de {ano}"
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
|
||||||
# Complete a definição para converter uma data no formato "DD/MM/AAAA"
|
# Complete a definição para converter uma data no formato "DD/MM/AAAA"
|
||||||
# num tuplo de inteiros com (ano, mês, dia).
|
# num tuplo de inteiros com (ano, mês, dia).
|
||||||
# Por exemplo: parseDMY("25/12/2020") deve devolver (2020, 12, 25).
|
# Por exemplo: parseDMY("25/12/2020") deve devolver (2020, 12, 25).
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 06 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp06-files+args+exceptions.pdf)
|
## Aula 06 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp06-files+args+exceptions.pdf)
|
||||||
|
|
||||||
### Tópico principal da aula: Files, Exceptions
|
### Tópico principal da aula: Files, Exceptions
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -32,6 +32,5 @@ def main():
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -44,3 +44,5 @@ def main():
|
||||||
# Call main function
|
# Call main function
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 07 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp07-dictionaries.pdf)
|
## Aula 07 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp07-dictionaries.pdf)
|
||||||
|
|
||||||
### Tópico principal da aula: Dictionaries
|
### Tópico principal da aula: Dictionaries
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import math
|
|
||||||
|
|
||||||
from extras.allMatches import * # importa a função allMatches criada na aula05
|
from extras.allMatches import * # importa a função allMatches criada na aula05
|
||||||
|
import math
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
@ -59,14 +58,14 @@ def getTable(teams, results):
|
||||||
|
|
||||||
|
|
||||||
def updateStats(table, team, gm, gs):
|
def updateStats(table, team, gm, gs):
|
||||||
table[team][5] += (
|
table[team][5] += (points := 1 if gm == gs else (3 if gm > gs else 0)) # calcula os pontos a atribuir à equipa e adiciona à tabela
|
||||||
points := 1 if gm == gs else (3 if gm > gs else 0)) # calcula os pontos a atribuir à equipa e adiciona à tabela
|
|
||||||
table[team][math.trunc(2 - points/2)] += 1 # determina o index ao qual atribui o jogo (V/E/D)
|
table[team][math.trunc(2 - points/2)] += 1 # determina o index ao qual atribui o jogo (V/E/D)
|
||||||
table[team][3] += gm # adiciona os golos marcados
|
table[team][3] += gm # adiciona os golos marcados
|
||||||
table[team][4] += gs # adiciona os golos marcados
|
table[team][4] += gs # adiciona os golos marcados
|
||||||
|
|
||||||
|
|
||||||
def printTable(table):
|
def printTable(table):
|
||||||
|
|
||||||
print(f"\n{'Equipa':<15}\tV\tE\tD\tGM\tGS\tPts")
|
print(f"\n{'Equipa':<15}\tV\tE\tD\tGM\tGS\tPts")
|
||||||
|
|
||||||
for team in table:
|
for team in table:
|
||||||
|
|
|
@ -37,6 +37,7 @@ def transfer(bag1, amount, bag2):
|
||||||
|
|
||||||
|
|
||||||
def transferProcess(bag1, amount, bag2, coins):
|
def transferProcess(bag1, amount, bag2, coins):
|
||||||
|
|
||||||
bagBackup = (bag1.copy(), bag2.copy())
|
bagBackup = (bag1.copy(), bag2.copy())
|
||||||
amountBackup = amount
|
amountBackup = amount
|
||||||
|
|
||||||
|
@ -112,3 +113,4 @@ def main():
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ value = input("Enter value: ")
|
||||||
# Última vez (quando aparecer 0 em Key:
|
# Última vez (quando aparecer 0 em Key:
|
||||||
print(data[3])
|
print(data[3])
|
||||||
```
|
```
|
||||||
|
|
||||||
<div style="text-align: center">
|
<div style="text-align: center">
|
||||||
|
|
||||||
| Key | Value | Size | Output |
|
| Key | Value | Size | Output |
|
||||||
|
@ -20,5 +19,4 @@ print(data[3])
|
||||||
| 3 | Y | 3 | |
|
| 3 | Y | 3 | |
|
||||||
| 7 | Q | 4 | |
|
| 7 | Q | 4 | |
|
||||||
| 0 | | | Y |
|
| 0 | | | Y |
|
||||||
|
|
||||||
</div>
|
</div>
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 08 - [Slides 1](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp08-comprehensions.pdf) - [Slides 2](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp08-sets.pdf)
|
## Aula 08 - [Slides 1](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp08-comprehensions.pdf) - [Slides 2](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp08-sets.pdf)
|
||||||
|
|
||||||
### Tópicos principais da aula: List Comprehensions, Sets
|
### Tópicos principais da aula: List Comprehensions, Sets
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# Devolve o IMC para uma pessoa com peso w e altura h.
|
# Devolve o IMC para uma pessoa com peso w e altura h.
|
||||||
def imc(w, h):
|
def imc(w, h):
|
||||||
return w/h**2
|
return w/h**2
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
A = "reading"
|
A = "reading"
|
||||||
B = "eating"
|
B = "eating"
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 09 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp09-searching+sorting.pdf)
|
## Aula 09 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp09-searching+sorting.pdf)
|
||||||
|
|
||||||
### Tópicos principais da aula: Searching, Sorting, Lambda Expressions
|
### Tópicos principais da aula: Searching, Sorting, Lambda Expressions
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import bisect
|
import bisect
|
||||||
|
|
||||||
|
|
||||||
with open("wordlist.txt", "r") as f:
|
with open("wordlist.txt", "r") as f:
|
||||||
word_list: list[str] = f.read().split()
|
word_list: list[str] = f.read().split()
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# This function sorts a list (like list.sort)
|
# This function sorts a list (like list.sort)
|
||||||
# using the insertion sort algorithm.
|
# using the insertion sort algorithm.
|
||||||
# Modify it to accept a key= keyword argument that works like in list.sort.
|
# Modify it to accept a key= keyword argument that works like in list.sort.
|
||||||
|
@ -47,3 +48,4 @@ def main():
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import sys
|
import sys
|
||||||
|
import math
|
||||||
|
|
||||||
|
|
||||||
def integrate(f, a, b, n):
|
def integrate(f, a, b, n):
|
||||||
|
|
|
@ -34,6 +34,6 @@ def main():
|
||||||
s = polynomial([1, -1, 0, 100]) # creates s(x)=x³-x²+100
|
s = polynomial([1, -1, 0, 100]) # creates s(x)=x³-x²+100
|
||||||
print([s(x) for x in xx]) # [100, 100, 104, 118]
|
print([s(x) for x in xx]) # [100, 100, 104, 118]
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# Tabela classificativa da Primeira Liga de futebol de Portugal em 2018-11-30.
|
# Tabela classificativa da Primeira Liga de futebol de Portugal em 2018-11-30.
|
||||||
# (Descarregada de https://www.resultados.com/futebol/portugal/primeira-liga/)
|
# (Descarregada de https://www.resultados.com/futebol/portugal/primeira-liga/)
|
||||||
|
|
||||||
|
@ -42,6 +43,7 @@ def printTabela(tabela):
|
||||||
# dado um registo de uma equipa, devolve o número de jogos que a equipa jogou.
|
# dado um registo de uma equipa, devolve o número de jogos que a equipa jogou.
|
||||||
numJogos = lambda reg: reg[V]+reg[E]+reg[D]
|
numJogos = lambda reg: reg[V]+reg[E]+reg[D]
|
||||||
|
|
||||||
|
|
||||||
# a)
|
# a)
|
||||||
# Complete a expressão lambda para definir uma função que,
|
# Complete a expressão lambda para definir uma função que,
|
||||||
# dado um registo de uma equipa, devolva o número de pontos da equipa.
|
# dado um registo de uma equipa, devolva o número de pontos da equipa.
|
||||||
|
@ -55,6 +57,7 @@ def main():
|
||||||
|
|
||||||
print(tabela[-1][N], pontos(tabela[-1])) # Chaves 7?
|
print(tabela[-1][N], pontos(tabela[-1])) # Chaves 7?
|
||||||
|
|
||||||
|
|
||||||
# Mostra a tabela classificativa original, não ordenada:
|
# Mostra a tabela classificativa original, não ordenada:
|
||||||
printTabela(tabela)
|
printTabela(tabela)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
# Fundamentos de Programação
|
# Fundamentos de Programação
|
||||||
|
|
||||||
## Aula 10 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp10-Recursion.pdf)
|
## Aula 10 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/1semestre/fp/slides/tp10-Recursion.pdf)
|
||||||
|
|
||||||
### Tópicos principais da aula: Recursive Functions
|
### Tópicos principais da aula: Recursive Functions
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -46,3 +46,4 @@ def main():
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# Generates all length-3 words with symbols taken from the given alphabet.
|
# Generates all length-3 words with symbols taken from the given alphabet.
|
||||||
def genWords3(symbols):
|
def genWords3(symbols):
|
||||||
return [ x+y+z for x in symbols for y in symbols for z in symbols ]
|
return [ x+y+z for x in symbols for y in symbols for z in symbols ]
|
||||||
|
@ -25,6 +26,6 @@ def main():
|
||||||
lstC = genWords("01", 4) # should return all length-4 binary words
|
lstC = genWords("01", 4) # should return all length-4 binary words
|
||||||
print(lstC)
|
print(lstC)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@ endX("xxhixx") → "hixxxx"
|
||||||
endX("hixhix") → "hihixx"
|
endX("hixhix") → "hihixx"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def endX(s):
|
def endX(s):
|
||||||
if s == '':
|
if s == '':
|
||||||
return ''
|
return ''
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# Calcula o factorial de n, baseado na recorrencia n! = n*(n-1)!.
|
# Calcula o factorial de n, baseado na recorrencia n! = n*(n-1)!.
|
||||||
# Mas não termina! Detete a causa e corrija o erro.
|
# Mas não termina! Detete a causa e corrija o erro.
|
||||||
def fact(n):
|
def fact(n):
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from ezgraphics import GraphicsWindow
|
from ezgraphics import GraphicsWindow
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,6 @@ def traced(func):
|
||||||
|
|
||||||
return tracedfunc
|
return tracedfunc
|
||||||
|
|
||||||
|
|
||||||
# Initial tracing prefix:
|
# Initial tracing prefix:
|
||||||
traced.indent = ""
|
traced.indent = ""
|
||||||
|
|
||||||
|
@ -39,13 +38,13 @@ traced.indent = ""
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
# How to use this module:
|
# How to use this module:
|
||||||
from traced import traced
|
from traced import traced
|
||||||
|
|
||||||
|
|
||||||
@traced
|
@traced
|
||||||
def func(x):
|
def func(x):
|
||||||
return x*x
|
return x*x
|
||||||
|
|
||||||
|
|
||||||
func(3)
|
func(3)
|
||||||
|
|
||||||
|
|
|
@ -27,3 +27,4 @@ def score(guess, secret):
|
||||||
cows_index.append(i)
|
cows_index.append(i)
|
||||||
|
|
||||||
return len(bulls_index), len(cows_index)
|
return len(bulls_index), len(cows_index)
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,7 @@ def loadDataBase(fname, produtos):
|
||||||
with open(fname, 'r') as f: # Abre o ficheiro em modo de leitura
|
with open(fname, 'r') as f: # Abre o ficheiro em modo de leitura
|
||||||
productsFileContent = f.read() # Cria uma string com o conteudo do ficheiro
|
productsFileContent = f.read() # Cria uma string com o conteudo do ficheiro
|
||||||
|
|
||||||
for product in productsFileContent.split('\n')[
|
for product in productsFileContent.split('\n')[1:]: # Divide a string 'productsFileContent' numa lista com cada produto
|
||||||
1:]: # Divide a string 'productsFileContent' numa lista com cada produto
|
|
||||||
productComponents = product.split(';') # Divide as componentes do produto (código, nome, secção, preço, iva)
|
productComponents = product.split(';') # Divide as componentes do produto (código, nome, secção, preço, iva)
|
||||||
|
|
||||||
if len(productComponents) != 5:
|
if len(productComponents) != 5:
|
||||||
|
@ -30,8 +29,7 @@ def registaCompra(produtos):
|
||||||
mostra nome, quantidade e preço final de cada um,
|
mostra nome, quantidade e preço final de cada um,
|
||||||
e devolve dicionário com {codigo: quantidade, ...}
|
e devolve dicionário com {codigo: quantidade, ...}
|
||||||
"""
|
"""
|
||||||
compra = {"totals": [0, 0,
|
compra = {"totals": [0, 0, 0]} # Inicia o dicionário da compra com os totais da mesma: [total bruto, total iva, total liquido]
|
||||||
0]} # Inicia o dicionário da compra com os totais da mesma: [total bruto, total iva, total liquido]
|
|
||||||
userInput = input('Code? ')
|
userInput = input('Code? ')
|
||||||
while userInput != "":
|
while userInput != "":
|
||||||
try:
|
try:
|
||||||
|
@ -66,8 +64,7 @@ def fatura(produtos, compra):
|
||||||
"""Imprime a fatura de uma dada compra."""
|
"""Imprime a fatura de uma dada compra."""
|
||||||
|
|
||||||
# Obtém a lista de secções presentes na compra (por ordem alfabética)
|
# Obtém a lista de secções presentes na compra (por ordem alfabética)
|
||||||
sections = sorted(
|
sections = sorted(list({section for section in [product[1] for code, product in produtos.items() if code in compra]}))
|
||||||
list({section for section in [product[1] for code, product in produtos.items() if code in compra]}))
|
|
||||||
|
|
||||||
# Itera as secções para apresentar os produtos ordenados por secção
|
# Itera as secções para apresentar os produtos ordenados por secção
|
||||||
for section in sections:
|
for section in sections:
|
||||||
|
@ -78,8 +75,7 @@ def fatura(produtos, compra):
|
||||||
|
|
||||||
# Itera os códigos para apresentar as informações de cada produto
|
# Itera os códigos para apresentar as informações de cada produto
|
||||||
for code in sectionProductsCodes:
|
for code in sectionProductsCodes:
|
||||||
print(
|
print(f"{compra[code]:>4} {produtos[code][0]:<31}({int(produtos[code][3]*100):>2}%){round(compra[code]*produtos[code][2]*(1+produtos[code][3]), 2):>11}")
|
||||||
f"{compra[code]:>4} {produtos[code][0]:<31}({int(produtos[code][3] * 100):>2}%){round(compra[code] * produtos[code][2] * (1 + produtos[code][3]), 2):>11}")
|
|
||||||
|
|
||||||
# Apresenta os totais da compra
|
# Apresenta os totais da compra
|
||||||
print(f"""{'Total Bruto:':>41}{round(compra["totals"][0], 2):>11}
|
print(f"""{'Total Bruto:':>41}{round(compra["totals"][0], 2):>11}
|
||||||
|
@ -124,6 +120,5 @@ def main(args):
|
||||||
|
|
||||||
# Não altere este código / Do not change this code
|
# Não altere este código / Do not change this code
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main(sys.argv[1:])
|
main(sys.argv[1:])
|
||||||
|
|
|
@ -98,9 +98,7 @@ def fatura(calls: dict, phone_number: str) -> None:
|
||||||
|
|
||||||
|
|
||||||
def validate_phone_number(phone_number: str) -> bool:
|
def validate_phone_number(phone_number: str) -> bool:
|
||||||
return phone_number.isdigit() and len(phone_number) >= 3 if phone_number[0] != "+" else phone_number[
|
return phone_number.isdigit() and len(phone_number) >= 3 if phone_number[0] != "+" else phone_number[1:].isdigit() and len(phone_number[1:]) >= 3
|
||||||
1:].isdigit() and len(
|
|
||||||
phone_number[1:]) >= 3
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -74,8 +74,7 @@ def print_results(journeys: dict, journey: int, budget: int) -> None:
|
||||||
price = 1000
|
price = 1000
|
||||||
else:
|
else:
|
||||||
price = 5000
|
price = 5000
|
||||||
print(
|
print(f"TEM {right_bets_count} CERTAS. {'SEM PRÉMIO' if right_bets_count < 7 else ('3º PRÉMIO' if right_bets_count < 8 else ('2º PRÉMIO' if right_bets_count < 9 else '1º PRÉMIO'))}")
|
||||||
f"TEM {right_bets_count} CERTAS. {'SEM PRÉMIO' if right_bets_count < 7 else ('3º PRÉMIO' if right_bets_count < 8 else ('2º PRÉMIO' if right_bets_count < 9 else '1º PRÉMIO'))}")
|
|
||||||
budget += price
|
budget += price
|
||||||
|
|
||||||
get_user_input(journeys, budget)
|
get_user_input(journeys, budget)
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -23,6 +23,7 @@ print(twits[0]["text"])
|
||||||
# Algumas mensagens contêm hashtags:
|
# Algumas mensagens contêm hashtags:
|
||||||
print(twits[880]["text"])
|
print(twits[880]["text"])
|
||||||
|
|
||||||
|
|
||||||
# A)
|
# A)
|
||||||
word_count: dict[str, int] = {}
|
word_count: dict[str, int] = {}
|
||||||
|
|
||||||
|
@ -37,16 +38,19 @@ word_list = list(word_count.keys())
|
||||||
|
|
||||||
print("A)\n" + str(word_list), end="\n\n")
|
print("A)\n" + str(word_list), end="\n\n")
|
||||||
|
|
||||||
|
|
||||||
# B)
|
# B)
|
||||||
|
|
||||||
ordered_list = sorted(word_list, key=lambda t: word_count[t], reverse=True)
|
ordered_list = sorted(word_list, key=lambda t: word_count[t], reverse=True)
|
||||||
print("B)\n" + str(ordered_list), end="\n\n")
|
print("B)\n" + str(ordered_list), end="\n\n")
|
||||||
|
|
||||||
|
|
||||||
# C)
|
# C)
|
||||||
|
|
||||||
ordered_hashtag_list = [word for word in ordered_list if word.startswith('#')]
|
ordered_hashtag_list = [word for word in ordered_list if word.startswith('#')]
|
||||||
print("C)\n" + str(ordered_hashtag_list), end="\n\n")
|
print("C)\n" + str(ordered_hashtag_list), end="\n\n")
|
||||||
|
|
||||||
|
|
||||||
# D)
|
# D)
|
||||||
print("D)\n")
|
print("D)\n")
|
||||||
most_used = word_count[ordered_hashtag_list[0]]
|
most_used = word_count[ordered_hashtag_list[0]]
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# On a chessboard, positions are marked with letters between a and h for the column and a
|
# On a chessboard, positions are marked with letters between a and h for the column and a
|
||||||
# number between 1 and 8 for the row. The first place on the board, a1, is black. The next
|
# number between 1 and 8 for the row. The first place on the board, a1, is black. The next
|
||||||
# is white, alternating across a row. Odd rows start with black, even rows start with white.
|
# is white, alternating across a row. Odd rows start with black, even rows start with white.
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# Given a string s and a string t, return a string in which all the characters
|
# Given a string s and a string t, return a string in which all the characters
|
||||||
# of s that occur in t have been replaced by a _ sign. The comparisons are
|
# of s that occur in t have been replaced by a _ sign. The comparisons are
|
||||||
# case sensitive.
|
# case sensitive.
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
# Given a string s, return the longest prefix that is repeated somewhere else in the string.
|
# Given a string s, return the longest prefix that is repeated somewhere else in the string.
|
||||||
# For example, "abcdabejf" would return "ab" as "ab" starts at the beginning of the string
|
# For example, "abcdabejf" would return "ab" as "ab" starts at the beginning of the string
|
||||||
# and is repeated again later. Do not use the find method.
|
# and is repeated again later. Do not use the find method.
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
def printStocks(stocks):
|
def printStocks(stocks):
|
||||||
for stock in stocks:
|
for stock in stocks:
|
||||||
print(
|
print(f"{stock[0]:<10}{stock[1]:<19}{stock[2]:>6.2f}{stock[3]:>10.2f}{stock[4]:>10}{(stock[3]/stock[2]-1)*100:>7.1f}%")
|
||||||
f"{stock[0]:<10}{stock[1]:<19}{stock[2]:>6.2f}{stock[3]:>10.2f}{stock[4]:>10}{(stock[3] / stock[2] - 1) * 100:>7.1f}%")
|
|
||||||
|
|
|
@ -3,6 +3,5 @@ def load(fname):
|
||||||
with open(fname, 'r') as f:
|
with open(fname, 'r') as f:
|
||||||
for stock in f:
|
for stock in f:
|
||||||
components = stock[:-1].split('\t')
|
components = stock[:-1].split('\t')
|
||||||
stocks_list.append(
|
stocks_list.append((components[0], components[1], float(components[2]), float(components[3]), int(components[4])))
|
||||||
(components[0], components[1], float(components[2]), float(components[3]), int(components[4])))
|
|
||||||
return stocks_list
|
return stocks_list
|
||||||
|
|
|
@ -14,7 +14,6 @@ Se não, deve devolver a quantidade que não conseguiu descarregar.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
# Se w=['coal', 45], então w[0]='coal' e w[1]=45.
|
# Se w=['coal', 45], então w[0]='coal' e w[1]=45.
|
||||||
|
|
||||||
def unload(t, m, q):
|
def unload(t, m, q):
|
||||||
|
|
|
@ -4,7 +4,7 @@ Por exemplo, onlyCaps("John Fitzgerald Kennedy") deve devolver "JFK".
|
||||||
A solução tem de ser recursiva e não pode usar ciclos.
|
A solução tem de ser recursiva e não pode usar ciclos.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def onlyCaps(s):
|
def onlyCaps(s):
|
||||||
# NOTE: ch.isupper() -> True if ch is uppercase.
|
# NOTE: ch.isupper() -> True if ch is uppercase.
|
||||||
return "" if len(s) == 0 else (s[0] + onlyCaps(s[1:]) if s[0].isupper() else onlyCaps(s[1:]))
|
return "" if len(s) == 0 else (s[0] + onlyCaps(s[1:]) if s[0].isupper() else onlyCaps(s[1:]))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue