2019-02-11
Dobre środowisko programistyczne w naszych czasach powinno „myśleć” razem z programistą. Ktokolwiek pracował w edytorze, który podpowiada ciąg dalszy nazw zmiennych, funkcji itp. ten wie o czym mówię. Dramat zaczyna się wtedy, kiedy te metody zawiodą!
I tak w Python IDLE zdarza się, że TAB nie działa
Tabulator działa, ale jego użycie może być trochę „tricky”. Zrób tak:
-napisz
tekst='Friday'
lub coś innego co spowoduje powstanie zmiennej tekstowej.
-zapisz plik
-uruchom go chociaż raz. Teraz w pamięci Pythona jest już informacja, że text jest zmienną typu tekstowego
-teraz wróć do edytora i napisz nazwę zmiennej i kropkę
text.
-teraz naciśnij tabulator. Powinny się pokazać funkcje specyficzne dla typu string
To jest super niewygodne kiedy chcesz to zrobić dla jednej zmiennej w banalnie prostym skrypcie. Ale kiedy piszesz dłuuuugi skrypt i uruchamiasz go dziesiątki razy, to Python jest świadomy wszystkich zmiennych i ładnie podpowiada.

Gdyby mimo to podpowiadanie nie działało, to jest jeszcze prawdopodobne, że coś poszło nie tak z intalacją i brakuje rozszerzenia odpowiadającego za podpowiadanie. Po wejściu do ustawień IDLE na zakładce Extensions można sprawdzić obecność rozszerzenia AutoComplete i ewentualnie sprawdzić czy jest włączone. Podobno pomaga reinstalacja pythona (zwróć uwagę na zaznaczenie [ ] Add Python to PATH)

Inne możliwe przyczyny takiego zachowania:
- katalog, w którym jest wykonana instalacja, albo katalog ze skryptami, albo nazwa użytkownika zawierają polskie literki np. ą, ś, ł itp.
- jeden z wcześniej utworzonych skryptów otrzymał nazwę, która jest używana przez wymagany przez IDLE moduł pythona. Staraj się unikać nazw, co do których można mieć podejrzenie, że są one już wykorzystywane w Pythonie, np. time, random, int itp. Tworząc własne skrypty możesz np. stosować nietypowe nazwy w rodzaju measure_time.py, generate_randoms.py, test_int.py itd.
2019-02-11
Załóżmy, że mam listę z wartościami prezentującymi liczby, ale z nieco zamieszanymi formatami. W oparciu o tą listę tworzę serię:
import pandas as pd
lst = ['112,000.000','4,500,000']
s = pd.Series(lst)
s
wynik to:
0 112,000.000
1 4,500,000
dtype: object
Jak widać typ to object, czyli w PANDAS – napis. Możesz teraz zbudować dowolną funkcję lambda oczyszczającą ten tekst:
s = s.apply(lambda x: x.replace(',',''))
s
wynik to nadal typ object, ale dane już przypominają liczby:
0 112000.000
1 4500000
dtype: object
teraz wreszcie można skonwertować typ do float
s = s.astype('float')
s
wynik to:
0 112000.0
1 4500000.0
dtype: float64
Kluczowe jest to, w jaki sposób tekst ma być oczyszczony – ale to już zależy też od rodzaju szumu, jaki został do tej kolumny kiedyś wprowadzony.
2019-01-28
Zacznijmy od tego co to jest host. Jeśli administrujesz systemami, to pewnie hostem nazywasz komputer: „pingować hosta”, „logować się do hosta” itp. W przypadku powershella host to nie komputer, tylko program jakim łączysz sie do powrshella. Stąd też np polecenie
Get-Host zwraca np wersję programu jakim się łączysz do powershella, a $PSVersionTable zwraca wersję powershella 🙂
Polecenie Write-Host ma na zadanie wyświetlić tekst na hoście. Możesz go wyświetlać na kolorowo (masz opcje -ForegroundColor, -Backgroundcolor). Te komunikaty są zazwyczaj ładne,… a czasami odpustowe 🙂
Polecenie Write-Warning nie ma opcji zmieniających kolorki. Należy go używać do wyświetlania na wyjściu diagnostycznym (którym domyślnie jest host) właśnie ostrzeżeń. Czy w Polce, czy w Japonii, jak skrypter powershella zobaczy pomarańczowy komunikat, to będzie wiedział, że to ostrzeżenie.
Mamy też Write-Error – polecenie wyświetlające i zgłaszające błąd.
Oprócz tego są też inne wyspecjalizowane polecenia: Czytaj dalej »
2019-01-11
Żeby z linii komend można było uruchamiać sktypty pythona bez podawania ścieżki do programu python.exe, najlepiej jest dodać katalog instalacji pythona do zmiennej środowiskowej PATH podczas instalacji:
Jednak, jeśli nie chcesz poprawiać instalacji, po prostu ręcznie zmodyfikuj ścieżkę. U mnie wygląda to tak:

Inna kwestia, to czy skrypty napisane w pythonie mają właściwą ikonkę i czy będzie je można uruchomić podwójnym kliknięciem. Skojarzenie pliku z programem, który go uruchamia można ustawić w Start >> Ustawienia >> Default apps i u mnie wygląda to tak:

2019-01-11
W Pythonie mamy kilka sposobów na formatowanie tekstów, między innymi starszy z wykorzystaniem operatora % i nowy wykorzystujący metodę format. Jak to zwykle bywa nowsze metody pozwalają na wykonywanie większej ilości niestandardowych formatowań, niż te starsze. Część zadań można jednak realizować z wykorzystaniem obu metod – z porównywalnym efektem. Oto formatowanie napisu na 10 znakach z wyrównaniem do lewej lub do prawej:
print('%10s' % ('test')) # align to right
print('%-10s' % ('test')) # align to left
print('{:>10}'.format('test')) #align to right
print('{:10}'.format('test')) #align to left
Więcej szczegółów zajdziesz tutaj:
https://pyformat.info/
A oto efekt:

2018-12-21
Podczas uruchamiania skryptu wyświetlił się komunikat o błędzie składni. Prosta sprawa – wystarczy znaleźć literówkę lub brakujący nawias. I tak rzeczywiście było.
Problem jednak pojawił się inny. Normalnie skrypt jest uruchamiany automatycznie i zawiera czynności, których nie można uruchomić ot tak sobie. Nie ma więc możliwości sprawdzenia, czy skrypt po poprawce jest już rzeczywiście dobry.
I tu z pomocą przychodzi opcja -n dla bash
bash -n script_file
- Jeśli w skrypcie znajduje się błąd, to polecenie wyświetla komunikat o znalezionym błędzie
- Jeśli skrypt nie ma błędów składniowych, nic nie jest wyświetlane
Oczywiście polecenie nie sprawdza, czy nie masz literówek w nazwach zewnętrznych programów, np. nie wykryje polecenia whoo jako błędnego. To pewnie literówka, ale opcja -n sprawdza tylko składnię. Ale to i tak całkiem nieźle, jeżeli chodzi o sprawdzenie jednej drobnej poprawki 🙂
Co ciekawe jest nawet strona, która pozwala sprawdzić skrypt online: Czytaj dalej »
2018-12-19
Popatrz na taki skrypt:
function doSomething()
{
param($times)
$i = 0
while ($i -lt $times)
{
echo "$i"
$i++
}
}
doSomething 3
Jeśli go uruchomisz, to wszystko działa jak należy. Funkcja jest wywoływana, polecenie echo wyświetla wyniki. Ale wystarczy drobna zmiana: Czytaj dalej »