Prendi l'input intero con spazio e memorizza il valore in python

Sep 21 2020

Sto cercando di risolvere il problema dell'angolo di clock e lì ho dovuto prendere l'input come di seguito:

Ingresso

2
5 30
6 00

dove La prima riga contiene il numero di casi di test T. Ciascun caso di test contiene due numeri interi h e m che rappresentano l'ora in formato ora e minuto.

Sto cercando di ricevere un input come questo

size=int(input())

for i in range(size):
    h,m=list(map(int,input().split(' ')))

ma non sono in grado di memorizzare il valore per il calcolo dell'angolo di clock poiché sostituisce il valore precedente.

Risposte

Mohammadreza Sep 20 2020 at 22:57

Prova questo:

size = int(input())
angle = []
clock = []

for i in range(size):
    Inp = input().split(' ')
    clock.append(Inp) # store input clock
    hour, minute = int(Inp[0]), int(Inp[1])
    ans = abs((hour * 30 + minute * 0.5) - (minute * 6))
    angle.append(min(360 - ans, ans)) # store angle

print(clock)
print(angle)

Uscita ora = 2, minuto = 2 e ora = 12, minuto = 2:

[[2, 2], [12, 2]]
[49.0, 11.0]
1 Mureinik Sep 20 2020 at 22:39

È possibile dichiarare un elenco per contenere gli input al di fuori del ciclo e aggiungervi ad ogni iterazione:

size=int(input())

clocks = []
for i in range(size):
    clocks.append(list(map(int,input().split(' '))))
Prune Sep 20 2020 at 22:42

Hai praticamente risposto alla domanda da solo: non sovrascrivere il primo input con il secondo finché non hai finito.

size=int(input())

for i in range(size):
    h,m=list(map(int,input().split(' ')))
    # Do you calculation here.
    hour_pos = h + m/60
    angle = ...
    print(angle)