Diff
checker
Testo
Testo
Immagini
Documenti
Excel
Cartelle
Legal
Enterprise
Applicazione per desktop
Prezzi
Accedi
Scarica Diffchecker Desktop
Confronta il testo
Trova la differenza tra due file di testo
Strumenti
Cronologia
Editor live
Comprimi invariate
Senza a capo
Layout
Diviso
Unificato
Livello di dettaglio
Intelligente
Parola
Carattere
Evidenziazione sintassi
Scegli sintassi
Ignora
Trasforma testo
Vai alla prima modifica
Modifica input
Diffchecker Desktop
Il modo più sicuro per usare Diffchecker. Ottieni l'app Diffchecker Desktop: i tuoi diff non lasciano mai il tuo computer!
Ottieni Desktop
app-separating-code-to-models
Creato
6 anni fa
Il diff non scade mai
Eliminare
Esporta
Condividere
Spiegare
52 rimozioni
Linee
Totale
Rimosso
Caratteri
Totale
Rimosso
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
102 linee
Copia tutti
39 aggiunte
Linee
Totale
Aggiunto
Caratteri
Totale
Aggiunto
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
101 linee
Copia tutti
Copia
Copiato
Copia
Copiato
import
os
import
random
import psycopg2
import psycopg2
Copia
Copiato
Copia
Copiato
from psycopg2.errors import DivisionByZero
from dotenv import load_dotenv
import database
import database
Copia
Copiato
Copia
Copiato
from connection_pool import pool
from models.option import Option
from models.poll import Poll
Copia
Copiato
Copia
Copiato
DATABASE_PROMPT = "Enter the DATABASE_URI value or leave empty to load from .env file: "
MENU_PROMPT = """-- Menu --
MENU_PROMPT = """-- Menu --
1) Create new poll
1) Create new poll
2) List open polls
2) List open polls
3) Vote on a poll
3) Vote on a poll
4) Show poll votes
4) Show poll votes
5) Select a random winner from a poll option
5) Select a random winner from a poll option
6) Exit
6) Exit
Enter your choice: """
Enter your choice: """
NEW_OPTION_PROMPT = "Enter new option text (or leave empty to stop adding options): "
NEW_OPTION_PROMPT = "Enter new option text (or leave empty to stop adding options): "
Copia
Copiato
Copia
Copiato
def prompt_create_poll(
connection
):
def prompt_create_poll(
):
poll_
title = input("Enter poll title: ")
title = input("Enter poll title: ")
poll_
owner = input("Enter poll owner: ")
owner = input("Enter poll owner: ")
options
=
[]
poll
=
Poll(title, owner)
poll.save()
while (new_option := input(NEW_OPTION_PROMPT)):
while (new_option := input(NEW_OPTION_PROMPT)):
Copia
Copiato
Copia
Copiato
option
s.append
(new_option)
poll.add_
option
(new_option)
database.create_poll(connection, poll_title, poll_owner, options)
Copia
Copiato
Copia
Copiato
def list_open_polls(
connection
):
def list_open_polls(
):
polls = database.get_polls(connection)
for poll in
P
oll
.all()
:
print(f"{poll
.id
}: {poll
.title
} (created by {poll
.owner
})")
for poll in
p
oll
s
:
print(f"{poll
[0]
}: {poll
[1]
} (created by {poll
[2]
})")
Copia
Copiato
Copia
Copiato
def prompt_vote_poll(
connection
):
def prompt_vote_poll(
):
poll_id = int(input("Enter poll would you like to vote on: "))
poll_id = int(input("Enter poll would you like to vote on: "))
Copia
Copiato
Copia
Copiato
poll_options = database.get_poll_details(connection, poll_id)
_print_poll_options(
Poll.get(
poll_
id).
options)
_print_poll_options(
poll_
options)
option_id = int(input("Enter option you'd like to vote for: "))
option_id = int(input("Enter option you'd like to vote for: "))
username = input("Enter the username you'd like to vote as: ")
username = input("Enter the username you'd like to vote as: ")
Copia
Copiato
Copia
Copiato
database.add_poll_vote(connection, username,
option_id)
Option.get(
option_id)
.vote(username)
Copia
Copiato
Copia
Copiato
def _print_poll_options(
poll_with_
options):
def _print_poll_options(
options):
for option in
poll_with_
options:
for option in
options:
print(f"{option
[3]
}: {option
[4]
}")
print(f"{option
.id
}: {option
.text
}")
Copia
Copiato
Copia
Copiato
def show_poll_votes(
connection
):
def show_poll_votes(
):
poll_id = int(input("Enter poll you would like to see votes for: "))
poll_id = int(input("Enter poll you would like to see votes for: "))
Copia
Copiato
Copia
Copiato
poll = Poll.get(poll_id)
options = poll.options
votes_per_option = [len(option.votes) for option in options]
total_votes = sum(votes_per_option)
try:
try:
Copia
Copiato
Copia
Copiato
poll_and_votes = database.get_poll_and_vote_results(connection, poll_id)
for option, votes in zip(options, votes_per_option):
except
DivisionByZero
:
percentage = votes / total_votes * 100
percentage = votes / total_votes * 100
print(f"{option.text} for {votes} ({percentage:.2f}% of total)")
except
ZeroDivisionError
:
print("No votes yet cast for this poll.")
print("No votes yet cast for this poll.")
Copia
Copiato
Copia
Copiato
else:
for result in poll_and_votes:
print(f"{result[1]} got {result[2]} votes ({result[3]:.2f}% of total)")
Copia
Copiato
Copia
Copiato
def randomize_poll_winner(
connection
):
def randomize_poll_winner(
):
poll_id = int(input("Enter poll you'd like to pick a winner for: "))
poll_id = int(input("Enter poll you'd like to pick a winner for: "))
Copia
Copiato
Copia
Copiato
poll
_options
=
database
.get
_poll_details(connection,
poll_id)
poll
=
Poll
.get
(
poll_id)
_print_poll_options(poll
_
options)
_print_poll_options(poll
.
options)
option_id = int(input("Enter which is the winning option, we'll pick a random winner from voters: "))
option_id = int(input("Enter which is the winning option, we'll pick a random winner from voters: "))
Copia
Copiato
Copia
Copiato
winner =
database.get_
random
_poll_
vote
(connection, option_id
)
votes = Option.get(option_id).votes
winner =
random
.choice(
vote
s
)
print(f"The randomly selected winner is {winner[0]}.")
print(f"The randomly selected winner is {winner[0]}.")
MENU_OPTIONS = {
MENU_OPTIONS = {
"1": prompt_create_poll,
"1": prompt_create_poll,
"2": list_open_polls,
"2": list_open_polls,
"3": prompt_vote_poll,
"3": prompt_vote_poll,
"4": show_poll_votes,
"4": show_poll_votes,
"5": randomize_poll_winner
"5": randomize_poll_winner
}
}
def menu():
def menu():
Copia
Copiato
Copia
Copiato
database_uri = input(DATABASE_PROMPT)
connection =
pool.getconn(
)
if not database_uri:
load_dotenv()
database_uri = os.environ["DATABASE_URI"]
connection =
psycopg2.connect(database_uri
)
database.create_tables(connection)
database.create_tables(connection)
Copia
Copiato
Copia
Copiato
pool.putconn(connection)
while (selection := input(MENU_PROMPT)) != "6":
while (selection := input(MENU_PROMPT)) != "6":
try:
try:
Copia
Copiato
Copia
Copiato
MENU_OPTIONS[selection](
connection
)
MENU_OPTIONS[selection](
)
except KeyError:
except KeyError:
print("Invalid input selected. Please try again.")
print("Invalid input selected. Please try again.")
menu()
menu()
Diff salvati
Testo originale
Apri file
import os import psycopg2 from psycopg2.errors import DivisionByZero from dotenv import load_dotenv import database DATABASE_PROMPT = "Enter the DATABASE_URI value or leave empty to load from .env file: " MENU_PROMPT = """-- Menu -- 1) Create new poll 2) List open polls 3) Vote on a poll 4) Show poll votes 5) Select a random winner from a poll option 6) Exit Enter your choice: """ NEW_OPTION_PROMPT = "Enter new option text (or leave empty to stop adding options): " def prompt_create_poll(connection): poll_title = input("Enter poll title: ") poll_owner = input("Enter poll owner: ") options = [] while (new_option := input(NEW_OPTION_PROMPT)): options.append(new_option) database.create_poll(connection, poll_title, poll_owner, options) def list_open_polls(connection): polls = database.get_polls(connection) for poll in polls: print(f"{poll[0]}: {poll[1]} (created by {poll[2]})") def prompt_vote_poll(connection): poll_id = int(input("Enter poll would you like to vote on: ")) poll_options = database.get_poll_details(connection, poll_id) _print_poll_options(poll_options) option_id = int(input("Enter option you'd like to vote for: ")) username = input("Enter the username you'd like to vote as: ") database.add_poll_vote(connection, username, option_id) def _print_poll_options(poll_with_options): for option in poll_with_options: print(f"{option[3]}: {option[4]}") def show_poll_votes(connection): poll_id = int(input("Enter poll you would like to see votes for: ")) try: poll_and_votes = database.get_poll_and_vote_results(connection, poll_id) except DivisionByZero: print("No votes yet cast for this poll.") else: for result in poll_and_votes: print(f"{result[1]} got {result[2]} votes ({result[3]:.2f}% of total)") def randomize_poll_winner(connection): poll_id = int(input("Enter poll you'd like to pick a winner for: ")) poll_options = database.get_poll_details(connection, poll_id) _print_poll_options(poll_options) option_id = int(input("Enter which is the winning option, we'll pick a random winner from voters: ")) winner = database.get_random_poll_vote(connection, option_id) print(f"The randomly selected winner is {winner[0]}.") MENU_OPTIONS = { "1": prompt_create_poll, "2": list_open_polls, "3": prompt_vote_poll, "4": show_poll_votes, "5": randomize_poll_winner } def menu(): database_uri = input(DATABASE_PROMPT) if not database_uri: load_dotenv() database_uri = os.environ["DATABASE_URI"] connection = psycopg2.connect(database_uri) database.create_tables(connection) while (selection := input(MENU_PROMPT)) != "6": try: MENU_OPTIONS[selection](connection) except KeyError: print("Invalid input selected. Please try again.") menu()
Testo modificato
Apri file
import random import psycopg2 import database from connection_pool import pool from models.option import Option from models.poll import Poll MENU_PROMPT = """-- Menu -- 1) Create new poll 2) List open polls 3) Vote on a poll 4) Show poll votes 5) Select a random winner from a poll option 6) Exit Enter your choice: """ NEW_OPTION_PROMPT = "Enter new option text (or leave empty to stop adding options): " def prompt_create_poll(): title = input("Enter poll title: ") owner = input("Enter poll owner: ") poll = Poll(title, owner) poll.save() while (new_option := input(NEW_OPTION_PROMPT)): poll.add_option(new_option) def list_open_polls(): for poll in Poll.all(): print(f"{poll.id}: {poll.title} (created by {poll.owner})") def prompt_vote_poll(): poll_id = int(input("Enter poll would you like to vote on: ")) _print_poll_options(Poll.get(poll_id).options) option_id = int(input("Enter option you'd like to vote for: ")) username = input("Enter the username you'd like to vote as: ") Option.get(option_id).vote(username) def _print_poll_options(options): for option in options: print(f"{option.id}: {option.text}") def show_poll_votes(): poll_id = int(input("Enter poll you would like to see votes for: ")) poll = Poll.get(poll_id) options = poll.options votes_per_option = [len(option.votes) for option in options] total_votes = sum(votes_per_option) try: for option, votes in zip(options, votes_per_option): percentage = votes / total_votes * 100 percentage = votes / total_votes * 100 print(f"{option.text} for {votes} ({percentage:.2f}% of total)") except ZeroDivisionError: print("No votes yet cast for this poll.") def randomize_poll_winner(): poll_id = int(input("Enter poll you'd like to pick a winner for: ")) poll = Poll.get(poll_id) _print_poll_options(poll.options) option_id = int(input("Enter which is the winning option, we'll pick a random winner from voters: ")) votes = Option.get(option_id).votes winner = random.choice(votes) print(f"The randomly selected winner is {winner[0]}.") MENU_OPTIONS = { "1": prompt_create_poll, "2": list_open_polls, "3": prompt_vote_poll, "4": show_poll_votes, "5": randomize_poll_winner } def menu(): connection = pool.getconn() database.create_tables(connection) pool.putconn(connection) while (selection := input(MENU_PROMPT)) != "6": try: MENU_OPTIONS[selection]() except KeyError: print("Invalid input selected. Please try again.") menu()
Trovare la differenza