• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wprowadzanie zmienych na raz python terminal

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
135 wizyt
pytanie zadane 22 marca 2022 w Python przez koleś34 Gaduła (3,130 p.)

Głupie pytanie trochę ale nigdzie nie znalazłem odpowiedzi. Jak jest np. kalkulator to chodzi mi o to żeby nie było tak:

python3 program.py
wprowadź liczbę 1: 5
wprowadź liczbę 2: 4
wynik: 9

tylko tak:

python3 program.py 5 4
wynik: 9

 

1
komentarz 22 marca 2022 przez Oscar Nałogowiec (28,270 p.)

To się nazywa parametry wywołania programu.

Wiki

komentarz 22 marca 2022 przez adrian17 Ekspert (330,980 p.)
Tylko zaznaczę, że ten artykuł jest mega mega stary - używa Pythona 2, getopt etc. W zasadzie jedyne co można z niego wyciągnąć to samo istnienie `sys.argv` :)
komentarz 22 marca 2022 przez VBService Ekspert (227,970 p.)
edycja 23 marca 2022 przez VBService

@koleś34, Sprawdź też:

argparse — Parser for command-line options, arguments and sub-commands  

Jak budować interfejsy linii poleceń w Pythonie z argparse

python cmd line

1 odpowiedź

+1 głos
odpowiedź 23 marca 2022 przez manjaro Nałogowiec (36,830 p.)
edycja 26 marca 2022 przez manjaro
 
Najlepsza

Możesz przykładowo tak sumować dowolną ilość argumentów

EDIT: Wersja poprawiona


  1 import sys
  2 sum = 0
  3 for i in range(1,len(sys.argv)):
  4     sum += int(sys.argv[i])
  5 print('Wynik: {}'.format(sum))

i wywołanie:

python dodawanie.py 1 2 3  
Wynik: 6

 

 

komentarz 23 marca 2022 przez VBService Ekspert (227,970 p.)
edycja 23 marca 2022 przez VBService

Dołączam się do pytania @Oscar-a

python dodawanie.py 1 1 1 
Wynik: 6

1 + 1 + 1 = 6 ?

 

P.S.1  wink

sum += int(sys.argv[i])

P.S.2

import sys

try:
    sum = 0
    for arg in sys.argv[1:]:
        sum += int(arg)
    print(f"Wynik: {sum}")
except:
    pass

 

komentarz 23 marca 2022 przez manjaro Nałogowiec (36,830 p.)
edycja 23 marca 2022 przez manjaro
No tak oczywiście, pisałem to na szybko w telefonie. Wystarczy podmiana "sys.argv[i]" zamiast "i".

Z tego powodu minusy dostaję? Człowiek chce pomóc i tak jest nagradzany no to tylko w Polsce takie rzeczy...
komentarz 24 marca 2022 przez VBService Ekspert (227,970 p.)

Wydaje Mi się @manjaro, że Twój Edit nie do końca jest "czytelny"

"sys.argv[i]" zamiast "i".

i OP, jak i niektórych forumowiczów (tych szczególnie z "małym" doświadczeniem w programowaniu w python-ie) może doprowadzić do "konsternacji" typu: WTF?  laugh

może zrób Edit np. w ten sposób

sum += int(sys.argv[i]) # zamiast "int(i)"

 

komentarz 24 marca 2022 przez manjaro Nałogowiec (36,830 p.)
A mi się wydaje że się czepiasz.

Do góry podałem poprawioną wersję żeby ktoś nie czytając komentarzy miał prawidłową wersję.

Podobne pytania

0 głosów
1 odpowiedź 158 wizyt
pytanie zadane 5 marca 2021 w Python przez theemperor Użytkownik (710 p.)
+1 głos
0 odpowiedzi 178 wizyt
pytanie zadane 25 maja 2021 w C i C++ przez toko Mądrala (5,930 p.)
0 głosów
1 odpowiedź 154 wizyt

90,900 zapytań

139,572 odpowiedzi

313,904 komentarzy

60,373 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...