całkowity początek programowania

Wątek przeniesiony 2022-04-06 12:54 z C/C++ przez cerrato.

1

Moim zdaniem książka Python dla wszystkich https://py4e.pl/translations/PL/py4e-pl-print-latest.pdf nie jest odpowiednia dla pana. (Z tego pochodzą pana listingi) Nie wiem kto to tłumaczył ale takie tłumaczenie jest kompletnie nie zrozumiałe: "Często chcemy zajrzeć do ciągu znaków i znaleźć pewien podciąg" - takich kwiatków ma ten pdf dużo
Polecałem panu "Python - Instrukcje dla programisty wydanie II - Eric Matthes wydawnictwo Helion - jest napisana przystępnie i zrozumiale - ale no niestety jest płatna. Ale moim zdaniem warto wydać 64 zł za 616 stron (49zł ebook) zrozumiale napisanej książki niż męczyć się z pdf z netu

Dla mnie "Python dla wszystkich" bardzo pokrętnie tłumaczy:
"Ciąg znaków jest sekwencją znaków. Możesz uzyskać dostęp do poszczególnych
znaków za pomocą operatora w postaci nawiasów kwadratowych:

fruit = 'banan'
letter = fruit[1]

Druga instrukcja wyodrębnia ze zmiennej fruit znak z pozycji o indeksie 1 i
przypisuje go do zmiennej letter.
Wyrażenie w nawiasach kwadratowych nazywane jest indeksem. Indeks wskazuje,
który chcesz znak z zadanej sekwencji.
Ale prawdopodobnie nie otrzymasz tego, czego oczekujesz"

Ja bym nie chciał się uczyć z takiej książki kóra nie potrafi w odpowiedniej kolejności wyjaśnić czym jest indeks

3

Darmowa wersja jednej z lepszych książek, https://automatetheboringstuff.com/ jak nie umie się Angielskiego to zacząć naukę od niego lub równocześnie :)

3
Czysty kod napisał(a):

Dla mnie "Python dla wszystkich" bardzo pokrętnie tłumaczy:
"Ciąg znaków jest sekwencją znaków.

Wina tłumaczenia. W oryginale jest "A string is a sequence of characters.". Jeśli string zostało przetłumaczone jak "ciąg znaków", to robi się nam masło maślane, a widocznie tłumacz uznał, że musi przetłumaczyć każde zdanie dosłownie. Ogólnie jak się poczyta oryginał, to widać, że tłumaczenie jest dość papierowe.

Gdyby nie to, że tłumacze mało zarabiają (a już szczególnie angielskiego), to sam bym został tłumaczem, bo bym to robił lepiej.

3

Oglądam z uwagą kursy Python 3 - . . Nie wiem już kto mi to polecił, ale bardzo dziękuję. Wiele rzeczy stają dość jasne. Na razie jestem w lekcji nr 3.Powolutku robi się coraz jaśnie, mam nadzieję, że ten trend będzie trwały 😀.

2
Romuald Łukomski napisał(a):

Oglądam z uwagą kursy Python 3 - .https://www.youtube.com/watch?v=vek4MqPGvVU . Nie wiem już kto mi to polecił, ale bardzo dziękuję. Wiele rzeczy stają dość jasne. Na razie jestem w lekcji nr 3.Powolutku robi się coraz jaśnie, mam nadzieję, że ten trend będzie trwały 😀.

Chyba o ten filmik chodziło - nie wyświetla się

0

Wykonuję ćw z filmiku dot operatorów logicznych and, or, not i nie wiem dlaczego zawsze przy zmianach danych pokazuje się komunikat
"Możesz wejść"", skoro wprowadzone liczby temu zaprzeczają, co robię źle?
wiek = 19
kasa = 10

if not wiek > 12 or kasa>=30:
print("Może wejść")
else:
print("Nie może wejść")
Proszę o wyjaśnienie.

3

Minal prawie tydzien od pierwszego posta. A checi nadal sa i cwiczenia robione tez. Tak trzymac :)

0

