Pomoc v kode python – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Pomoc v kode python – Python – Fórum – Programujte.comPomoc v kode python – Python – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Priwi0
Newbie
3. 8. 2014   #1
-
0
-

Zdravim učim sa z pythonom a hned na začiatok som si vymyslel podla všetkého niečo trocha zložitejši

Ak by som Vás mohol poprosiť o radu a niake vysvetlenie kde robím chybu dakujem

OS = raw_input ("Pre operačný systém Ubuntu 14.04 a vyžšie zvol U ak KILI zvol K:")


while OS == "U": 
                 Ubuntu = raw_input ("inštalácia programov: Airmon-ng , airodump-ng , reaver ? A-Ano, N-nie:")
                 if Ubuntu == "A":
                     subor = open("uvod2.py","a")
                     subor.write ("sudo apt-get install libpcap-dev libsqlite3-dev reaver aircrack-ng")
                     subor.close()
                     subor1 = open("uvod3.py","a")
                     subor1.write ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Prepnutie sietovej karty do sledovacieho modu:\"\npokracovanie = raw_input (\"Pre pokračovanie slač Enter:\")")
                     break
                 elif Ubuntu == "N" :
                     subor = open("uvod2.py","a")
                     subor.write  ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Ako super o to menej\"")
                     subor1 = open("uvod3.py","a")
                     subor1.write ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Prepnutie sietovej karty do sledovacieho modu:\"\npokracovanie = raw_input (\"Pre pokračovanie slač Enter:\")")
                     break
                                      
while OS == "K":
                 subor = open("uvod2.py","a")
                 subor.write  ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Ako super o to menej\"")
                 subor1 = open("uvod3.py","a")
                 subor1.write ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Prepnutie sietovej karty do sledovacieho modu:\"\npokracovanie = raw_input (\"Pre pokračovanie slač Enter:\")")
                 print "Pri KALI by maly byt všetky programy naištalované."
                 break

pointa je teraz ked sa pita rvú otázku Ubuntu alebo kali tak ked zadam niečo ine tak sa neviem dostať na to aby ma to poslalo naspať a mohli by sa uriť iba U/K. No pri druhej otázke sa mi to podarilo aj ked nerozumien tomu preči je to tak ale podarilo :D dakujem za pomoc a navedenie k správnemu riešeniu

Nahlásit jako SPAM
IP: 81.92.255.–
Reklama
Reklama
peter
~ Anonymní uživatel
2551 příspěvků
4. 8. 2014   #2
-
0
-

Logika!
1. nemas zavrenej subor1.
2. Co podle tebe dela kod?

while OS == "U": 
  Ubuntu = raw_input ("A-Ano, N-nie?")
  if Ubuntu == "A":
    break
  if Ubuntu == "N":
    break

Opakuj, dokud OS = U. Takze, kdyz ted uzivatel zmackne X misto a nebo N, tak cyklus skonci. A kdyz zmackne A, tak break cyklus taky ukonci. Jaka podminka tam tedy musi byt, aby se cyklus neukoncil pri jine klavese nez je U?

Nahlásit jako SPAM
IP: 2001:718:2601:258:68d1:47...–
Johnny.0
Duch
4. 8. 2014   #3
-
0
-

   

OS = raw_input()
while OS not in set(["U", "K"]):
    OS = raw_input()
Nahlásit jako SPAM
IP: 95.103.176.–
Priwi0
Newbie
4. 8. 2014   #4
-
0
-

ďakujem všetkým

Návod som dostal ale aj tak nerozumiem tomu používanie while prečítal som o tom už niekoľko článkov a neviem tomu pochopiť vôbec. (asi bude chyba medzi klávesnicou a stoličkou :D )

ale kód som upravil takto a funguje:

OS = raw_input ("Pre operačný systém Ubuntu 14.04 a vyžšie zvol U ak KILI zvol K:")
while OS not in set(["U", "K"]):
    OS = raw_input ("Pre operačný systém Ubuntu 14.04 a vyžšie zvol U ak KILI zvol K:")
    while OS == "K":
                 subor = open("uvod2.py","a")
                 subor.write  ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Ako super o to menej\"")
                 subor1 = open("uvod3.py","a")
                 subor1.write ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Prepnutie sietovej karty do sledovacieho modu:\"\npokracovanie = raw_input (\"Pre pokračovanie slač Enter:\")")
                 print "Pri KALI by maly byt všetky programy naištalované."
                 break
