Dzielenie liczby przez 2 i wyświetlenie wyniku w postaci liczby całkowitej

2017-10-17 21:48
0

Mam taki programik (fragment) w Pythonie. Zwraca on mi dane z 4 kanałów przetwornika analogowo cyfrowego.
Chciałbym aby wartość dla i=1 (i tylko dla i=1) została podzielona przez 2 i wyświetlona jako liczba całkowita. Kompletnie nie znam się na Pythonie. Czy mogę liczyć na pomoc?

values = [0]*4
for i in range(4):
    values[i] = adc.read_adc(i, gain=GAIN, data_rate=128)
# Print the ADC values.
print(', {0:>5} , {1:>5} , {2:>5} , {3:>5}'.format(*values))
edytowany 1x, ostatnio: furious programming, 2017-10-17 22:57

Pozostało 580 znaków

2017-10-17 23:35
0
Pyxis napisał(a):

Źle zrobiłeś wcięcia (za dużo/za mało spacji).

Mój kod wygląda teraz tak:

values = [0]*4
if i == 0:
    values[i] = int(values[i] / 2)
for i in range(4):
    values[i] = adc.read_adc(i, gain=GAIN, data_rate=128)
# Print the ADC values.
print(', {0:>5} , {1:>5} , {2:>5} , {3:>5}'.format(*values))

Ale i tak wyrzuca błąd:

Traceback (most recent call last):
  File "/home/pi/Public/ads1015.py", line 24, in <module>
    if i == 0:
NameError: name 'i' is not defined

Pozostało 580 znaków

2017-10-17 23:41
0
Crude Monte Carlo napisał(a):

głupi błąd powinno być tak:

values = [adc.read_adc(i, gain=GAIN, data_rate=128) for i in range(4)]
values = [values[i] // 2 if i == 1 else values[i] for i in range(len(values))]
print(', {0:>5} , {1:>5} , {2:>5} , {3:>5}'.format(*values))

EDIT wersja z pętlą

values = [0]*4
for i in range(4):
    values[i] = adc.read_adc(i, gain=GAIN, data_rate=128)
    if i == 1:
        values[i] = values[i] // 2
# Print the ADC values.
print(', {0:>5} , {1:>5} , {2:>5} , {3:>5}'.format(*values))

EDIT II z drugiej strony jeżeli to jest dla i == 1 to można też prościej

values = [adc.read_adc(i, gain=GAIN, data_rate=128) for i in range(4)]
values [1] = values [1] // 2

Dziękuję Kolego. Pomogłeś. Zastosowałem wersję EDIT z pętlą z małą poprawką. tzn i == 0 a nie 1. No ale to drobiazg. Dziękuję wszystkim kolegom !

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0