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

question-closed optymalizacja kodu

Object Storage Arubacloud
–1 głos
705 wizyt
pytanie zadane 8 lutego 2019 w Python przez HelloWorld (: Początkujący (470 p.)
zamknięte 8 lutego 2019 przez HelloWorld (:

Witajcie.

dwa dni temu skończyłem notatnik w pythonie tutaj kod:

main.py

#importowanie funkcji
from funkcjie import *
import sys

#tworzenie zmiennych
otwurz = None

#Głuwne
while True:
    menu()
    os.system('Color 0A')
    try:
        wybur = int(input())
        if wybur == 1:
            wybur1()
        if wybur == 2:
            wybur2()
        if wybur == 3:
            wybur3()
        if wybur == 4:
            break
    except:
        print('błąd')
        sleep(1)
        os.system('cls')

funkcjie.py

import os
from time import *

def menu():
    print("Menu Główne")
    print("-----------")
    print("1.zobacz")
    print("2.nowy")
    print("3.zresetuj")
    print("4.wyjdz")

def wybur1():
    f = open("numery.txt")
    for line in f.readlines():
        print(line.strip())
    f.close()
    try:
        otwurz = int(input())
        if otwurz == 0:
            print('niema takiego pliku zrobiłem ten plik dla tego\n bo by inaczej nie działało')
        else:
            otworzony = open(str(otwurz) + '.txt', 'r+')
            os.system("cls")
            for line in otworzony.readlines():
                print(line, end="")
            otworzony.close()
    except:
        print('błąd')
        otworzony.close()
    dalej = input('kliknij enter aby wyjsc')
    os.system('cls')

def wybur2():
    f2 = open('numery.txt', 'r+')
    f3 = open('zmienna.txt', 'r+')
    pom1 = [line.strip() for line in f2]
    ileRazy = [line.strip() for line in f3]
    ileRazy = int()
    ileRazy -= 1
    pom2 = int(pom1[ileRazy])
    f3.close()
    os.remove('zmienna.txt')
    pom2 += 1
    print("Dodano nowy plik: ",pom2)
    f3 = open('zmienna.txt', 'w+')
    f2.write('\n')
    f2.write(str(pom2))
    f3.write(str(pom2))
    file = open(str(pom2)+'.txt', 'w+')
    f2.close()
    f3.close()
    true = True
    while true:
        try:
            napis = input('napis: pughdancf aby wyjsc: ')
            if napis == 'pughdancf':
                true = False
            else:
                file.write(napis + '\n')
        except:
            file.close()
            true = False
    sleep(1)
    os.system('cls')

def wybur3():
    f2 = open('numery.txt', 'r+')
    zmienna = 0
    for line in f2.readlines():
        zmienna += 1
    f2.close()
    os.remove('zmienna.txt')
    os.remove('numery.txt')
    f2 = open('numery.txt', 'w+')
    f3 = open('zmienna.txt', 'w+')
    f2.close()
    f3.close()
    f2 = open('numery.txt', 'r+')
    f3 = open('zmienna.txt', 'r+')
    f2.write('0')
    f3.write('1')
    f2.close()
    f3.close()
    while zmienna != 0:
        try:
            print("usunięto ",zmienna)
            os.remove(str(zmienna) +'.txt')
            zmienna -= 1
        except:
            zmienna -= 1
    sleep(1)
    os.system('cls')

(początkową wartość plików da się wyczytać z kodu)

i mam pytanie czy można zoptymalizować ten kod żeby miał mniej linijek

próbowałem przesz tę dwa dni różnych sposobów na przykład:

rozdzielanie kodu wyborów do osobnych plików.py

rozdzielanie kodu wyborów do pliku kod.txt i przekstałcanię zawartości funkcjią:

lambda()

ale w pythonie chyba za zwyczaj nie robi się tak że wszystko rozdziela się do osobnych funkcji albo do osobnego plików więc mam pytanie czy można skrócić ten kod?

komentarz zamknięcia: znam już odpowieć
komentarz 8 lutego 2019 przez niezalogowany
Czemu chcesz optymalizować pod względem ilości linii?
komentarz 8 lutego 2019 przez HelloWorld (: Początkujący (470 p.)
źle można to zrozumieć pod względem czytelności
komentarz 8 lutego 2019 przez RafalS VIP (122,820 p.)

wybur, funkcjie, otwurz

Chryste panie! Ty to robisz specjalnie?

A ten kod nie dziala :P

komentarz 8 lutego 2019 przez HelloWorld (: Początkujący (470 p.)
działa możesz nawet sprawdzić na pc jak masz pycharma pyscriptera lub pythona tylko najpierwsz trzeba zrobić plik zmienna.txt i numery.txt
komentarz 8 lutego 2019 przez RafalS VIP (122,820 p.)

tylko najpierwsz trzeba zrobić plik zmienna.txt i numery.txt

tak nie powinno być.

I co ma być w tych plikach?

komentarz 8 lutego 2019 przez HelloWorld (: Początkujący (470 p.)
zmienna.txt ma być plikiem w którym zapisuję się zmienna żeby po zamknięciu programu zapisywała się zmienna a numery.txt to plik w którym zapisujmą się numery plików

1 odpowiedź

0 głosów
odpowiedź 8 lutego 2019 przez RafalS VIP (122,820 p.)
wybrane 8 lutego 2019 przez HelloWorld (:
 
Najlepsza

próbowałem przesz tę dwa dni

    os.remove('zmienna.txt')
    os.remove('numery.txt')
    f2 = open('numery.txt', 'w+')
    f3 = open('zmienna.txt', 'w+')
    f2.close()
    f3.close()
    f2 = open('numery.txt', 'r+')
    f3 = open('zmienna.txt', 'r+')
    f2.write('0')
    f3.write('1')
    f2.close()
    f3.close()

Tyle zabawy, żeby wpisać po jednej liczbie do pliku?

    with open('zmienna.txt','w') as zmienna, open('numery.txt','w') as numery:
        zmienna.write(0)
        numery.write(1)

 

Podobne pytania

+1 głos
3 odpowiedzi 279 wizyt
pytanie zadane 29 września 2021 w Python przez Gowi Użytkownik (830 p.)
0 głosów
0 odpowiedzi 115 wizyt
0 głosów
2 odpowiedzi 491 wizyt
pytanie zadane 28 grudnia 2016 w Python przez Michał628496 Pasjonat (17,340 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...