if OS == "U": 
        Ubuntu = raw_input ("Inštalácia programov: Airmon-ng , airodump-ng , reaver ? A-Ano, N-nie:")
        while Ubuntu not in set(["A", "N"]):
            Ubuntu = raw_input ("Inštalácia programov: Airmon-ng , airodump-ng , reaver ? A-Ano, N-nie:")
            if Ubuntu == "A":
                subor = open("uvod2.py","a")
                subor.write ("sudo apt-get install libpcap-dev libsqlite3-dev reaver aircrack-ng")
                subor.close()
                subor1 = open("uvod3.py","a")
                subor1.write ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Prepnutie sietovej karty do sledovacieho modu:\"\npokracovanie = raw_input (\"Pre pokračovanie slač Enter:\")")
                subor1.close()
                break
            while Ubuntu == "N":
                subor = open("uvod2.py","a")
                subor.write  ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Ako super o to menej\"")
                subor.close()
                subor1 = open("uvod3.py","a")
                subor1.write ("#!/usr/bin/env python\n# -*- coding: utf-8 -*-\nprint \"Prepnutie sietovej karty do sledovacieho modu:\"\npokracovanie = raw_input (\"Pre pokračovanie slač Enter:\")")
                subor.close()
                break
Nahlásit jako SPAM
IP: 81.92.255.–
Johnny.0
Duch
4. 8. 2014   #5
-
0
-

   

i = 1
while i <= 10:
    print i
    i = i + 1
  1. Najskôr inicializujeme premennú i na 1. Nastavenie počiatočnej hodnoty riadiacej premennej cyklu while predstavuje veľmi dôležitý prvý krok.
  2. Potom začneme vykonávať samotný príkaz while. V ňom sa vyhodnocuje boolovký výraz.
  3. Pokiaľ je výsledkom výrazu hodnota True, docháza k vykonaniu nasledujúceho odsadeného bloku. V tomto prípade nadobúda premenná i hodnoty menšie než 10, takže zahájime vykonávanie bloku kódu.
  4. Vykoná sa príkaz print, ktorý vytlačí prvé číslo (1).
  5. Na ďalšom riadku sa zvyšuje (inkrementuje) hodnota riadiacej premennej i. V tomto prípade je to posledný rovnako odsadený riadok, čo znamená, že blok cyklu while končí.
  6. Vraciame sa opäť k príkazu while a vykonávame kroky 4 až 6, vždy s novými hodnotami premennej i.
  7. Uvedená postupnosť akcií sa opakuje až do doby, keď dosiahne hodnotu 11.
  8. V tom okamžiku vráti test cyklu while hodnotu False a vykonávanie odsadeného bloku sa prekočí. Pokračovať sa bude riadkom, ktorý má rovnaké odsadenie, ako riadok s príkazom while.
  9. V tomto prípade žiadne ďalšie riadky nenasledujú, takže program skončí.
OS not in set(["U", "K"])

V tvojom prípade vyhodnocuješ v boolovskom výraze či sa hodnota premennej OS nenachádza v množine {U, K}.

Nahlásit jako SPAM
IP: 95.103.176.–
Johnny.0
Duch
4. 8. 2014   #6
-
0
-

Ale neviem či je to najlepší vzor ako to robiť v Pythone pretože v ňom neprogramujem...

V C by som to spravil takto: 

do {
    c = getchar();
} while (c != 'U' && c != 'K');
Nahlásit jako SPAM
IP: 95.103.176.–
Priwi0
Newbie
4. 8. 2014   #7
-
0
-

Ježiš jasne už viem o čo ide ja som si to stále komplikoval použitím if,else ..... .

Preto mi nedával zmysel poriadne ani ten vzorec čo si uviedol ti.

Je jasne že sa mi to pomiešalo a na miesto toho aby som riešil while ako samotný príkaz som si sám v hlave ho podmieňovaľ používaním daľších príkazov preto mi to nedávalo zmysel.

Tak skúsim ešte jednu otázku:

používam Ubuntu a KALI

Ked pišem v pythone chcel by som dosiahnuť aby som mohol použiť príkaz z terminálu napr: 

sudo apt-get install ......


alebo iný a python by ho dal vykonať počkal by na jeho ukončenie a program by dalej pokračoval da sa to vôbec.

V poctate využitie externého programu

Nahlásit jako SPAM
IP: 81.92.255.–
Priwi0
Newbie
4. 8. 2014   #8
-
0
-

v C sa som mal tendenciu sa učiť tiež ale niekde som čítal že python je jednoduchý na naučenie a potom už nerobí problém sa preorientovať na iný jazyk.

Nahlásit jako SPAM
IP: 81.92.255.–
Johnny.0
Duch
4. 8. 2014   #9
-
0
-
Nahlásit jako SPAM
IP: 95.103.176.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 19 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý