+: intermedios 111-117
This commit is contained in:
parent
6e71ba65dd
commit
7f8905fd4f
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
__pycache__/
|
||||
interm/files/*.txt
|
||||
interm/files/*.csv
|
||||
|
@ -30,8 +30,10 @@ de *Nichola Lacey*
|
||||
|
||||
- [069-079](./interm/interm01.py)
|
||||
- [080-087](./interm/interm02.py)
|
||||
- [088-095](./interm/interm02.py)
|
||||
- [096-104](./interm/interm02.py)
|
||||
- [088-095](./interm/interm03.py)
|
||||
- [096-104](./interm/interm04.py)
|
||||
- [105-110](./interm/interm05.py)
|
||||
- [111-117](./interm/interm06.py)
|
||||
|
||||
## Uso
|
||||
|
||||
|
@ -0,0 +1 @@
|
||||
directorio para los archivos temporales de escritura y lectura
|
@ -3,6 +3,7 @@ from . import interm02 as ex02
|
||||
from . import interm03 as ex03
|
||||
from . import interm04 as ex04
|
||||
from . import interm05 as ex05
|
||||
from . import interm06 as ex06
|
||||
from common.common import (
|
||||
print_challenges,
|
||||
user_input,
|
||||
@ -165,34 +166,34 @@ def challenges05():
|
||||
case _:
|
||||
continue
|
||||
|
||||
#def challenges06():
|
||||
# select_ok = False
|
||||
# while not select_ok:
|
||||
# clear()
|
||||
# i, ex6 = print_challenges(ex06.basics_006)
|
||||
# selection = user_input(i)
|
||||
# match selection:
|
||||
# case 1:
|
||||
# run_func(ex6.over50)
|
||||
# case 2:
|
||||
# run_func(ex6.last_5)
|
||||
# case 3:
|
||||
# run_func(ex6.add_another)
|
||||
# case 4:
|
||||
# run_func(ex6.party)
|
||||
# case 5:
|
||||
# run_func(ex6.compnum)
|
||||
# case 6:
|
||||
# run_func(ex6.between)
|
||||
# case 7:
|
||||
# run_func(ex6.bottles)
|
||||
# case 'v':
|
||||
# return
|
||||
# case 's':
|
||||
# exit(0)
|
||||
# case _:
|
||||
# continue
|
||||
#
|
||||
def challenges06():
|
||||
select_ok = False
|
||||
while not select_ok:
|
||||
clear()
|
||||
i, ex6 = print_challenges(ex06.interm006)
|
||||
selection = user_input(i)
|
||||
match selection:
|
||||
case 1:
|
||||
run_func(ex6.books)
|
||||
case 2:
|
||||
run_func(ex6.add_book)
|
||||
case 3:
|
||||
run_func(ex6.add_n_books)
|
||||
case 4:
|
||||
run_func(ex6.find_by_date)
|
||||
case 5:
|
||||
run_func(ex6.show_data)
|
||||
case 6:
|
||||
run_func(ex6.data_edit)
|
||||
case 7:
|
||||
run_func(ex6.maths_quiz)
|
||||
case 'v':
|
||||
return
|
||||
case 's':
|
||||
exit(0)
|
||||
case _:
|
||||
continue
|
||||
|
||||
#def challenges07():
|
||||
# select_ok = False
|
||||
# while not select_ok:
|
||||
|
185
interm/interm06.py
Normal file
185
interm/interm06.py
Normal file
@ -0,0 +1,185 @@
|
||||
from os import getcwd as pwd
|
||||
import csv
|
||||
|
||||
class interm006:
|
||||
|
||||
def books(self):
|
||||
"""Create a .csv file that will store the following data. Call it “Books.csv”.
|
||||
- Book Author Year Released
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
0 To Kill A Mockingbird Harper Lee 1960
|
||||
1 A Brief History of Time Stephen Hawking 1988
|
||||
2 The Great Gatsby F. Scott Fitzgerald 1922
|
||||
3 The Man Who Mistook His Wife for a Hat Oliver Sacks 1985
|
||||
4 Pride and Prejudice Jane Austen 1813 """
|
||||
file_path = f"{pwd()}/interm/files/Books.csv"
|
||||
books = ['To Kill A Mockingbird', 'A Brief History of Time',
|
||||
'The Great Gatsby', 'The Man Who Mistook His Wife for a Hat',
|
||||
'Pride and Prejudice']
|
||||
authors = ['Harper Lee', 'Stephen Hawking', 'F. Scott Fitzgerald',
|
||||
'Oliver Sacks', 'Jane Austen' ]
|
||||
release = [ 1960, 1988, 1922, 1985, 1813 ]
|
||||
with open(file_path, 'w') as file:
|
||||
for i in range (5):
|
||||
file.write(books[i]+','+authors[i]+','+str(release[i])+'\n')
|
||||
print(f"\nPuedes encontrar el archivo en:\n'{file_path}'\n")
|
||||
with open(file_path, 'r') as file:
|
||||
reader = csv.reader(file)
|
||||
contnt = list(reader)
|
||||
print("- Book Author Year Released")
|
||||
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
|
||||
for i, line in enumerate(contnt):
|
||||
print(str(i).ljust(3), line[0].ljust(40), line[1].ljust(21), line[2])
|
||||
|
||||
def add_book(self):
|
||||
"""Using the Books.csv file from program 111, ask the user to enter
|
||||
another record and add it to the end of the file. Display each row of
|
||||
the .csv file on a separate line."""
|
||||
file_path = f"{pwd()}/interm/files/Books.csv"
|
||||
print("\nAgregando otro libro a la colección")
|
||||
book = input("Ingresa el nombre del libro: ")
|
||||
author = input("Ingresa el autor del libro: ")
|
||||
date = input("Ingresa la fecha del libro: ")
|
||||
new_data = [book, author, date]
|
||||
with open(file_path, 'a') as file:
|
||||
writer = csv.writer(file)
|
||||
writer.writerow(new_data)
|
||||
print(f"\nPuedes encontrar el archivo en:\n'{file_path}'\n")
|
||||
with open(file_path, 'r') as file:
|
||||
reader = csv.reader(file)
|
||||
contnt = list(reader)
|
||||
print("\n- Book "+
|
||||
"Author Year Released")
|
||||
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"+
|
||||
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
|
||||
for i, line in enumerate(contnt):
|
||||
print(str(i).ljust(3), line[0].ljust(40), line[1].ljust(21), line[2])
|
||||
|
||||
def add_n_books(self):
|
||||
"""Using the Books.csv file, ask the user how many records they want to
|
||||
add to the list and then allow them to add that many. After all the data
|
||||
has been added, ask for an author and display all the books in the list
|
||||
by that author. If there are no books by that author in the list,
|
||||
display a suitable message."""
|
||||
file_path = f"{pwd()}/interm/files/Books.csv"
|
||||
to_add = int(input("¿Cuantos libros deseas ingresar?: "))
|
||||
for i in range(to_add):
|
||||
book = input(f"{i+1}) Ingresa el nombre del libro: ").title()
|
||||
author = input(f"{i+1}) Ingresa el autor del libro: ").title()
|
||||
date = input(f"{i+1}) Ingresa la fecha del libro: ")
|
||||
new_data = [book, author, date]
|
||||
with open(file_path, 'a') as file:
|
||||
writer = csv.writer(file)
|
||||
writer.writerow(new_data)
|
||||
author = input("Ingresa un nombre de autor para mostrar sus libros: ").title()
|
||||
with open(file_path, 'r') as file:
|
||||
reader = csv.reader(file)
|
||||
contnt = list(reader)
|
||||
display = False
|
||||
found = []
|
||||
for raw in contnt:
|
||||
if author in raw[1]:
|
||||
display = True
|
||||
found.append(raw)
|
||||
if display:
|
||||
print("\n- Book "+
|
||||
"Author Year Released")
|
||||
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
+"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
|
||||
for i, line in enumerate(found):
|
||||
print(str(i).ljust(3), line[0].ljust(40), line[1].ljust(21), line[2])
|
||||
else:
|
||||
print("Autor no encontrado")
|
||||
|
||||
def find_by_date(self):
|
||||
"""Using the Books.csv file, ask the user to enter a starting year and
|
||||
an end year. Display all books released between those two years."""
|
||||
file_path = f"{pwd()}/interm/files/Books.csv"
|
||||
year_ini = int(input("¿Desde que año quieres buscar?: "))
|
||||
year_end = int(input("¿Hasta que año quieres buscar?: "))
|
||||
with open(file_path, 'r') as file:
|
||||
reader = csv.reader(file)
|
||||
contnt = list(reader)
|
||||
display = False
|
||||
found = []
|
||||
for raw in contnt:
|
||||
if int(raw[2]) in range(year_ini, year_end+1):
|
||||
display = True
|
||||
found.append(raw)
|
||||
if display:
|
||||
print("\n- Book "+
|
||||
"Author Year Released")
|
||||
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
+"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
|
||||
for i, line in enumerate(found):
|
||||
print(str(i).ljust(3), line[0].ljust(40), line[1].ljust(21), line[2])
|
||||
else:
|
||||
print(f"No se encontraron libros entre {year_ini} y {year_end}")
|
||||
|
||||
def show_data(self):
|
||||
"""Using the Books.csv file, display the data in the file along with the
|
||||
row number of each"""
|
||||
file_path = f"{pwd()}/interm/files/Books.csv"
|
||||
with open(file_path, 'r') as file:
|
||||
reader = csv.reader(file)
|
||||
contnt = list(reader)
|
||||
for i, line in enumerate(contnt):
|
||||
print(str(i).ljust(3), line[0].ljust(40), line[1].ljust(21), line[2])
|
||||
|
||||
def data_edit(self):
|
||||
"""Import the data from the Books.csv file into a list. Display the list
|
||||
to the user. Ask them to select which row from the list they want to
|
||||
delete and remove it from the list. Ask the user which data they want to
|
||||
change and allow them to change it. Write the data back to the original
|
||||
.csv file, overwriting the existing data with the amended data."""
|
||||
file_path = f"{pwd()}/interm/files/Books.csv"
|
||||
with open(file_path, 'r') as file:
|
||||
reader = csv.reader(file)
|
||||
contnt = list(reader)
|
||||
for i, data in enumerate(contnt):
|
||||
print(i, data)
|
||||
del_book = int(input("¿Que fila deseas eliminar?: "))
|
||||
contnt.remove(contnt[del_book])
|
||||
for i, data in enumerate(contnt):
|
||||
print(i, data)
|
||||
edit_book = int(input("¿Que fila deseas editar?: "))
|
||||
for i, data in enumerate(contnt[edit_book]):
|
||||
print(i, data)
|
||||
edit_field = int(input("¿Que campo deseas editar?: "))
|
||||
resp = input("Ingresa el nuevo valor: ")
|
||||
contnt[edit_book][edit_field] = resp
|
||||
with open(file_path, 'w') as file:
|
||||
writer = csv.writer(file)
|
||||
writer.writerows(contnt)
|
||||
print("\n- Book "+
|
||||
"Author Year Released")
|
||||
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"+
|
||||
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
|
||||
for i, line in enumerate(contnt):
|
||||
print(str(i).ljust(3), line[0].ljust(40), line[1].ljust(21), line[2])
|
||||
|
||||
def maths_quiz(self):
|
||||
"""Create a simple maths quiz that will ask the user for their name and
|
||||
then generate two random questions. Store their name, the questions they
|
||||
were asked, their answers and their final score in a .csv file. Whenever
|
||||
the program is run it should add to the .csv file and not overwrite
|
||||
anything."""
|
||||
from random import randint
|
||||
file_path = f"{pwd()}/interm/files/Quiz.csv"
|
||||
data = []
|
||||
name = input("Ingresa tu nombre: ")
|
||||
data.append(name)
|
||||
points = 0
|
||||
for _ in range(2):
|
||||
num_1 = randint(1,100)
|
||||
num_2 = randint(1,100)
|
||||
question = f"Cuanto es {num_1} + {num_2}"
|
||||
data.append(question)
|
||||
resp = int(input(f"¿{question}?: "))
|
||||
data.append(resp)
|
||||
if resp == num_1+num_2:
|
||||
points += 1
|
||||
data.append(points)
|
||||
with open(file_path, 'a') as file:
|
||||
writer = csv.writer(file)
|
||||
writer.writerow(data)
|
5
main.py
5
main.py
@ -70,7 +70,7 @@ def interm_challenges():
|
||||
clear()
|
||||
print(content)
|
||||
opcs_default(1)
|
||||
selection = user_input(5)
|
||||
selection = user_input(6)
|
||||
match selection:
|
||||
case 1:
|
||||
interm.challenges01()
|
||||
@ -83,8 +83,7 @@ def interm_challenges():
|
||||
case 5:
|
||||
interm.challenges05()
|
||||
case 6:
|
||||
#interm.challenges06()
|
||||
pass
|
||||
interm.challenges06()
|
||||
case 7:
|
||||
#interm.challenges07()
|
||||
pass
|
||||
|
Loading…
Reference in New Issue
Block a user