@Romuald Łukomski:

Załóż nowy watek "merytoryczny" w Pythonie.
Tutaj w C++ formuła "watku uniwersalnego" się już wyczerpała

4

Skoro mam się przenieść do Python, to oczywiście się podporządkuję. Mam tylko nadzieję, że tam znajdę również cierpliwych i wyrozumiałych.
Wszystkim, którzy do tej pory cierpliwie mi pomagali bardzo dziękuję za wsparcie i dobre rady. Pomoc będzie mi oczywiście potrzebna. Życzę Wam pomyślności zawodowej i osobistej.

1

@Romuald Łukomski:

Ciekawe,
zaznaczam, że nie czytałem większości dyskusji powyżej*.

Ze względu na wiek i chęć hobbystycznego podejścia do tematu. Zachęcam do nauki C++, mimo, że sam nie przepadam za tym językiem.
Reasumując jak się postanowiło, tak zrobić. Bo lepszy język na siłę zawsze się znajdzie.

Pare rad: Jest Kolega na emeryturze. Proszę nie poświęcać dziennie za dużo czasu na rozwiązywanie problemów, pewnie czasu jest nadto ale... Tak dwie godziny i wystarczy. Przetrawić sobie, pomyśleć i wyciągnąć ewentualnie jakieś wnioski. Warto zastanowić się, jaki to program chcielibyśmy napisać aby do czegoś nam się przydał. Już teraz, zapisywać sobie. Żeby potem nie głowić się jak tą wiedzę wykorzystać.
To jest zawsze bolączka początkującego, Chce coś napisać ale nie wie co. Potem zaś jak Kolega będzie już więcej umiał. A to może być za rok, dwa lata. To będzie miał kolega multum pomysłów i nie będzie wiedział za co się zabrać.
koniecznie zawsze kończyć projekty.

C++ to jest trochę studnia bez dna. Nie ma sensu poznać każdą pierdółkę w tym języku. Bo to strata czasu.
Niech Kolega międli podstawy, a potem pisze programy pod swój własny użytek. To powinno być tym kołem zamachowym dalszej nauki.
Czasami z ciekawości można doczytać jakąś nowinkę. Albo poczytać kod źródłowy nie swojego programu.

Na pewno pierwsze 2-4 miesiące to będzie takie macanie we mgle.

Pewnie warto by było pisać maleńkie programy które robią określoną rzecz/wykorzystują jakąś poznaną nowinkę. Aby szczególnie na początku się do tego odwołać.
Potem z biegiem czasu pewnie Kolega to skasuje, jednak na początku w ramach odświeżenia pamięci może to być pomocne.

Takie moje 5 groszy. Cierpliwość jest tu miarą sukcesu. Dać sobie 5 lat i trzymać kciuki, że się dożyje w przypadku Kolegi ;-)

Edit: na windowsie może być troszkę trudniej. Ale chyba codeblock udźwignie kompilacje c++. Bez męczenia się z Visual Studio.

6

Zachęcam do nauki C++, mimo, że sam nie przepadam za tym językiem.

Nie! Nawet nie musze czytac dalej. Idz stad. Mega glupia rada. Na tym etapie nie ma absolutnie nic dydaktycznego w tym jezyku a jest milion klod pod nogami i sigsegv albo inne ub za kazdym rogiem.
Dalbym -1 jakby sie dalo.

I mowie to jako osoba, ktora uwaza niskopoziomowe rzeczy za bardzo ciekawe pod wzgledem know-how. Ale nie na poczatku przygody!

2

ksh
Bardzo dziękuję za wnikliwe uwagi, bardzo sobie je cenię. Naukę programowania zacząłem właśnie od C++. Podczas wykonywania różnych , prostych chyba, ćwiczeń pojawiało się wiele błędów. Znalazłem to forum i poprosiłem o wyjaśnienie błędów w ćwiczeniach. Spotkałem się z ogromną życzliwością. Wywiązała się dyskusja, w jakim języku powinienem zacząć przygodę z programowaniem i ostatecznie przekonano mnie do Pythona, jako w miarę prostego. Pobrałem więc owego Pythona i zalecane środowisko programistyczne. Znalazłem też na YouTube kurs programowania, który pilnie śledzę i wykonuję stosowne ćwiczenia. W razie problemów zwracam się z prośbą o pomoc w tutejszym forum i takiej pomocy doświadczam. Posiadam też broszurkę wydaną przez Komputer Świat, choć jest ona dość trudna w stosowaniu.
Co do pomysłu na jakiś własny program, to na razie jestem jeszcze w fazie poznawania możliwości języka, ale różne pomysły się powoli pojawiają. Na krystalizację przyjdzie jeszcze czas, na razie chcę umieć pisać bardzo proste programy, np. wybór jakiejś liczby z określonego zbioru, i tp.
Cierpliwości minie brakuje, a Pański tekst dużo mi pomógł.
Co do tych 5 lat, to mam plan na znacznie więcej, oczywiście nie nauki, to sądzę, że nastąpi prędzej.
Pozdrawiam.

2

Popełniłem pewien błąd przy omawianiu graficznego interfejsu użytkownika Pythona (gui) pyqt. Otóż nie byłem świadom że oferuje on takie narzędzie jak qt designer (designer.exe)
jest to dobra alternatywa dla Lazarusa. W qtdesigner przeciąga się butony, checkboxy itp z okna na aplikacje dopisuje lub wkleja akcje dla nich itp. To oszczędza ogromnie dużo czasu przy pisaniu kodu. Niestety żeby nie było różowo nie można z niego korzystać komercyjnie bez płatnej licencji. Tkinter za to jest całkowicie darmowy i to także do zastosowań komercyjnych - no ale jego toporność i brak takich udogodnień jak ma pyqt sprawia, że go nie polecam

Edycja: o qt designerze z pyqt dowiedziałem z książki "Hello world - computer programming for kids and other beginners" III Edycja - jest tam proste gui o obliczniu stopni farenhaita w pyqt (rozdział more gui) w polskim tłumaczeniu wyszła tylko druga Edycja: Hello world - Przygoda z programowaniem dla dzieci i absolutnie początkujących wydanie II -warren sande, carter sande. Niestety w polskim tłumaczeniu są błędy i jest tłumaczony kod

1

Cześć wszystkim.
Nie zasypiam gruszek w popiele, choć mozolnie mi to idzie. Tym razem chcę napisać programik, kory pomnoży dowolne liczby przez siebie i poda czy liczba jest parzysta , czy nie. No i mnożenie owszem wychodzi, ale już dalej nie wiem co zrobić, aby wynik podany w print mógł być dalej operowany. Proszę o pomoc, długo kombinuję ale bez skutku.
a = int (input("Podaj liczbę"))
b = int (input("Podaj liczbę"))
print ("ab= c = ", ab)
c = (a*b)
if c % 2==0
print ("liczba jest parzysta")
Do 3 linii jest wszystko ok, tak myślę, ale co dalej?

2
  1. Twórz osobne wątki na takie pytania
  2. Jaki jest komunikat błędu
  3. Nie inicjalizujesz nigdzie ab
  4. co to w ogóle za język programowania?

UPDATE. Tfu, python, nie lubie pythona

a = int (input("Podaj liczbę"))
b = int (input("Podaj liczbę"))
c = (a*b)
print ("ab= c = ", c)
if c % 2==0:
  print ("liczba jest parzysta")
0
KamilAdam napisał(a):
  1. Twórz osobne wątki na takie pytania
  2. Jaki jest komunikat błędu
  3. Nie inicjalizujesz nigdzie ab
  4. co to w ogóle za język programowania?

UPDATE. Tfu, python, nie lubie pythona

a = int (input("Podaj liczbę"))
b = int (input("Podaj liczbę"))
c = (a*b)
print ("ab= c = ", c)
if c % 2==0:
  print ("liczba jest parzysta")

Ta odpowiedź niczego mi nie wyjaśnia.

1
Romuald Łukomski napisał(a):

Ta odpowiedź niczego mi nie wyjaśnia.

Ah, czyli nie chcesz wyświetlić informacji że jest parzysta tylko chcesz mieć tą informację do dalszego przetwarzania? Ok, teraz rozumiem, czyli coś bardziej:

a = int (input("Podaj liczbę"))
b = int (input("Podaj liczbę"))
c = (a*b)
print ("ab= c = ", c)
isEven = c % 2==0
if isEven:
  print ("liczba jest parzysta")
1
Romuald Łukomski napisał(a):
KamilAdam napisał(a):
  1. Twórz osobne wątki na takie pytania
  2. Jaki jest komunikat błędu
  3. Nie inicjalizujesz nigdzie ab
  4. co to w ogóle za język programowania?

UPDATE. Tfu, python, nie lubie pythona

a = int (input("Podaj liczbę"))
b = int (input("Podaj liczbę"))
c = (a*b)
print ("ab= c = ", c)
if c % 2==0:
  print ("liczba jest parzysta")

Ta odpowiedź niczego mi nie wyjaśnia.

Jeszcze raz dziękuję za pomoc, nie wiedziałem właśnie jak sobie poradzić aby po "print" można było dalej coś zrobić.

0

KamilAdam napisał między innymi abym tworzył oddzielne wątki z pytaniami. Myślę że ten wątek od początku służył mi do zadawania pytań i życzliwi ludzie mi tu pomagali, więc jeśli można to chciałbym pozostać, no chyba, że to niemożliwe.
Mam tym czasem jeszcze jedno pytanie : co znaczy, do czego służy w skrypcie (i w innych też to spotkałem ) "f" , przykład print(f"|{x}| =", -x)

2

To literal dla f-stringow. f-stringi dzialaja tak, ze ewaluuja wyrazenia. Czyli np.

x = "test"
print("{x}")

Wypisze na ekran {x} (bo to zwykly napis)

x = "test"
print(f"{x}")

Wypisze na ekran test bo wyciagnal wartosc zmiennej x. Ale mozna tez pisac np. f"{3+5}"

0

Znowu pojawił mi się problem i to z pozoru prosty, z którym już problemu nie miałem, ale tym razem kod albo dział w nieskończoność, albo pokazuje True, ale nie wynik.
n = int(input('Podaj liczbe'))
while n < 20:
print(n % 2)
Proszę o pomoc.

2

Nie zmieniasz wartości n

0

Bardzo proszę o pomoc. Wracam do różnych kodów i ten nie dział, gdzie jest błąd:

imie = input('Podaj imie:')
if imie == 'stop':
    break

wiek = input('Podaj wiek:')
print ('witaj', 'imie', '-->', int('wiek')**2 )

Wyrzuca mi błąd break, czemu?
Pozdrawiam.

2

@Romuald Łukomski: break służy do przerywania pętli, tu nie ma pętli. Zakładam, że tam jednak jest wcięcie, a program wygląda tak:

imie = input('Podaj imie:')
if imie == 'stop':
    break

wiek = input('Podaj wiek:')
print ('witaj', 'imie', '-->', int('wiek')**2 )
0

Tak to wygląda w podręczniku:
screenshot-20220607180535.jpg

1

Super, jak widzisz obrazek zaczyna się na trzeciej linii, więc coś tam wyżej jeszcze jest, zachowanie programu (w konsoli) i wcięcie wskazuje, że całość znajduje się wewnątrz pętli, gwarantuję, że wyżej jest while True:.

Swoją drogą nic dziwnego, że ludzie wklejają kod jako obrazki skoro w książkach zamiast listingów są screenshoty 🤦

2

@Romuald Łukomski: źle przepisałeś:

while True:
    imie = input('Podaj imie:')
    if imie == 'stop':
        break

    wiek = input('Podaj wiek:')
    print ('witaj', imie, '-->', int(wiek)**2 ) # tu był błąd, wiek to zmienna, nie napis

Działa, sprawdziłem przed chwilą.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.