<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem python</title>
<link>https://forum.pasja-informatyki.pl/tag/python</link>
<description>Powered by Question2Answer</description>
<item>
<title>Szukam działającej (w miarę nowej) libki python pod WHOIS (dla domen pl eu i com), Najchętniej Py, C# lub Java</title>
<link>https://forum.pasja-informatyki.pl/599819/szukam-dzialajacej-miare-nowej-libki-python-pod-whois-dla-domen-com-najchetniej-java</link>
<description>

&lt;p&gt;Cześć,.&lt;/p&gt;



&lt;p&gt;Szukam &lt;strong&gt;działającej&lt;/strong&gt; (w miarę nowej) libki python (lub C# czy Java) pod WHOIS (dla domen pl eu i com, może też inne). Te które znalazłem nie podają wszystkich potrzebnych informacji, a niektóre wręcz nic nie pokazują.&lt;/p&gt;



&lt;p&gt;Dzięki!&lt;/p&gt;

</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599819/szukam-dzialajacej-miare-nowej-libki-python-pod-whois-dla-domen-com-najchetniej-java</guid>
<pubDate>Fri, 20 Mar 2026 13:05:21 +0000</pubDate>
</item>
<item>
<title>Książka do nauki pythona POD MATURĘ</title>
<link>https://forum.pasja-informatyki.pl/599717/ksiazka-do-nauki-pythona-pod-mature</link>
<description>Witam, wiem, że sam temat książek nie raz przewijał się na tym forum, ale zależy mi na czymś konkretnym. Maturę mam za ok. 1.5 roku ale dopiero teraz zdecydowałam się na podejście do niej. Mimo, że mam rozszerzoną informatykę to z lekcji praktycznie nic nie wyciągnęłam. Zdecydowałam się więc zacząć od zera w pythonie. Stąd moje pytanie jakie są najlepsze książki dla początkujących, ale takie, które dobrze przygotują do matury. Zależy mi żeby każdy etap wiedzy był z ćwiczeniami, bo tak najlepiej się uczę. Najlepiej jakby wszystkie funkcje były szczegółowo opisane. Od razu mówię, że podręczniki szkolne nie wchodzą w grę. Generalnie po poznaniu podstaw wezmę się za arkusze, ale muszę najpierw te podstawy zdobyć</description>
<category>Egzaminy zawodowe</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599717/ksiazka-do-nauki-pythona-pod-mature</guid>
<pubDate>Sat, 21 Feb 2026 21:58:30 +0000</pubDate>
</item>
<item>
<title>Mam prośbe ocenił by ktoś moją app na githubie lub zaproponował ulepszenia</title>
<link>https://forum.pasja-informatyki.pl/599711/mam-prosbe-ocenil-by-ktos-moja-app-na-githubie-lub-zaproponowal-ulepszenia</link>
<description>Oto link do mojej aplikacji github: &lt;a href=&quot;https://github.com/Krzyzyk33/CMDAI.git&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Krzyzyk33/CMDAI.git&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Prosiłbym żebyście mi pomogli w ulepszaniu mojej aplikacji oraz o pomoc w testowaniu jej. Oczywiście żeby aplikacja zadziałała trzeba zainstalować model i dodać go do pliku models/ .&lt;br /&gt;
&lt;br /&gt;
Reszta informacji w README.md i FAQ.md.&lt;br /&gt;
&lt;br /&gt;
Dziękuje za pomoc</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599711/mam-prosbe-ocenil-by-ktos-moja-app-na-githubie-lub-zaproponowal-ulepszenia</guid>
<pubDate>Fri, 20 Feb 2026 18:08:40 +0000</pubDate>
</item>
<item>
<title>[Python] Jakie bibloteki na start?</title>
<link>https://forum.pasja-informatyki.pl/599398/python-jakie-bibloteki-na-start</link>
<description>Cześć! Zaczynam z programowaniem postanowiłem zacząć z pythonem. Chciałbym się dowiedzieć jakie bibloteki do python'a powinienem poznać na początku.</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599398/python-jakie-bibloteki-na-start</guid>
<pubDate>Fri, 28 Nov 2025 14:01:10 +0000</pubDate>
</item>
<item>
<title>Jak pozbyć się zmiennej statycznej?</title>
<link>https://forum.pasja-informatyki.pl/599257/jak-pozbyc-sie-zmiennej-statycznej</link>
<description>

&lt;p&gt;Wie ktoś jak pozbyć zmiennej statycznej Menu.nesting_level i przekazywać zaktualizowane informacje dotyczące poziomu zagnieżdżenia Menu dopiero w momencie wywoływania metody menu.add_item np menu.add_item('Podmenu', submenu.loop)&amp;nbsp;lub menu.add_submenu? Nie wszystkie obiekty Menu mają być podmenu powiązanymi z innymi menu w programie.&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
from __future__ import annotations

import gettext
import locale
import sys
from dataclasses import dataclass
from typing import Callable, Optional, TextIO

from .user_input import print_input_error, redirect_stdio, wait_for_enter

# mypy and pylint don't work well with gettext.install
lang, _enc = locale.getlocale()
lang = lang or 'en'
_ = gettext.translation('python_misc',
                        localedir='locale',
                        languages=[lang, lang.split('_')[0], 'en'],
                        fallback=True).gettext


@dataclass(frozen=True)
class MenuItem:
    name: str
    action: Callable[[], None]
    key: Optional[str] = None
    visible: bool = True
    enabled: bool = True

    def __str__(self):
        return self.name


class Menu:
    nesting_level = -1

    def __init__(self,
                 title: str,
                 items: list[MenuItem], *,
                 quit_key: Optional[str] = 'q',
                 stdin: TextIO = sys.stdin,
                 stdout: TextIO = sys.stdout):
        self.title = title
        self.items = list(items)
        quit_item = MenuItem('Quit', self._quit, quit_key)
        self._check_for_duplicates(quit_item)
        self.items.append(quit_item)
        self.active = False
        self.quit_key = quit_key
        self.stdin = stdin
        self.stdout = stdout

    @property
    def visible_items(self):
        return [item for item in self.items if item.visible]

    def add_item(self,
                 name: str,
                 action: Callable[[], None],
                 key: Optional[str] = None) -&amp;gt; None:
        item = MenuItem(name, action, key)
        self._check_for_duplicates(item)
        self.items.insert(-1, item)

    def remove_item(self, name: str) -&amp;gt; bool:
        for idx, item in enumerate(self.items):
            if item.name == name:
                del self.items[idx]
                return True
        return False

    def add_submenu(self,
                    name: str,
                    menu: Menu,
                    key: Optional[str] = None) -&amp;gt; None:
        item = MenuItem(name, menu.loop, key)
        self._check_for_duplicates(item)
        self.items.insert(-1, item)

    def loop(self) -&amp;gt; None:
        with redirect_stdio(self.stdin, self.stdout):
            Menu.nesting_level += 1
            if Menu.nesting_level &amp;gt; 0:
                quit_item_title = _('Back')
            else:
                quit_item_title = _('Quit')
            quit_item = MenuItem(quit_item_title, self._quit, self.quit_key)
            self.items[-1] = quit_item
            self.active = True
            while self.active:
                user_choice = self._read_choice()
                if user_choice.action == self._quit:  # pylint: disable=W0143
                    self._quit()
                else:
                    try:
                        user_choice.action()
                        wait_for_enter()
                    except (EOFError, KeyboardInterrupt):
                        pass

    def _check_for_duplicates(self, candidate: MenuItem) -&amp;gt; None:
        for item in self.items:
            if (candidate.key is not None and item.key is not None
                    and candidate.key.lower() == item.key.lower()):
                raise ValueError('duplicate key')

    def _print_title(self) -&amp;gt; None:
        longest_item = max(len(item.name) for item in self.visible_items)
        has_key = any(item.key is not None for item in self.visible_items)
        if has_key:
            longest_key = max(len(item.key) for item in self.visible_items
                              if item.key is not None)
        else:
            longest_key = 0
        field_width = max(len(self.title), longest_item) + 2
        if longest_key &amp;gt; 0:
            field_width += longest_key
        line = '-' * (field_width + 2)
        print(line, file=self.stdout)
        print(f'|{self.title:^{field_width}}|', file=self.stdout)
        print(line, file=self.stdout)

    def _display_menu(self) -&amp;gt; None:
        self._print_title()
        longest = max(len(item.name) for item in self.visible_items)
        for idx, item in enumerate(self.visible_items, start=1):
            label = f'{idx}) {item.name:&amp;lt;{longest}}'
            label += f' [{item.key}]' if item.key else ''
            print(label)

    def _read_choice(self) -&amp;gt; MenuItem:
        with redirect_stdio(self.stdin, self.stdout):
            while True:
                self._display_menu()
                try:
                    user_input = input(_('Your choice: ')).strip().lower()
                except (EOFError, KeyboardInterrupt):
                    print(_('\nExiting...'))
                    return self.items[-1]

                try:
                    if user_input.isdigit():
                        idx = int(user_input)
                        if not 1 &amp;lt;= idx &amp;lt;= len(self.visible_items):
                            raise ValueError
                        candidate = self.visible_items[idx - 1]
                    else:
                        for idx, item in enumerate(self.visible_items):
                            if user_input == item.key:
                                candidate = self.visible_items[idx]
                                break
                        else:
                            raise ValueError
                    if not candidate.enabled:
                        print_input_error(_('invalid operation'))
                        wait_for_enter()
                    else:
                        return candidate
                except ValueError:
                    print_input_error(_('invalid choice'))

    def _quit(self) -&amp;gt; None:
        self.active = False
        Menu.nesting_level -= 1
&lt;/pre&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599257/jak-pozbyc-sie-zmiennej-statycznej</guid>
<pubDate>Sun, 12 Oct 2025 19:59:50 +0000</pubDate>
</item>
<item>
<title>Biblioteka do projektowania interaktywnych menu</title>
<link>https://forum.pasja-informatyki.pl/599255/biblioteka-do-projektowania-interaktywnych-menu</link>
<description>

&lt;p&gt;Hejka, co myślicie o moim nowym programie testującym bibliotekę do projektowania interaktywnych menu w konsoli?&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;calc.py&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
#!/usr/bin/env python3
import gettext
import os
from operator import add as op_add
from operator import mul, sub, truediv
from typing import Any, Callable

from ui.menu import Menu, MenuItem
from ui.user_input import read_number

# mypy and pylint don't work well with gettext.install
LOCALE = os.getenv('LANG', 'en')
_ = gettext.translation('python_misc',
                        localedir='locale',
                        languages=[LOCALE]).gettext


def make_binop(fn: Callable[[Any, Any], Any], name: str,
               nonzero_second=False) -&amp;gt; Callable[[], None]:
    def _op():
        a = read_number(_('Enter the first operand: '))
        b = read_number(_('Enter the second operand: '),
                        nonzero=nonzero_second)
        print(_('The result is {0}.').format(fn(a, b)))
    _op.__name__ = name
    return _op


if __name__ == '__main__':
    items = [MenuItem(_('Add'), make_binop(op_add, 'add'), _('a')),
             MenuItem(_('Subtract'), make_binop(sub, 'subtract'), _('s')),
             MenuItem(_('Multiply'), make_binop(mul, 'multiply'), _('m')),
             MenuItem(_('Divide'), make_binop(truediv, 'divide'), _('d'))]
    menu = Menu(_('Calculator'), items)
    menu.loop()
    print(_('Good bye!'))&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;ui/user_input.py&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import gettext
import os
import sys
from contextlib import contextmanager
from numbers import Number
from typing import IO, Any, Iterator, Optional, TextIO, overload

# mypy and pylint don't work well with gettext.install
LOCALE = os.getenv('LANG', 'en')
_ = gettext.translation('python_misc',
                        localedir='locale',
                        languages=[LOCALE]).gettext


@contextmanager
def redirect_stdio(stdin: IO[Any],
                   stdout: IO[Any],
                   stderr: IO[Any] = sys.stderr) -&amp;gt; Iterator[None]:
    old_stdin = sys.stdin
    old_stdout = sys.stdout
    old_stderr = sys.stderr
    sys.stdin = stdin
    sys.stdout = stdout
    sys.stderr = stderr

    yield

    sys.stdin = old_stdin
    sys.stdout = old_stdout
    sys.stderr = old_stderr


def read_str(prompt: str = '', *,
             stdin: TextIO = sys.stdin,
             stdout: TextIO = sys.stdout) -&amp;gt; str:
    stdout.write(prompt)
    stdout.flush()
    user_input = stdin.readline()
    if not user_input:
        raise EOFError
    return user_input


def wait_for_enter(*,
                   stdin: TextIO = sys.stdin,
                   stdout: TextIO = sys.stdout) -&amp;gt; None:
    read_str(_('\nPress ENTER to continue...\n'), stdin=stdin, stdout=stdout)


def print_input_error(message: str) -&amp;gt; None:
    print(_('Error: {0}. Try again...').format(message))


def _get_default_prompt(lower: Optional[Number], upper: Optional[Number],
                        nonzero: bool):
    prompt = _('Enter the number')
    if lower is not None or upper is not None or nonzero:
        prompt += ' ('
    if lower is not None:
        prompt += _('starting from {0}').format(lower)
    if upper is not None:
        prompt += _('up to {0}').format(upper)
    if nonzero:
        if lower is not None or upper is not None:
            prompt += ', '
        prompt += _('cannot be zero')
    if lower is not None or upper is not None or nonzero:
        prompt += ')'
    prompt += ': '
    return prompt


@overload
def read_number[T: Number](prompt: str = ..., *,
                           stdin: TextIO = ...,
                           stdout: TextIO = ...,
                           lower: Optional[T] = ...,
                           upper: Optional[T] = ...,
                           nonzero: bool = ...,
                           _type: type[T]) -&amp;gt; T: ...


@overload
def read_number[T: Number](prompt: str = ..., *,
                           stdin: TextIO = ...,
                           stdout: TextIO = ...,
                           lower: Optional[T] = ...,
                           upper: Optional[T] = ...,
                           nonzero: bool = ...) -&amp;gt; float: ...


def read_number[T: Number](prompt: str = '', *,
                           stdin: TextIO = sys.stdin,
                           stdout: TextIO = sys.stdout,
                           lower: Optional[T] = None,
                           upper: Optional[T] = None,
                           nonzero: bool = False,
                           _type: type = float):
    if not prompt:
        prompt = _get_default_prompt(lower, upper, nonzero)
    while True:
        try:
            number: Any = _type(read_str(prompt,
                                         stdin=stdin,
                                         stdout=stdout))
            if nonzero and number == 0:
                print_input_error(_('number is equal to zero'))
            if lower is not None and number &amp;lt; lower:
                print_input_error(_('number is too small'))
            if upper is not None and number &amp;gt; upper:
                print_input_error(_('number is too big'))
            return number
        except ValueError:
            print_input_error(_('not a number'))
        except (EOFError, KeyboardInterrupt):
            print(_('\nAborted by user.'))
            raise
&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;ui/menu.py&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
from __future__ import annotations

import gettext
import os
import sys
from dataclasses import dataclass
from typing import Callable, Optional, TextIO

from .user_input import print_input_error, redirect_stdio, wait_for_enter

# mypy and pylint don't work well with gettext.install
LOCALE = os.getenv('LANG', 'en')
_ = gettext.translation('python_misc',
                        localedir='locale',
                        languages=[LOCALE]).gettext


@dataclass(frozen=True)
class MenuItem:
    name: str
    action: Callable[[], None]
    key: Optional[str] = None
    visible: bool = True
    enabled: bool = True

    def __str__(self):
        return self.name


class Menu:
    nesting_level = -1

    def __init__(self,
                 title: str,
                 items: list[MenuItem], *,
                 fin: TextIO = sys.stdin,
                 fout: TextIO = sys.stdout):
        self.title = title
        self.items = list(items)
        if Menu.nesting_level &amp;gt; 0:
            quit_item_title = _('Back')
        else:
            quit_item_title = _('Quit')
        quit_item = MenuItem(quit_item_title, self._quit, _('q'))
        self._check_for_duplicates(quit_item)
        self.items.append(quit_item)
        self.active = False
        self.stdin = fin
        self.stdout = fout

    @property
    def visible_items(self):
        return [item for item in self.items if item.visible]

    def add_item(self,
                 name: str,
                 action: Callable[[], None],
                 key: Optional[str] = None) -&amp;gt; None:
        item = MenuItem(name, action, key)
        self._check_for_duplicates(item)
        self.items.insert(-1, item)

    def remove_item(self, name: str) -&amp;gt; bool:
        for idx, item in enumerate(self.items):
            if item.name == name:
                del self.items[idx]
                return True
        return False

    def add_submenu(self,
                    name: str,
                    menu: Menu,
                    key: Optional[str] = None) -&amp;gt; None:
        item = MenuItem(name, menu.loop, key)
        self._check_for_duplicates(item)
        self.items.append(item)

    def loop(self) -&amp;gt; None:
        with redirect_stdio(self.stdin, self.stdout):
            Menu.nesting_level += 1
            self.active = True
            while self.active:
                user_choice = self._read_choice()
                if user_choice.action.__name__ == self._quit.__name__:
                    self._quit()
                else:
                    try:
                        user_choice.action()
                        wait_for_enter()
                    except (EOFError, KeyboardInterrupt):
                        pass

    def _check_for_duplicates(self, candidate: MenuItem) -&amp;gt; None:
        for item in self.items:
            if (candidate.name == item.name
                or candidate.action == item.action
                    or candidate.key == item.key):
                raise ValueError('duplicate menu item')

    def _print_title(self) -&amp;gt; None:
        line = '-' * (len(self.title) + 4)
        print(line, file=self.stdout)
        print(f'| {self.title} |', file=self.stdout)
        print(line, file=self.stdout)

    def _read_choice(self) -&amp;gt; MenuItem:
        with redirect_stdio(self.stdin, self.stdout):
            while True:
                self._print_title()
                for idx, item in enumerate(self.visible_items, start=1):
                    print(f'{idx}) {item}')
                try:
                    user_input = input(_('Your choice: ')).strip().lower()
                except (EOFError, KeyboardInterrupt):
                    print(_('\nExiting...'))
                    return self.items[-1]

                try:
                    if user_input.isdigit():
                        idx = int(user_input)
                        if not 1 &amp;lt;= idx &amp;lt;= len(self.visible_items):
                            raise ValueError
                        candidate = self.visible_items[idx - 1]
                    else:
                        for idx, item in enumerate(self.visible_items):
                            if user_input == item.key:
                                candidate = self.visible_items[idx]
                                break
                        else:
                            raise ValueError
                    if not candidate.enabled:
                        print_input_error(_('invalid operation'))
                        wait_for_enter()
                    else:
                        return candidate
                except ValueError:
                    print_input_error(_('invalid choice'))

    def _quit(self) -&amp;gt; None:
        self.active = False
        Menu.nesting_level -= 1&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;locale/en/LC_MESSAGES/python_misc.po&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR &amp;lt;EMAIL@ADDRESS&amp;gt;, YEAR.
#
msgid &quot;&quot;
msgstr &quot;&quot;
&quot;Project-Id-Version: PACKAGE VERSION\n&quot;
&quot;POT-Creation-Date: 2025-10-12 16:57+0200\n&quot;
&quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&quot;
&quot;Last-Translator: FULL NAME &amp;lt;EMAIL@ADDRESS&amp;gt;\n&quot;
&quot;Language-Team: LANGUAGE &amp;lt;LL@li.org&amp;gt;\n&quot;
&quot;MIME-Version: 1.0\n&quot;
&quot;Content-Type: text/plain; charset=UTF-8\n&quot;
&quot;Content-Transfer-Encoding: 8bit\n&quot;
&quot;Generated-By: pygettext.py 1.5\n&quot;


#: calc.py:19
msgid &quot;Enter the first operand: &quot;
msgstr &quot;&quot;

#: calc.py:20
msgid &quot;Enter the second operand: &quot;
msgstr &quot;&quot;

#: calc.py:22
msgid &quot;The result is {0}.&quot;
msgstr &quot;&quot;

#: calc.py:28
msgid &quot;Add&quot;
msgstr &quot;&quot;

#: calc.py:28
msgid &quot;a&quot;
msgstr &quot;&quot;

#: calc.py:29
msgid &quot;Subtract&quot;
msgstr &quot;&quot;

#: calc.py:29
msgid &quot;s&quot;
msgstr &quot;&quot;

#: calc.py:30
msgid &quot;Multiply&quot;
msgstr &quot;&quot;

#: calc.py:30
msgid &quot;m&quot;
msgstr &quot;&quot;

#: calc.py:31
msgid &quot;Divide&quot;
msgstr &quot;&quot;

#: calc.py:31
msgid &quot;d&quot;
msgstr &quot;&quot;

#: calc.py:32
msgid &quot;Calculator&quot;
msgstr &quot;&quot;

#: calc.py:34
msgid &quot;Good bye!&quot;
msgstr &quot;&quot;

#: ui/menu.py:39
msgid &quot;Back&quot;
msgstr &quot;&quot;

#: ui/menu.py:41
msgid &quot;Quit&quot;
msgstr &quot;&quot;

#: ui/menu.py:42
msgid &quot;q&quot;
msgstr &quot;&quot;

#: ui/menu.py:73
msgid &quot;Your choice: &quot;
msgstr &quot;&quot;

#: ui/menu.py:75
msgid &quot;&quot;
&quot;\n&quot;
&quot;Exiting...&quot;
msgstr &quot;&quot;

#: ui/menu.py:92
msgid &quot;invalid operation&quot;
msgstr &quot;&quot;

#: ui/menu.py:97
msgid &quot;invalid choice&quot;
msgstr &quot;&quot;

#: ui/user_input.py:47
msgid &quot;&quot;
&quot;\n&quot;
&quot;Press ENTER to continue...\n&quot;
msgstr &quot;&quot;

#: ui/user_input.py:52
msgid &quot;Enter the number&quot;
msgstr &quot;&quot;

#: ui/user_input.py:56
msgid &quot;starting from {0}&quot;
msgstr &quot;&quot;

#: ui/user_input.py:58
msgid &quot;up to {0}&quot;
msgstr &quot;&quot;

#: ui/user_input.py:62
msgid &quot;cannot be zero&quot;
msgstr &quot;&quot;

#: ui/user_input.py:70
msgid &quot;Error: {0}. Try again...&quot;
msgstr &quot;&quot;

#: ui/user_input.py:107
msgid &quot;number is equal to zero&quot;
msgstr &quot;&quot;

#: ui/user_input.py:109
msgid &quot;number is too small&quot;
msgstr &quot;&quot;

#: ui/user_input.py:111
msgid &quot;number is too big&quot;
msgstr &quot;&quot;

#: ui/user_input.py:114
msgid &quot;not a number&quot;
msgstr &quot;&quot;

#: ui/user_input.py:116
msgid &quot;&quot;
&quot;\n&quot;
&quot;Aborted by user.&quot;
msgstr &quot;&quot;

&lt;/pre&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599255/biblioteka-do-projektowania-interaktywnych-menu</guid>
<pubDate>Sun, 12 Oct 2025 15:54:33 +0000</pubDate>
</item>
<item>
<title>Kalkulator w Pythonie + biblioteka menu v1</title>
<link>https://forum.pasja-informatyki.pl/599253/kalkulator-w-pythonie-biblioteka-menu-v1</link>
<description>

&lt;p&gt;Hej, napisałem pierwszą wersję kalkulatora wykorzystujący samodzielnie zrobiony przeze mnie interfejs menu.&lt;/p&gt;



&lt;p&gt;Co można poprawić w tym kodzie? Jakie bugi przeoczyłem? Czy dobrze robię robiąc z&amp;nbsp;MenuItem&amp;nbsp;data klasę czy lepiej przekazywać do konstruktora&amp;nbsp;Menu&amp;nbsp;słownik?&lt;/p&gt;



&lt;p&gt;Kod:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
~/python_misc ❯ cat calc.py                                                                                                                           21:03:15
#!/usr/bin/env python3
from ui.menu import Menu, MenuItem
from ui.user_input import read_number


def add() -&amp;gt; None:
    first = read_number('Enter the first operand: ')
    second = read_number('Enter the second operand: ')
    print(f'The result is {first + second}.')


def subtract() -&amp;gt; None:
    first = read_number('Enter the first operand: ')
    second = read_number('Enter the second operand: ')
    print(f'The result is {first - second}.')


def multiply() -&amp;gt; None:
    first = read_number('Enter the first operand: ')
    second = read_number('Enter the second operand: ')
    print(f'The result is {first * second}.')


def divide() -&amp;gt; None:
    first = read_number('Enter the first operand: ')
    second = read_number('Enter the second operand (cannot be zero): ',
                         nonzero=True)
    print(f'The result is {first / second}.')


items = [MenuItem('Add', add),
         MenuItem('Subtract', subtract),
         MenuItem('Multiply', multiply),
         MenuItem('Divide', divide)]
menu = Menu('Calculator', items)
menu.loop()
~/python_misc ❯ cat ui/menu.py                                                                                                                        21:03:20
from dataclasses import dataclass
from typing import Callable


@dataclass
class MenuItem:
    name: str
    action: Callable[[], None]

    def __str__(self):
        return self.name


class Menu:
    nesting_level = -1
    _quit_choice = -1

    def __init__(self, title: str, items: list[MenuItem]):
        self.title = title
        self.items = items
        self.active = False

    def _print_title(self) -&amp;gt; None:
        print('-' * (len(self.title) + 4))
        print(f'| {self.title} |')
        print('-' * (len(self.title) + 4))

    def _read_choice(self) -&amp;gt; int:
        while True:
            self._print_title()
            for idx, item in enumerate(self.items):
                print(f'{idx + 1}) {item}')
            print('q)', 'Back' if Menu.nesting_level &amp;gt; 0 else 'Quit')
            user_input: int | str = input('Your choice: ').lower()
            if user_input == 'q':
                return Menu._quit_choice
            try:
                user_input = int(user_input)
                if user_input not in range(1, len(self.items) + 1):
                    raise ValueError()
                return user_input - 1
            except ValueError:
                print('Error: invalid choice. Try again...')

    def _quit(self) -&amp;gt; None:
        self.active = False
        Menu.nesting_level -= 1

    def add_item(self, name, action):
        self.items.append(MenuItem(name, action))

    def remove_item(self, name):
        for idx, item in enumerate(self.items):
            if item.name == name:
                del self.items[idx]

    def loop(self) -&amp;gt; None:
        Menu.nesting_level += 1
        self.active = True
        while self.active:
            user_choice: int = self._read_choice()
            if user_choice == self._quit_choice:
                self._quit()
            else:
                self.items[user_choice].action()
                input('\nPress any key and type ENTER...\n')
~/python_misc ❯ cat ui/user_input.py                                                                                                                  21:03:26
from typing import Any, Optional, overload


def get_default_prompt(lower: bool, upper: bool, nonzero: bool):
    prompt = 'Enter the number'
    if lower or upper or nonzero:
        prompt += ' ('
    if lower:
        prompt += f'starting from {lower}'
    if upper:
        prompt += f'up to {upper}'
    if nonzero:
        if lower or upper:
            prompt += ', '
        prompt += 'cannot be zero'
    if lower or upper or nonzero:
        prompt += ')'
    prompt += ': '
    return prompt


@overload
def read_number[T](prompt: str = ..., *,
                   lower: Optional[T] = ...,
                   upper: Optional[T] = ...,
                   nonzero: bool = ...,
                   _type: type[T]) -&amp;gt; T: ...


@overload
def read_number[T](prompt: str = ..., *,
                   lower: Optional[T] = ...,
                   upper: Optional[T] = ...,
                   nonzero: bool = ...) -&amp;gt; float: ...


def read_number[T](prompt: str = '', *,
                   lower: Optional[T] = None,
                   upper: Optional[T] = None,
                   nonzero: bool = False,
                   _type: type = float):
    if not prompt:
        prompt = get_default_prompt(bool(lower),
                                    bool(upper),
                                    bool(nonzero))
    while True:
        try:
            try:
                number: Any = _type(input(prompt))
            except ValueError as exc:
                raise ValueError('not a number') from exc
            if nonzero and number == 0:
                raise ValueError('number is equal to zero')
            if lower and number &amp;lt; lower:
                raise ValueError('number too small')
            if upper and number &amp;gt; upper:
                raise ValueError('number too big')
            return number
        except ValueError as exc:
            print(f'Error: {exc}. Try again...')
&lt;/pre&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599253/kalkulator-w-pythonie-biblioteka-menu-v1</guid>
<pubDate>Sat, 11 Oct 2025 19:05:40 +0000</pubDate>
</item>
<item>
<title>mypy - typ zwracanej wartości przez funkcję taki sam jak typ argumentu funkcji</title>
<link>https://forum.pasja-informatyki.pl/599249/mypy-typ-zwracanej-wartosci-przez-funkcje-taki-sam-jak-typ-argumentu-funkcji</link>
<description>

&lt;p&gt;Hej, jak mogę powiedzieć mypy że typ zwracany powinien być taki sam jak ten przekazany w parametrze _type do funkcji read_number bez bawienia się w Any?&lt;/p&gt;



&lt;p&gt;Chodzi mi o takie coś&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
def read_number(prompt: str = 'Enter the number (cannot be zero): ', *,
                _type: type = float) -&amp;gt; _type (?) wywala błąd undefined name _type:
    while True:
        try:
            return _type(input(prompt))
        except ValueError:
            print('Error: not a number. Try again...')&lt;/pre&gt;



&lt;p&gt;Funkcja ma zwracać taki sam typ jak ten zdefiniowany w zmiennej _type.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/599249/mypy-typ-zwracanej-wartosci-przez-funkcje-taki-sam-jak-typ-argumentu-funkcji</guid>
<pubDate>Sat, 11 Oct 2025 11:55:54 +0000</pubDate>
</item>
<item>
<title>Zadanie 64.4 ze zbioru zadań CKE Python</title>
<link>https://forum.pasja-informatyki.pl/598571/zadanie-64-4-ze-zbioru-zadan-cke-python</link>
<description>

&lt;pre class=&quot;brush:python;&quot;&gt;
def policz_zle_wiersze(obraz):
    zle = 0
    kandydat_na_zly_nr_wiersza = -1
    for j in range(0, 20): # nr_wiersza (index)
        wiersz = obraz[j]
        ile_jedynek = 0
        ile_zer = 0
        for i in range(0, 20):
            znak = wiersz[i]
            if znak == '1':
                ile_jedynek += 1
            else:
                ile_zer += 1
        bit_parzystosci = wiersz[-1] #string
        if int(bit_parzystosci) != ile_jedynek % 2:
            if zle == 0:    # jesli to byl pierwszy zly, to zapamietaj kandydata
                kandydat_na_zly_nr_wiersza = j+1
            zle += 1

    return (zle, kandydat_na_zly_nr_wiersza) # {ilość złych, nr_1.złego_wiersza}

def policz_zle_kolumny(obraz):
    zle = 0
    kandydat_na_zly_nr_kolumny = -1
    for i in range(0, 20): # indeks kolumny
        ile_jedynek = 0
        ile_zer = 0
        for wiersz in obraz:
            znak = wiersz[i]
            if znak == '1':
                ile_jedynek += 1
            else:
                ile_zer += 1

        bit_parzystosci = obraz[-1][i] # na planszy
        if ile_jedynek % 2 != int(bit_parzystosci):
            if zle == 0:
                kandydat_na_zly_nr_kolumny = i+1
            zle += 1

    return (zle, kandydat_na_zly_nr_kolumny)

for i in range(0, len(dane)):
    nr_obrazu = i+1
    obraz = dane[i]
    ile_zlych_wiersz = policz_zle_wiersze(obraz) # idąc wierszem, bity w pionie
    ile_zlych_kolumna = policz_zle_kolumny(obraz) # idąc pionowo, bity w wierszu

    if ile_zlych_kolumna[0] == 1 and ile_zlych_wiersz[0] == 1: # 1
        # po jednej zlej w wierszu i jednej zlej w kolumnie
        print(f'({nr_obrazu}, {ile_zlych_wiersz[1]}, {ile_zlych_kolumna[1]})')
    elif ile_zlych_kolumna[0] == 0 and ile_zlych_wiersz[0] == 1: # 2
        print(f'({nr_obrazu}, {ile_zlych_wiersz[1]}, {21})')
    elif ile_zlych_wiersz[0] == 0 and ile_zlych_kolumna[0] == 1:
        print(f'({nr_obrazu}, {21}, {ile_zlych_kolumna[1]})')&lt;/pre&gt;



&lt;p&gt;Witam. Robię zadanie i plan mój po krótce jest taki że:&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
1 zły wiersz + 1 zła kolumna → trzeba zmienić piksel, 
1 zły wiersz tylko → trzeba zmienić bit na końcu wiersza, 
1 zła kolumna tylko → trzeba zmienić bit na dole kolumny to wszystko jest super.&lt;/pre&gt;



&lt;p&gt;Nie mogę znaleźć błędu. Moje odpowiedzi to:&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
(3, 1, 21)
(14, 1, 21)
(29, 2, 21)
(32, 21, 1)
(45, 21, 18)
(72, 21, 8)
(90, 21, 5)
(129, 21, 8)
(142, 19, 16)
(143, 7, 21)
(154, 7, 21)&lt;/pre&gt;



&lt;p&gt;natomaist ich &quot;poprawne&quot;, to :&lt;/p&gt;



&lt;pre&gt;
(14,1,15)
(19,4,20)
(26,21,13)
(29,2,8)
(33,15,21)
(115,21,14)
(116,21,13)
(129,21,14)
(131,10,7)
(143,7,15)
(154,7,7)
(161,21,17)
(162,21,16)
(187,21,18)
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Proszę o pomoc i życzę miłej soboty. Pozdrawiam&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598571/zadanie-64-4-ze-zbioru-zadan-cke-python</guid>
<pubDate>Sat, 26 Apr 2025 07:15:15 +0000</pubDate>
</item>
<item>
<title>Matura funkcje wbudowane</title>
<link>https://forum.pasja-informatyki.pl/598503/matura-funkcje-wbudowane</link>
<description>

&lt;p&gt;Czy definicja &quot;funkcje wbudowane&quot; na maturze z informatyki dotyczy również `bit_length`?
&lt;br&gt;

&lt;br&gt;
&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=527871289984482582&quot; style=&quot;height:317px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;

def count_blocks(n: int) -&amp;gt; int:
    blocks = 0
    last = None
    for i in range(n.bit_length()):
        b = (n &amp;gt;&amp;gt; i) % 2
        if last != b:
            blocks += 1
        last = b
    return blocks

&lt;/pre&gt;

</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598503/matura-funkcje-wbudowane</guid>
<pubDate>Wed, 16 Apr 2025 08:06:41 +0000</pubDate>
</item>
<item>
<title>Edytor Python</title>
<link>https://forum.pasja-informatyki.pl/598463/edytor-python</link>
<description>Jaki edytor kodu Python polecacie kompletnie zielonemu&amp;quot;&amp;quot; w tym temacie tj programowanie w Pythonie. Fajnie gdyby był w języku polskim. Edytor na Linux Mint</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598463/edytor-python</guid>
<pubDate>Thu, 10 Apr 2025 21:48:53 +0000</pubDate>
</item>
<item>
<title>Problem z wykrywaniem kamery i mikrofonu (Django - WebRTC)</title>
<link>https://forum.pasja-informatyki.pl/598402/problem-z-wykrywaniem-kamery-i-mikrofonu-django-webrtc</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Mam problem z aplikacją opartą na Django i WebRTC (Fragment większego projektu). Niektórzy użytkownicy dołączają do pokoju i wszystko działa poprawnie -&amp;nbsp;ich dźwięk i obraz są przesyłane prawidłowo. Jednak inni uczestnicy dołączają, ale ich nie słychać i nie widać, mimo że mają włączony mikrofon i kamerę.&lt;/p&gt;



&lt;p&gt;Sprawdziłem już:&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;
	

&lt;p&gt;Czy użytkownicy udzielili odpowiednich uprawnień do mikrofonu i kamery,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;Czy przeglądarka nie blokuje dostępu do urządzeń,&lt;/p&gt;
	&lt;/li&gt;
	

&lt;li&gt;
	

&lt;p&gt;Czy problem występuje we wszystkich przeglądarkach (i tak, nadal się pojawia).&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Czy ktoś spotkał się z podobnym problemem? Może coś przeoczyłem w konfiguracji WebRTC? Każda wskazówka będzie bardzo pomocna!&lt;/p&gt;



&lt;p&gt;Z góry dziękuję!&lt;/p&gt;



&lt;p&gt;P.S. Jeśli temat jest zbyt konkretny, prosiłbym o ewentualną propozycję do kogo można się z takim czymś zwrócić o pomoc(nawet odpłatną).&lt;/p&gt;



&lt;p&gt;Kod:&amp;nbsp;&lt;/p&gt;



&lt;p&gt;room2.html:&amp;nbsp;&lt;a href=&quot;https://pastebin.com/499g2vW3&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://pastebin.com/499g2vW3&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;room2_rtc.js:&amp;nbsp;&lt;a href=&quot;https://pastebin.com/eD0wK1kY&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://pastebin.com/eD0wK1kY&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;room2.js:&amp;nbsp;&lt;a href=&quot;https://pastebin.com/WH9QHazr&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://pastebin.com/WH9QHazr&lt;/a&gt;&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598402/problem-z-wykrywaniem-kamery-i-mikrofonu-django-webrtc</guid>
<pubDate>Mon, 31 Mar 2025 08:05:10 +0000</pubDate>
</item>
<item>
<title>Darmowy kurs Python poziom podstawowy dla chętnych</title>
<link>https://forum.pasja-informatyki.pl/598291/darmowy-kurs-python-poziom-podstawowy-dla-chetnych</link>
<description>

&lt;p&gt;Udostępniam bezpłatny&amp;nbsp;link&amp;nbsp;do mojego nowego kursu podstaw programowania w &lt;strong&gt;Pythonie &lt;/strong&gt;na Udemy.
&lt;br&gt;
Kurs jest skierowany do osób początkujących – studentów pierwszego roku, osób planujących zmianę branży oraz uczniów szkół średnich.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Kilka informacji o kursie:&lt;/strong&gt;
&lt;br&gt;
✅ 12 godzin materiałów wideo
&lt;br&gt;
✅ Przystępne wprowadzenie do Pythona od podstaw
&lt;br&gt;
✅ Praktyczne przykłady i zadania
&lt;br&gt;
✅ Kurs dostępny na Udemy – po zapisaniu można korzystać bez ograniczeń&lt;/p&gt;



&lt;p&gt;Liczba darmowych miejsc jest ograniczona więc jeżeli ktoś jest zainteresowany to proszę nie zwlekać.&amp;nbsp;
&lt;br&gt;
Link będzie aktywny do dnia 30.03.2025.&lt;/p&gt;



&lt;p&gt;Link do bezpłatnego kursu: &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.udemy.com/course/python-pierwsze-kroki-podstawy/?couponCode=2C593664F1A32E884C13&quot;&gt;kurs&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Będę wdzięczny za każdą ocenę i komentarz na platformie Udemy – pomoże to innym osobom znaleźć kurs i ocenić jego wartość.&lt;/p&gt;



&lt;p&gt;Ogólny link do kursu:&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.udemy.com/course/python-pierwsze-kroki-podstawy/?referralCode=86F2CFC468267D72872E&quot;&gt;kurs&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Pozdrawiam i powodzenia w nauce.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598291/darmowy-kurs-python-poziom-podstawowy-dla-chetnych</guid>
<pubDate>Sat, 15 Mar 2025 21:31:43 +0000</pubDate>
</item>
<item>
<title>Klasyfikacja samochodu w python na podstawie jego danych</title>
<link>https://forum.pasja-informatyki.pl/598042/klasyfikacja-samochodu-w-python-na-podstawie-jego-danych</link>
<description>

&lt;p&gt;Zaczynam swoją przygodę ze sztuczną inteligencją w python, jako pierwszy &quot;projekt&quot; postanowiłem napisać klasyfikator samochodów na podstawie jego danych takich jak: przyspieszenie, masa, liczba siedzeń, ale nie działa, nie umiem znaleźć problemu. Z góry dziękuję za pomoc .&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import numpy as np

def schodkowa(x):
    return (x &amp;gt; 0).astype(int)

class SiecNeuronowa:
    def __init__(self):
        np.random.seed(1)
        self.wagi = np.random.randn(3)  # np.random.randn(ile) generuje listę tylu liczb ile podamy w jej argumencie
        self.bias = np.random.randn(1)

    def przejscie_wprzod(self, dane):
        suma = np.dot(dane, self.wagi) + self.bias
        return schodkowa(suma)

    def trenuj(self, dane, oczekiwane, epoki=100, wsp_uczenia=0.1):
        i = 0
        for _ in range(epoki):
            for j in range(len(dane)):
                wyjscie = self.przejscie_wprzod(dane[j])
                blad = oczekiwane[j] - wyjscie
                
                # Aktualizacja wag (proste dostrajanie)
                self.wagi += dane[j] * blad * wsp_uczenia
                self.bias += blad * wsp_uczenia
            i+=1
        print(f'To zajęło: {i} epok')

# Dane uczące (przyspieszenie, masa, liczba siedzeń)
dane_uczace = np.array([
    [3.2, 1400, 2],  # Sportowy
    [4.1, 1300, 2],  # Sportowy
    [5.8, 1600, 4],  # Sportowy
    [6.5, 1800, 5],  # Normalny
    [7.2, 2000, 5],  # Normalny
    [8.3, 2200, 7],  # Normalny
    [5.0, 1550, 2],  # Sportowy
    [7.5, 1900, 5]   # Normalny
])

etykiety = np.array([1, 1, 1, 0, 0, 0, 1, 0])  # 1 = sportowy, 0 = normalny

# Tworzenie i trenowanie sieci
siec = SiecNeuronowa()
siec.trenuj(dane_uczace, etykiety, epoki=20000, wsp_uczenia=0.1)

# Testowanie na nowych danych
testowe_samochody = np.array([
    [4.5, 1500, 2],  # Powinno być sportowy
    [6.8, 1700, 5],  # Powinno być normalny
    [5.5, 1450, 2],  # Powinno być sportowy
    [7.0, 2100, 7]   # Powinno być normalny
])

przewidywania = siec.przejscie_wprzod(testowe_samochody)
print(&quot;Przewidywania:&quot;, przewidywania)&lt;/pre&gt;

</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598042/klasyfikacja-samochodu-w-python-na-podstawie-jego-danych</guid>
<pubDate>Thu, 13 Feb 2025 18:49:38 +0000</pubDate>
</item>
<item>
<title>Numpy vs PyTorch - przekazywanie tablic, GPU</title>
<link>https://forum.pasja-informatyki.pl/598040/numpy-vs-pytorch-przekazywanie-tablic-gpu</link>
<description>Cześć, mam taki problem; moim zadaniem jest przeniesienie kodu z NumPy na PyTorch.&lt;br /&gt;
&lt;br /&gt;
w wersji NumPy jest podwójna pętla for, i w wewnętrznej pętli jest:&lt;br /&gt;
for i in rangę(x):&lt;br /&gt;
b = a&lt;br /&gt;
a = np.ones(C)&lt;br /&gt;
// jakieś obliczenia na nowym a&lt;br /&gt;
// jakieś porównanie miedzy b (&amp;quot;starym a&amp;quot;) i nowym a&lt;br /&gt;
&lt;br /&gt;
Gdy te sama pętle napisałem w torchu,&lt;br /&gt;
&lt;br /&gt;
po prostu piszac&lt;br /&gt;
&lt;br /&gt;
a = torch.ones(C)&lt;br /&gt;
to kod nagle zaczął działać nieakceptowanie wolno (jest to powiązane z tym, ze działa on na GPU, i kod cały czas alokuje i inicjalizuje te zmienna od nowa na GPU)&lt;br /&gt;
&lt;br /&gt;
początkowo rozwiązałem to w taki sposób, ze&lt;br /&gt;
przed pętla for stworzyłem zmienna a_pattern = torch.ones(C)&lt;br /&gt;
a w pętli for robiłem przypisanie a = a_pattern&lt;br /&gt;
I to działa bardzo szybko, bo zmienna jest inicjalizowana tylko raz, ale prowadzi do złych wyników, bo teraz b = a = a_pattern i b przyjmuje wartość a_pattern, &amp;nbsp;bo tensorki się przekazują przez referencje (jak chyba wszystko w Pythonie)&lt;br /&gt;
&lt;br /&gt;
Próbowałem funkcje .clone, .copy, .detach, &amp;nbsp;.empty i .fill, przepisywanie w pętli for zamiast całej zmiennej od razu, &amp;nbsp;- nic nie działa - wszystko albo działa wolno i daje dobry wynik (jak a = torch.ones()), albo działa szybko i daje zły wynik (jak a = a_pattern). Potrzebuje rozwiązania które działa szybko i dobrze. Kod jako calom jest przyspieszony w porównaniu do wersji numpy, wiec jak Wasze rozwiazanie będzie działać kilka % wolniej od wersji numpy to nie ma problemu, ale niestety w mojej sytuacji instrukcja a = torch.ones(C) to 99% czasu działania programu, co jest nie do przyjęcia.&lt;br /&gt;
&lt;br /&gt;
Przepraszam ze nie załączam kodu ale i tak go nie odpalicie bo to wiele plików i duży dataset; ale zdiagnozowałem ze problemem jest tylko i aż ta jedna instrukcja. &lt;br /&gt;
&lt;br /&gt;
Czy ktoś ma pomysł jak to rozwiązać? &lt;br /&gt;
&lt;br /&gt;
Jakby co: przeniesienie kodu na GPU działa, nvtop pokazuje, ze zarówno pamięć jak i mcc obliczeniowa GPU jest mocno utylizowana</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598040/numpy-vs-pytorch-przekazywanie-tablic-gpu</guid>
<pubDate>Thu, 13 Feb 2025 12:24:02 +0000</pubDate>
</item>
<item>
<title>Transponowanie Macierzy - SPOJ</title>
<link>https://forum.pasja-informatyki.pl/598015/transponowanie-macierzy-spoj</link>
<description>

&lt;pre class=&quot;brush:python;&quot;&gt;
import sys

rows = 0
cols = 0

macierz = []

for i, line in enumerate(sys.stdin):
    if i == 0:
        rows = int(line.split()[0])
        cols = int(line.split()[1])
        for i in range(rows+1):
            macierz.append(list())
    else:
        nums = line.split()
        for j, value in enumerate(nums):
            macierz[j].append(value)
            
for i in range(len(macierz)):
    line = &quot;&quot;
    for j in macierz[i]:
        line += j + &quot; &quot;
    print(line[:-1])&lt;/pre&gt;



&lt;p&gt;Oto mój kod ↑&lt;/p&gt;



&lt;p&gt;Problem jest następujący, otrzymuję &quot;Błąd Wykonania (NZEC)&quot; a w python compiler wszystko odbywa się prawidłowo. Czy jest to wina kodu czy o czymś zapomniałem jeśli chodzi o macierz transponowaną (jestem w podstawówce)?&lt;/p&gt;</description>
<category>SPOJ</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/598015/transponowanie-macierzy-spoj</guid>
<pubDate>Thu, 06 Feb 2025 20:28:52 +0000</pubDate>
</item>
<item>
<title>SPOJ - Parzyste Nieparzyste</title>
<link>https://forum.pasja-informatyki.pl/597824/spoj-parzyste-nieparzyste</link>
<description>

&lt;p&gt;Zadanie o treści:&lt;/p&gt;



&lt;table&gt;
	

&lt;tbody&gt;
		

&lt;tr&gt;
			

&lt;td&gt;
			

&lt;p&gt;PP0602A - Parzyste nieparzyste&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;



&lt;p&gt;Wczytaj ciąg liczb. Następnie wypisz wczytane liczby w taki sposób, aby najpierw pojawiły się te, które wystąpiły na pozycjach parzystych, a następnie te, które wystąpiły na pozycjach nieparzystych; z zachowaniem pierwotnej kolejności w obrębie obu grup. Numerujemy od 1.&lt;/p&gt;



&lt;p&gt;Wejście&lt;/p&gt;



&lt;p&gt;Najpierw t - liczba testów. Następnie dla każdego testu liczba&amp;nbsp;n&amp;nbsp;i&amp;nbsp;n&amp;nbsp;liczb, n &amp;lt;= 100.&lt;/p&gt;



&lt;p&gt;Wyjście&lt;/p&gt;



&lt;p&gt;Dla każdego testu&amp;nbsp;n&amp;nbsp;liczb w opisanym porządku.&lt;/p&gt;



&lt;p&gt;Przykład&lt;/p&gt;



&lt;pre&gt;
&lt;strong&gt;Wejście:&lt;/strong&gt;
2 
4 1 2 3 5
3 9 8 7 

&lt;strong&gt;Wyjście:&lt;/strong&gt;
2 5 1 3
8 9 7&lt;/pre&gt;



&lt;p&gt;Mój kod:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import sys

id = 1
for line in sys.stdin:
    if id != 1:
        line = line[2:].strip()
        i = 1
        parzyste = &quot;&quot;
        nieparzyste = &quot;&quot;
        for j in line:
            #print(&quot;j: &quot; + j)
            if j != &quot; &quot;:
                if i % 2 == 0:
                    #print(&quot;ta j jest parzysta ↑&quot;)
                    parzyste += j + &quot; &quot;
                else:
                    #print(&quot;ta j jest nieparzysta ↑&quot;)
                    nieparzyste += j + &quot; &quot;
                i += 1
        wynik = parzyste + nieparzyste[0:len(nieparzyste)-1]
        print(wynik)
    id += 1 &lt;/pre&gt;



&lt;p&gt;co jest nie tak? pisze że blędna odpowiedź.&lt;/p&gt;</description>
<category>SPOJ</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/597824/spoj-parzyste-nieparzyste</guid>
<pubDate>Sat, 18 Jan 2025 08:05:48 +0000</pubDate>
</item>
<item>
<title>wagtail, python</title>
<link>https://forum.pasja-informatyki.pl/597196/wagtail-python</link>
<description>Cześć,&lt;br /&gt;
&lt;br /&gt;
Korzystał może ktoś z Was z Wagtail CMS? Potrzebuje zaczerpnąć opinii bo chce poznać jakiegoś pythonowego CMS chyba że znacie i polecicie coś innego.</description>
<category>Hostingi, domeny, usługi</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/597196/wagtail-python</guid>
<pubDate>Tue, 03 Dec 2024 18:17:13 +0000</pubDate>
</item>
<item>
<title>Alternatywny kod i błędny wynik</title>
<link>https://forum.pasja-informatyki.pl/597108/alternatywny-kod-i-bledny-wynik</link>
<description>

&lt;p&gt;Cześć, piszę program, w którym mam 3 pliki z temperaturami i mam wyznaczyć ilość rekordów w w co najmniej jednym z tych plików. Mam kod, który dziala i go rozumiem:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
for i in range(1, n):
	check = False
	if s1[i][1]&amp;gt;max1:
		max1=s1[i][1]
		check = True
	if s2[i][1]&amp;gt;max2:
		max2=s2[i][1]
		check = True
	if s3[i][1]&amp;gt;max3:
		max3=s3[i][1]
		check = True
	if check == True:
		record += 1&lt;/pre&gt;



&lt;p&gt;Oraz swój kod, gdzie nie widzę błędów:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
for i in range(1, n):
	if s1[i][1]&amp;gt;max1:
		max1=s1[i][1]
		record += 1
	elif s2[i][1]&amp;gt;max2:
		max2=s2[i][1]
		record += 1
	elif s3[i][1]&amp;gt;max3:
		max3=s3[i][1]
		record += 1&lt;/pre&gt;



&lt;p&gt;W pierwszym kodzie wynik jest 42 i jest poprawne rozwiązanie, a w moim rozwiązaniu wynik jest 55 i nie rozumiem co robie źle. Czy ktoś mógłby mi pomóc w przeanalizowaniu mojego kodu po kątem występującej rozbieżności w odpowiedzi?&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/597108/alternatywny-kod-i-bledny-wynik</guid>
<pubDate>Sun, 01 Dec 2024 09:41:58 +0000</pubDate>
</item>
<item>
<title>Długi input w pythonie</title>
<link>https://forum.pasja-informatyki.pl/596671/dlugi-input-w-pythonie</link>
<description>Cześć, potrzebuje pomocy z zadaniem. Sam algorytm działa mi bezbłędnie, niestety jeden z testów zakłada na wejściu liczbę n&amp;lt;=9*10^999999. Python nie obsługuje konwersji liczby string na int dla tak dużych wartości. Jak inaczej mogę to przekonwertować na int niż poprzez int(input())?</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/596671/dlugi-input-w-pythonie</guid>
<pubDate>Mon, 11 Nov 2024 12:59:47 +0000</pubDate>
</item>
<item>
<title>Błąd w kodzie na SPOJu</title>
<link>https://forum.pasja-informatyki.pl/596452/blad-w-kodzie-na-spoju</link>
<description>

&lt;pre class=&quot;brush:python;&quot;&gt;
n = input()
print(n.title().replace(&quot; &quot;, &quot;&quot;))&lt;/pre&gt;



&lt;p&gt;zadanie dotyczy&amp;nbsp;&lt;a href=&quot;https://pl.spoj.com/problems/JSPACE/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://pl.spoj.com/problems/JSPACE/&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;kod w VSC działa a w samym SPOJu już nie.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/596452/blad-w-kodzie-na-spoju</guid>
<pubDate>Sat, 02 Nov 2024 13:13:51 +0000</pubDate>
</item>
<item>
<title>Nauka programowania</title>
<link>https://forum.pasja-informatyki.pl/595993/nauka-programowania</link>
<description>Hej,&lt;br /&gt;
&lt;br /&gt;
Obecnie pracuje w IT na Help Desku i troszkę pracuje na bazie danych SQL systemu informatycznego stosowanego w pracy. Zastanawiam się nad nauką programowania w języku python pod backend developera. Czy opłaca się robić kurs na Praktyczny Python za 6000 zł pod mentoringiem czy lepiej kupić sobie odpowiedni kurs na Udemy i się uczyć samodzielnie? Dodam, że 2 godziny dziennie planuję poświęcać na naukę programowania</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/595993/nauka-programowania</guid>
<pubDate>Mon, 23 Sep 2024 14:13:56 +0000</pubDate>
</item>
<item>
<title>PYTHON PROGRAM PIERWSZEŃSTWO SUM LICZB</title>
<link>https://forum.pasja-informatyki.pl/595986/python-program-pierwszenstwo-sum-liczb</link>
<description>

&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;PRZEDSTAWIAM PROGRAM&amp;nbsp; w PYTHONIE, WYMYŚLONY PRZEZEMNIE BAZUJĄCY NA:&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;&lt;strong&gt;PRAWU PIERWSZEŃSTWA LICZB wg MART'A &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;&lt;strong&gt;(w zasadzie na ciągu liczb nieparzystych i liczb naturalnych)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;Oczywiście sam tego programu nie napisałem, skorzystałem z GPT.&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;PEWNIE TO NIC NADZWYCZAJNEGO.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;```python
&lt;br&gt;
import math&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;# Funkcja do sprawdzania, czy liczba jest pierwsza
&lt;br&gt;
def is_prime(num):
&lt;br&gt;
&amp;nbsp; &amp;nbsp; if num &amp;lt; 2:
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return False
&lt;br&gt;
&amp;nbsp; &amp;nbsp; for i in range(2, int(math.sqrt(num)) + 1):
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if num % i == 0:
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return False
&lt;br&gt;
&amp;nbsp; &amp;nbsp; return True&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;# Funkcja do znajdowania unikalnych liczb
&lt;br&gt;
def find_convergence(n, m):
&lt;br&gt;
&amp;nbsp; &amp;nbsp; results = set()&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;&amp;nbsp; &amp;nbsp; for k in range(1, n + 1):
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; first_value = n - k
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; second_value = m - k
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if first_value &amp;gt; 0:
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; results.add(first_value)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if second_value &amp;gt; 0:
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; results.add(second_value)&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;&amp;nbsp; &amp;nbsp; additional_values = [2 * n + 1, 2 * m + 1]
&lt;br&gt;
&amp;nbsp; &amp;nbsp; results.update(additional_values)&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;&amp;nbsp; &amp;nbsp; return sorted(results)&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;# Funkcja do obliczania iloczynu liczb pierwszych
&lt;br&gt;
def prime_factors_product(num):
&lt;br&gt;
&amp;nbsp; &amp;nbsp; factors = []
&lt;br&gt;
&amp;nbsp; &amp;nbsp; for i in range(2, num + 1):
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while num % i == 0 and is_prime(i):
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; factors.append(i)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; num //= i
&lt;br&gt;
&amp;nbsp; &amp;nbsp; return factors&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;# Interaktywny interfejs użytkownika
&lt;br&gt;
def main():
&lt;br&gt;
&amp;nbsp; &amp;nbsp; print(&quot;Sprawdź sumę par unikalnych liczb n i m oraz ich pierwszeństwo.&quot;)
&lt;br&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; n = int(input(&quot;Podaj wartość n: &quot;))
&lt;br&gt;
&amp;nbsp; &amp;nbsp; m = int(input(&quot;Podaj wartość m: &quot;))&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;&amp;nbsp; &amp;nbsp; # Obliczanie sumy
&lt;br&gt;
&amp;nbsp; &amp;nbsp; sum_nm = n + m&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;&amp;nbsp; &amp;nbsp; if is_prime(sum_nm):
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f'Suma {n} + {m} = {sum_nm} jest liczbą pierwszą.')
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f'Iloczyn: 1 * {sum_nm}')
&lt;br&gt;
&amp;nbsp; &amp;nbsp; else:
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; factors = prime_factors_product(sum_nm)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if factors:
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; product = ' * '.join(map(str, factors))
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f'Suma {n} + {m} = {sum_nm} jest liczbą złożoną.')
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f'Iloczyn: {product}')
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else:
&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print(f'Suma {n} + {m} = {sum_nm} jest liczbą złożoną, ale nie ma liczb pierwszych w iloczynie.')&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;if __name__ == &quot;__main__&quot;:
&lt;br&gt;
&amp;nbsp; &amp;nbsp; main()
&lt;br&gt;
```&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:18px&quot;&gt;TRZEBA SKOPIOWAĆ TEKST DO PYTHONA, (&lt;/span&gt;```python, ```)&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;TAKA ZABAWKA DLA DZIECI!! &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;WYDAJE SIĘ CIEKAWY, DLATEGO TO UDOSTĘPNIAM, MIŁEJ ZABAWY!!!&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;Rozumiem, że nic jako tako o programowaniu nie odkryłem!!!&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;Lecz chcę zwrócić uwagę na to, że&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;o podzielności liczb nie decyduje ona sama tylko suma jej składników , w szczególnym wypadku gdy suma budująca daną liczbę jest równa zbieżności poszczególnych składników.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;Przykład dla liczby 11, składa się z 5 i 6.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;Mając ciąg liczb naturalnych i liczb nieparzystych stwierdzimy, że zarówno:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;5-1,&amp;nbsp; 4-1,&amp;nbsp; 3-1,&amp;nbsp; 2-1, (1-1)&amp;nbsp; równolegle&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;1+2, 3+2, 5+2, 7+2, (9+2)&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;​​​​​​LICZBA 5 ZBIEŻNA DO 11.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;6+1, 7+1, 8+1, 9+1, (10+1) równolegle&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;1+2, 3+2, 5+2, 7+2, (9+2)&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;LICZBA 6 ZBIEŻNA DO 11.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;TE DWIE LICZBY SĄ ZBIEŻNE DO 11, NIEZALEŹNIE OD SIEBIE!!!&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;INACZEJ MA SIĘ LICZBA ZŁOŻONA NP. LICZBA 9 SKŁADA SIĘ Z 4i5.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:16px&quot;&gt;&lt;strong&gt;(4-1) , 3-1,&amp;nbsp; 2-1, (1-1) równolegle&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:16px&quot;&gt;&lt;strong&gt;(1+2), 3+2, 5+2, (7+2)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:16px&quot;&gt;&lt;strong&gt;(5+1), 6+1, 7+1, (8+1) równolegle&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:16px&quot;&gt;&lt;strong&gt;(1+2), 3+2, 5+2, (7+2)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;font-size:16px&quot;&gt;&lt;strong&gt;TE DWIE LICZBY 4 I 5 RÓWNIEŻ ZBIEŻNE W TYCH SAMYCH PUNKTACH NIEZALEŻNIE OD SIEBIE.!!!!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;RÓŻNICA POMIĘDZY LICZBAMI PIERWSZYMI I ZŁOŻONYMI PRZYCHODZI NA MYŚL:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span style=&quot;font-size:16px&quot;&gt;A)INNA ILOŚĆ PUNKTÓW ZBIEŻNOŚCI?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span style=&quot;font-size:16px&quot;&gt;B)INNA WARTOŚĆ SUMY ZBIEŻNYCH?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;GDY PISZĘ ZBIEŻNA MAM NA MYŚLI RÓWNA JAK I WIELKOKROTNA DANEJ LICZBIE. BO SAM ZAPIS LICZB TO ....&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size:16px&quot;&gt;&quot;POŁOWA SUKCESU PIERWSZEŃSTWA&quot;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import math

# Funkcja do sprawdzania, czy liczba jest pierwsza
def is_prime(num):
    if num &amp;lt; 2:
        return False
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            return False
    return True

# Funkcja do znajdowania unikalnych liczb
def find_convergence(n, m):
    results = set()

    for k in range(1, n + 1):
        first_value = n - k
        second_value = m - k
        
        if first_value &amp;gt; 0:
            results.add(first_value)
        if second_value &amp;gt; 0:
            results.add(second_value)

    additional_values = [2 * n + 1, 2 * m + 1]
    results.update(additional_values)

    return sorted(results)

# Funkcja do obliczania iloczynu liczb pierwszych
def prime_factors_product(num):
    factors = []
    for i in range(2, num + 1):
        while num % i == 0 and is_prime(i):
            factors.append(i)
            num //= i
    return factors

# Interaktywny interfejs użytkownika
def main():
    print(&quot;Sprawdź sumę par unikalnych liczb n i m oraz ich pierwszeństwo.&quot;)
    
    n = int(input(&quot;Podaj wartość n: &quot;))
    m = int(input(&quot;Podaj wartość m: &quot;))

    # Obliczanie sumy
    sum_nm = n + m

    if is_prime(sum_nm):
        print(f'Suma {n} + {m} = {sum_nm} jest liczbą pierwszą.')
        print(f'Iloczyn: 1 * {sum_nm}')
    else:
        factors = prime_factors_product(sum_nm)
        if factors:
            product = ' * '.join(map(str, factors))
            print(f'Suma {n} + {m} = {sum_nm} jest liczbą złożoną.')
            print(f'Iloczyn: {product}')
        else:
            print(f'Suma {n} + {m} = {sum_nm} jest liczbą złożoną, ale nie ma liczb pierwszych w iloczynie.')

if __name__ == &quot;__main__&quot;:
    main()&lt;/pre&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/595986/python-program-pierwszenstwo-sum-liczb</guid>
<pubDate>Mon, 23 Sep 2024 03:54:43 +0000</pubDate>
</item>
<item>
<title>Dobry praktyczny kurs z sieci neuronowych - Python</title>
<link>https://forum.pasja-informatyki.pl/595875/dobry-praktyczny-kurs-z-sieci-neuronowych-python</link>
<description>Czy ktoś przerabiał już jakieś kursy z sieci neuronowych w Pythonie na Udemy, a jeśli tak to możecie coś polecić? Szukam takiego, żeby miał dużo praktycznych ćwiczeń lub projektów</description>
<category>Offtop</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/595875/dobry-praktyczny-kurs-z-sieci-neuronowych-python</guid>
<pubDate>Tue, 10 Sep 2024 12:50:00 +0000</pubDate>
</item>
<item>
<title>Problem z tkinter.Canvas</title>
<link>https://forum.pasja-informatyki.pl/595792/problem-z-tkinter-canvas</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Chciałem zrobić przewijaną listę obrazów w tkinter, gdzie każdy obraz jest generowany ze strony pliku pdf. Obrazy ImageTk.PhotoImage ładuję na ttk.Label i później ten obiekt próbuję ładować na tk.Canvas.&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
    def __showPDFPreview(self) -&amp;gt; None:
        y: int = 0
        for page in self.__pdfHandler:
            photoLabel: ttk.Label = ttk.Label(self.__canvas, image=page)
            self.__canvas.create_window(100, y, window=photoLabel, anchor=&quot;nw&quot;)
            y += 150

        scroll: ttk.Scrollbar = ttk.Scrollbar(self.__canvas, orient=tk.VERTICAL, command=self.__canvas.yview)
        scroll.pack(side=tk.RIGHT, fill=tk.Y)
        self.__canvas.config(yscrollcommand=scroll.set, scrollregion=(0, 0, 0, y))&lt;/pre&gt;



&lt;p&gt;Sam plik pdfa odczytuję za pomocą biblioteki fitz, a konwersja na zdjęcie wygląda następująco:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
    def __convertPageToImage(self, item: int) -&amp;gt; ImageTk.PhotoImage:
        page: fitz.Page = self.__pdfObjShow.load_page(item)
        pix: fitz.Pixmap = page.get_pixmap()
        img: Image = Image.frombytes('RGB', (pix.width, pix.height), pix.samples)
        # img.show()

        return ImageTk.PhotoImage(img)&lt;/pre&gt;



&lt;p&gt;Jednak z jakiegoś powodu obrazy te nie pojawiają się na tk.Canvas. Obiekty ttk.Label znajdują się jako dzieci tk.Canvas ale obrazu brak.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/595792/problem-z-tkinter-canvas</guid>
<pubDate>Fri, 06 Sep 2024 10:39:21 +0000</pubDate>
</item>
<item>
<title>Zadanie Wycinek błąd w kodzie</title>
<link>https://forum.pasja-informatyki.pl/595710/zadanie-wycinek-blad-w-kodzie</link>
<description>

&lt;p&gt;Link do treści&amp;nbsp;zadania: &lt;a href=&quot;https://szkopul.edu.pl/problemset/problem/pAy3KzzMQ8Gh-LFsyL0tZts6/site/?key=statement&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://szkopul.edu.pl/problemset/problem/pAy3KzzMQ8Gh-LFsyL0tZts6/site/?key=statement&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Cześć, rozwiązuje zadanie Wycinek. Moim rozwiązaniem jest najpierw liczenie sum prefiksowych, potem zapisywanie kandydatów (liczb, które prefi[i]+s in prefi), a na końcu wybieram największa rożnice elementów prefi[i]+s - prefi[i].&amp;nbsp;Niestety nie mogę&amp;nbsp;wyłapać 2 błedów:&lt;/p&gt;



&lt;p&gt;Pierwszy&amp;nbsp;błąd polega na tym, że zamiast wypisywać BRAK, wypisuje mi liczbe całkowitą. Drugi błąd jest taki, że wynik jest większy niż powinien być.&amp;nbsp;Podejrzewam,&amp;nbsp; że chodzi o coś z sumami prefiksowymi.&lt;/p&gt;



&lt;p&gt;Mój kod w pythonie:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
n, s = map(int, input().split())
ciag = list(map(int, input().split()))
sum_pref = [0]
odp = 0
kandydaci = dict()
# liczenie sum prefiksowych
for i in range(n):
    sum_pref += [sum_pref[-1]+ciag[i]]

a = set(sum_pref) #Tworze seta, żeby było stałe wyszukiwanie sum_pref[i]+s w sumach pref.

# dodawanie kandydatów
for i in range(n):
    if sum_pref[i]+s in a:
        if sum_pref[i] not in kandydaci:
            kandydaci[sum_pref[i]] = i

# Szukanie najwiekszej róznicy sum_pref[i]-s - sum_pref[i]
odp = 0
for i in range(1, n+1):
    if sum_pref[i]-s in kandydaci:
        odp = max(odp, abs(i-kandydaci[sum_pref[i]-s]))

# Jeżeli odpowiedz jest rowna 0, to oznacza to, że nie ma żadnego takiego podciagu
if odp == 0:
    print('BRAK')
else:
    print(odp)&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/595710/zadanie-wycinek-blad-w-kodzie</guid>
<pubDate>Fri, 30 Aug 2024 15:16:16 +0000</pubDate>
</item>
<item>
<title>Jaki projekt zrobić?</title>
<link>https://forum.pasja-informatyki.pl/595649/jaki-projekt-zrobic</link>
<description>Siema, mam 13 lat i umiem Pythona i WWW (html + css + php + js). Jakieś porady co zrobić? Jakiś projekt czy coś? (Coś trudniejszego niż wisielec czy zgadnij liczbę xd)</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/595649/jaki-projekt-zrobic</guid>
<pubDate>Sat, 24 Aug 2024 23:47:56 +0000</pubDate>
</item>
<item>
<title>Django - problem z wysyłanie maila (zapomnienie hasła)</title>
<link>https://forum.pasja-informatyki.pl/595593/django-problem-z-wysylanie-maila-zapomnienie-hasla</link>
<description>

&lt;p&gt;Cześć, mam szybkie lecz od dłuższego czasu problematyczne pytanie.&lt;/p&gt;



&lt;p&gt;Piszę prostą apkę w Django i podczas wpisywania adresu e-mail do wysłania na pocztę wiadomość o resetowania hasła wyskakuje&amp;nbsp;mi następujący błąd:&amp;nbsp;&lt;/p&gt;



&lt;table&gt;
	

&lt;tbody&gt;
		

&lt;tr&gt;
			

&lt;th&gt;Exception Type:&lt;/th&gt;
			

&lt;td&gt;TypeError&lt;/td&gt;
		&lt;/tr&gt;
		

&lt;tr&gt;
			

&lt;th&gt;Exception Value:&lt;/th&gt;
			

&lt;td&gt;
			

&lt;pre&gt;
SMTP.starttls() got an unexpected keyword argument 'keyfile'&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Settings:&amp;nbsp;&lt;/p&gt;



&lt;pre&gt;
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'xxx'
EMAIL_HOST_PASSWORD = 'xxx'&lt;/pre&gt;



&lt;p&gt;urls.py&lt;/p&gt;



&lt;pre&gt;
path('reset_password/', auth_views.PasswordResetView.as_view(template_name=&quot;knowledge-zone/password_reset.html&quot;), name='reset_password'),
path('reset_password_sent/', auth_views.PasswordResetDoneView.as_view(template_name=&quot;knowledge-zone/password_reset_sent.html&quot;), name='password_reset_done'),
path('reset/&amp;lt;uidb64&amp;gt;/&amp;lt;token&amp;gt;/', auth_views.PasswordResetConfirmView.as_view(template_name=&quot;knowledge-zone/password_reset_form.html&quot;), name='password_reset_confirm'),
path('reset_password_complete/', auth_views.PasswordResetCompleteView.as_view(template_name=&quot;knowledge-zone/password_reset_done.html&quot;), name='password_reset_complete'),&lt;/pre&gt;



&lt;p&gt;co ciekawe apka już działa wcześniej(wysyłąnie maila również działało bez problemów) piszę ją jednak od nowa bazując na wcześniejszej wersji i w sumie nic nie zmieniłem znaczącego. Jedyne co zmieniłem to dodałem w urls.py oraz wygenerowałem nowe&amp;nbsp;EMAIL_HOST_PASSWORD = 'xxx' na tym samym mailu.&lt;/p&gt;



&lt;pre&gt;
app_name = 'xxx'&lt;/pre&gt;



&lt;p&gt;Jednak ten błąd (według mnie) nie wskazuje na to, że&amp;nbsp;to z tym jest problem aczkolwiek mogę się mylić. Bardzo proszę o pomoc. Z góry dziękuję.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/595593/django-problem-z-wysylanie-maila-zapomnienie-hasla</guid>
<pubDate>Mon, 19 Aug 2024 20:16:22 +0000</pubDate>
</item>
<item>
<title>Django edycja wpisu</title>
<link>https://forum.pasja-informatyki.pl/594708/django-edycja-wpisu</link>
<description>

&lt;p&gt;Witam&lt;/p&gt;



&lt;p&gt;Tworzę taką aplikację, gdzie w skrócie mówiąc dodaje się wpisy, usuwa je, edytuje itp., czyli taki podstawowy CRUD. Dodawanie i usuwanie wpisów działa dobrze, jednak problem pojawia się przy edytowaniu. Wpis zostaje zedytowany, ale stary wpis sprzed edycji też istnieje (czyli są 2 wpisy, a chciałbym tylko 1, po edycji). Czy ktoś może wie jak to naprawić?&lt;/p&gt;



&lt;p&gt;views.py - część pliku z funkcją do edycji wpisu:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
def entry_update(request, entry_id):
    entry = Entry.objects.get(id=entry_id)
    
    if request.method != 'POST':
        form = EntryForm(instance=entry)
    else:
        form = EntryForm(instance=entry, data=request.POST)
        if form.is_valid():
            form.save()
            return redirect('/')
        
    context = {&quot;form&quot;: form}
    return render(request, &quot;my_app/site.html&quot;, context)&lt;/pre&gt;



&lt;p&gt;urls.py w katalogu aplikacji:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
urlpatterns = [
    (...)
    path('entry/&amp;lt;int:entry_id&amp;gt;/update', views.entry_update, name='entry-update')
]&lt;/pre&gt;



&lt;p&gt;forms.py:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
from django import forms
from .models import *

class EntryForm(forms.ModelForm):

    class Meta:
        model = Entry
        fields = '__all__'&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/594708/django-edycja-wpisu</guid>
<pubDate>Tue, 18 Jun 2024 07:50:20 +0000</pubDate>
</item>
<item>
<title>Django TemplateDoesNotExist</title>
<link>https://forum.pasja-informatyki.pl/594403/django-templatedoesnotexist</link>
<description>

&lt;p&gt;Witam&lt;/p&gt;



&lt;p&gt;Mam szablon nadrzędny &lt;strong&gt;base.html&lt;/strong&gt; na poziomie katalogów powiedzmy &lt;strong&gt;projekt/aplikacja/&lt;/strong&gt;. Mam też plik &lt;strong&gt;index.html&lt;/strong&gt; na poziomie &lt;strong&gt;projekt/aplikacja/templates/aplikacja/&lt;/strong&gt;.&lt;/p&gt;



&lt;p&gt;Na samej górze w pliku &lt;strong&gt;index.html &lt;/strong&gt;mam wpis&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
{% extends &quot;aplikacja/base.html&quot; %}
&lt;/pre&gt;



&lt;p&gt;Gdy próbuję włączyć stronę główną wypisuje mi błąd&lt;/p&gt;



&lt;p&gt;&lt;em&gt;TemplateDoesNotExist at /&lt;/em&gt;&lt;/p&gt;



&lt;pre&gt;
&lt;em&gt;aplikacja/base.html&lt;/em&gt;&lt;/pre&gt;



&lt;p&gt;Jak można to naprawić? Przed zaaplikowaniem dziedziczenia z szablonu nadrzędnego wszystko działało dobrze.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/594403/django-templatedoesnotexist</guid>
<pubDate>Thu, 06 Jun 2024 08:01:49 +0000</pubDate>
</item>
<item>
<title>Skrypty administracyjne linux  - ruby czy python?</title>
<link>https://forum.pasja-informatyki.pl/594376/skrypty-administracyjne-linux-ruby-czy-python</link>
<description>Witam. Potrzebny mi język do pisania prostych programów do wykonywania zadań administracyjnych. Co polecacie? Python czy Ruby? Za Pythonem przemawia do mnie jego popularność, ta cała moda na AI i ML, w Ruby z kolei pisze mi się zdecydowanie przyjemniej i wolę Railsy od Django. Py/Rubiego i tak będę głównie używał do zadań administracyjnych i web devu.</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/594376/skrypty-administracyjne-linux-ruby-czy-python</guid>
<pubDate>Wed, 05 Jun 2024 00:44:09 +0000</pubDate>
</item>
<item>
<title>Przechwytywanie błędów .exe w Pythonie</title>
<link>https://forum.pasja-informatyki.pl/594072/przechwytywanie-bledow-exe-w-pythonie</link>
<description>

&lt;p&gt;Hej, piszę program testujący aplikacje c++, na podstawie danych wejściowych i odpowiadających danych wyjściowych. Problem polega na tym że nie mogę w żaden sposób przechwycić błędów rzucanych przez plik .exe aplikacji C++.&lt;/p&gt;



&lt;p&gt;Dla testów napisałem prosty kod w C++:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;

int main()
{
    throw std::out_of_range(&quot;&quot;);
}&lt;/pre&gt;



&lt;p&gt;Próbując uruchamiać testy za pomocą aplikacji w Pythonie,&amp;nbsp;wyskakuje mi okno:&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=2001150288631727284&quot; style=&quot;height:209px; width:387px&quot;&gt;&lt;/p&gt;



&lt;p&gt;Chciałbym żeby tego typu okna nie wyświetlały się podczas testów i żebym wiedział jakie błędy wystąpiły podczas runtime aplikacji C++.&lt;/p&gt;



&lt;p&gt;Kod w Pythonie który uruchamia .exe C++:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
@staticmethod
    def __suppressWindowsErrorDialogs():
        SEM_FAILCRITICALERRORS: hex = 0x0001
        SEM_NOGPFAULTERRORBOX: hex = 0x0002
        SEM_NOALIGNMENTFAULTEXCEPT: hex = 0x0004
        SEM_NOOPENFILEERRORBOX: hex = 0x8000

        # SetErrorMode function suppresses system error dialogs
        ctypes.windll.kernel32.SetErrorMode(
            SEM_FAILCRITICALERRORS |
            SEM_NOGPFAULTERRORBOX |
            SEM_NOALIGNMENTFAULTEXCEPT |
            SEM_NOOPENFILEERRORBOX
        )

    def __getProgramOutput(self, data: str, timeout: float = 30) -&amp;gt; str | Tuple[int, str]:
        try:
            self.__suppressWindowsErrorDialogs()
            startupinfo = subprocess.STARTUPINFO()
            startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
            creationflags = subprocess.CREATE_NO_WINDOW

            process: subprocess.Popen = subprocess.Popen([self.__exe_path],
                                                         stdout=subprocess.PIPE,
                                                         stderr=subprocess.PIPE,
                                                         stdin=subprocess.PIPE,
                                                         text=True,
                                                         startupinfo=startupinfo,
                                                         creationflags=creationflags)

            out: str
            err: str
            out, err = process.communicate(input=data, timeout=timeout)

            print(out)
            print(err)

        except PermissionError as e:
            return PERMISSION_DENIED, e.filename
        except subprocess.TimeoutExpired as e:
            return f'TIMEOUT {e}'
        except subprocess.CalledProcessError as e:
            return f'{e.returncode}, {e.output}'

        input()
        # return result.stdout&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/594072/przechwytywanie-bledow-exe-w-pythonie</guid>
<pubDate>Fri, 24 May 2024 20:12:15 +0000</pubDate>
</item>
<item>
<title>Zmienne globalne ale w Pythonie</title>
<link>https://forum.pasja-informatyki.pl/594060/zmienne-globalne-ale-w-pythonie</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;uczę się Pythona po tym jak już znam C++. W C++ można było tworzyć zmienne globalne - zmienne dostępne w każdym fragmencie kodu. Czasem się przydawało. Czy w Pythonie też jest coś takiego? Próbuję użyć zmiennej utworzonej przed funkcją wewnątrz tej funkcji, ale nie zawsze działa.&lt;/p&gt;



&lt;p&gt;Przykład (swoją drogą: kto normalny zlicza liczby parzyste rekurencyjnie):&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
liczby=[1,5,6,3,8,7,9,6,4,5,2,3,0]
licznik=0
def ileParzystych(i):
    if i&amp;gt;=len(liczby):
        return licznik
    if liczby[i]%2==0:
        licznik+=1
        ileParzystych(i+1)
print(ileParzystych(0))&lt;/pre&gt;



&lt;p&gt;PyCharm podkreśla mi oba wywołania zmiennej licznik jako błąd, a wyświetla mi w odpowiedzi None.&lt;/p&gt;



&lt;p&gt;Z góry dzięki&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/594060/zmienne-globalne-ale-w-pythonie</guid>
<pubDate>Fri, 24 May 2024 13:44:35 +0000</pubDate>
</item>
<item>
<title>nauka pythona</title>
<link>https://forum.pasja-informatyki.pl/593772/nauka-pythona</link>
<description>Witam, własnie zacząłem uczyć sie pythona. poleci mi ktoś &amp;nbsp;coś co mi pomoże w nauce</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593772/nauka-pythona</guid>
<pubDate>Wed, 15 May 2024 15:57:25 +0000</pubDate>
</item>
<item>
<title>MVC obiektowy projekt bota Python</title>
<link>https://forum.pasja-informatyki.pl/593750/mvc-obiektowy-projekt-bota-python</link>
<description>

&lt;p&gt;Witam serdecznie&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Staram się prawidłowo uporządkować program w modelu mvc bota który łączy się z api metatrader i będzie handlował na giełdzie... taki jest pomysł&amp;nbsp; w praktyce jest sporo komplikacji gdyż wiele zmiennych i danych robi bałagan w kodzie , muszę go uporządkować . Nigdy nie pisałem wzorca mvc więc pytanie do Was czy prawidłowo to interpretuje:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drzewo plików -&lt;/p&gt;



&lt;p&gt;model&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&amp;nbsp; Config.py&lt;/p&gt;



&lt;p&gt;view&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&amp;nbsp; index.py&lt;/p&gt;



&lt;p&gt;controller&lt;/p&gt;



&lt;p&gt;&amp;nbsp; Controller.py&lt;/p&gt;



&lt;p&gt;joker.py&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;odpalam plik joker.py&amp;nbsp; tworzy się klasa controller&amp;nbsp;&amp;nbsp; która pobiera dane z modelu w tym przypadku info do logowania z Config.py i przekazuje do widoku&amp;nbsp; index.py&amp;nbsp;&amp;nbsp;&amp;nbsp; oczywiście modeli , kontrolerów i widoków będzie dużo chwilowo chodzi o poprawny mechanizm żeby dobrze zacząć &lt;img alt=&quot;smiley&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/regular_smile.png&quot; style=&quot;height:23px; width:23px&quot; title=&quot;smiley&quot;&gt;&lt;/p&gt;



&lt;p&gt;kod Config.py&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
class Config:
  
  login = 8686786  
  password = &quot;bleble&quot;
  server = 'bleble'&lt;/pre&gt;



&lt;p&gt;index.py&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import MetaTrader5 as mt5


def show_data(data):

    mt5.initialize()
    mt5.login(data[0], data[1], data[2])

    account_info = mt5.account_info()
    print(account_info.margin_free)


    mt5.shutdown()
&lt;/pre&gt;



&lt;p&gt;Controller.py&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
from model.Config import Config
from view.index import show_data

class Controller:
    
    @staticmethod
    def getData():

        configData = Config()
        data = [configData.login, configData.password, configData.server]
        
         # Przekazanie danych do funkcji show_data w pliku index.py
        show_data(data)
        &lt;/pre&gt;



&lt;p&gt;joker.py&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
from controller.Controller import Controller


controller = Controller()
run = controller.getData()
&lt;/pre&gt;



&lt;p&gt;ogólnie chciałem to pisać w php ale Python ma biblioteki maszynowego uczenia&amp;nbsp; które chce spróbować wykorzystać&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593750/mvc-obiektowy-projekt-bota-python</guid>
<pubDate>Wed, 15 May 2024 07:19:59 +0000</pubDate>
</item>
<item>
<title>Ramka z szarymi napisami w pythonie tkinter</title>
<link>https://forum.pasja-informatyki.pl/593430/ramka-z-szarymi-napisami-w-pythonie-tkinter</link>
<description>

&lt;p&gt;Mam pytanko da się w pythonie zrobić taki&amp;nbsp;szary napis w entry jak np. w facebooku bo to fajnie wygląda i nie trzeba ramek robić. I tak żeby to działało że wpisuje coś to znika ten szary napis a jak skasuję jest znowu.&lt;/p&gt;



&lt;p&gt;Szukałem czegoś takiego na yt ale nie było.&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=2104479594271404248&quot; style=&quot;height:577px; width:600px&quot;&gt;&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593430/ramka-z-szarymi-napisami-w-pythonie-tkinter</guid>
<pubDate>Tue, 30 Apr 2024 21:22:29 +0000</pubDate>
</item>
<item>
<title>ai w pythonie</title>
<link>https://forum.pasja-informatyki.pl/593405/ai-w-pythonie</link>
<description>Jak zrobić w pythonie ai takie żeby je trenować i jak wpisze : Cześć jestem kamil się jak się nazywasz&lt;br /&gt;
&lt;br /&gt;
to odpisze mi np : Czesc Jestem chatgpt w czym ci pomóc&lt;br /&gt;
&lt;br /&gt;
i żeby z każdą wypowiedzią i odpowiedzią się uczył bardziej.&lt;br /&gt;
&lt;br /&gt;
szukałem coś o ai ale to było jakieś dziadostwo z wykrywaniem twarzy tylko.</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593405/ai-w-pythonie</guid>
<pubDate>Mon, 29 Apr 2024 16:00:42 +0000</pubDate>
</item>
<item>
<title>Jak zrobić rozciągany widget tkinter?</title>
<link>https://forum.pasja-informatyki.pl/593380/jak-zrobic-rozciagany-widget-tkinter</link>
<description>

&lt;p&gt;Jak Zrobić W pythonie na jakimś widgecie w tkinter taką kontrolkę że można edytować kształt widgetu bo pomimo pytania o to chata gpt nie za bardzo wiem jak to zrobić. jak na ttk czy tk I czy inne widgety będą się wtedy też przesuwały (bo fajnie jakby się dostosowywało jakoś żeby okno było ok)?&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=3143693940272975411&quot; style=&quot;height:337px; width:600px&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=15103749931072122362&quot; style=&quot;height:330px; width:600px&quot;&gt;&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593380/jak-zrobic-rozciagany-widget-tkinter</guid>
<pubDate>Sun, 28 Apr 2024 12:41:37 +0000</pubDate>
</item>
<item>
<title>Najdłuższe/najkrótsze działanie algorytmu</title>
<link>https://forum.pasja-informatyki.pl/593337/najdluzsze-najkrotsze-dzialanie-algorytmu</link>
<description>

&lt;p&gt;Witam, mam podać przykładowe dane dla których algorytm zapisany w pythonie będzie działał najdłużej i najkrócej. Na początku myślałem że jeśli wszystkie dane będą równe R to kod będzie działał najdłużej(np: R=10,n=5,r=[10,10,10,10,10]) a dla danych mniejszych od R najkrócej (np R=10, n=5,r=[5,4,3,2,1]) ale zauważyłem że w drugim przypadku pętla nie potrzebnie wykonuje operacje ponieważ wszystkie dane w r zostały już sprawdzone i już zgłupiałem i nie wiem czy nie powinno być na odwrót.&lt;/p&gt;



&lt;p&gt;Dodatkowo nie mogę zmodyfikować algorytmu gdyż mam właśnie na jego podstawie wykonać prezentację.&lt;/p&gt;



&lt;p&gt;Opis algorytmu:&lt;/p&gt;



&lt;p&gt;Załóżmy, że mamy dowolnie dużą liczbę pudełek, każde o rozmiarze&amp;nbsp;&lt;em&gt;R&lt;/em&gt;, oraz&amp;nbsp;&lt;em&gt;n&lt;/em&gt;&amp;nbsp;przedmiotów o rozmiarach&amp;nbsp;r[1],r[2],…r[n][1],[2],…[]. Zakładamy, że&amp;nbsp;R≥r[1]≥r[2]…≥r[n]≥[1]≥[2]…≥[].&lt;/p&gt;



&lt;p&gt;Mamy włożyć przedmioty do pudełek, co najwyżej dwa do jednego pudełka.&lt;/p&gt;



&lt;p&gt;Algorytm:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
wynik := n;
for i := 1 to n do 
  if (i  &amp;lt;  wynik and r[i]+r[wynik] &amp;lt;= R) 
    wynik := wynik-1;&lt;/pre&gt;



&lt;p&gt;Kod:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
R=10
n=5
r=[5,4,4,3,2]


wynik=n
for i in range(n):
    if(i&amp;lt;wynik-1 and r[i]+r[wynik-1] &amp;lt;= R):
        wynik=wynik-1
print(wynik)
&lt;/pre&gt;



&lt;p&gt;Nie wiem czy czasami nie ma &quot;najszybszych/najdłuższych&quot; danych ponieważ długość działania pętli jest uzależniona przez n więc dla jakich kolwiek r[n] algorytm będzie się wykonywał n razy&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593337/najdluzsze-najkrotsze-dzialanie-algorytmu</guid>
<pubDate>Thu, 25 Apr 2024 13:36:43 +0000</pubDate>
</item>
<item>
<title>Triangulacja Delaunay’a algorytmem Bowyera-Watsona</title>
<link>https://forum.pasja-informatyki.pl/593290/triangulacja-delaunaya-algorytmem-bowyera-watsona</link>
<description>

&lt;p&gt;Napisałam funkcję wykonującą algorytm triangulacji Delaunay'a metodą Bowyera-Watsona. Funkcja tworzenie_trojkata tworzy mi super trojkat i dziala poprawnie (zwraca super trojkat i jego boki), a funkcja plik wczytuje mi z pliku punkty i zwraca je. Funkcja if_inside zwraca True gdy gdy dany punkt znajduje się w okregu opisanym na danym trojkacie i Flase w przeciwnym wypadku, a funkcja wizualizacja_trojkata wizualizuje mi trojkat za pomoca matplotlib. No i korzystam z klasy trojkat zawierajacej trzy elementy, czyli punkty A, B i C. Co jest nie tak z moją funkcją poniżej, że nie wykonuje tego algorytmu poprawnie tylko tworzy mi za duzo przecinajacych sie linii?&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
def create():
    triangle, bok1, bok2, bok3 = tworzenie_trojkata()
    punkty = plik()
    triangles = []
    t1 = trojkat(punkty[0], triangle.A, triangle.B)
    t2 = trojkat(punkty[0], triangle.A, triangle.C)
    t3 = trojkat(punkty[0], triangle.B, triangle.C)
    punkty.pop(0)
    print(punkty)
    triangles.append(t1)
    triangles.append(t2)
    triangles.append(t3)
    for i in range(len(punkty)-1):
        triangles_to_remove = []
        triangles_to_add = []
        for tr in triangles:
            if(if_inside(tr, punkty[i]) == True):
                triangles_to_add.append(trojkat(punkty[i], tr.A, tr.B))
                triangles_to_add.append(trojkat(punkty[i], tr.A, tr.C))
                triangles_to_add.append(trojkat(punkty[i], tr.B, tr.C))
                triangles_to_remove.append(tr)

        for t in triangles_to_remove:
            triangles.remove(t)
        for t in triangles_to_add:
            triangles.append(t)
    for t in triangles:
        if(t.A == triangle.A or t.A == triangle.B or t.A == triangle.C
                or t.B == triangle.A or t.B == triangle.B or t.B == triangle.C
                or t.C == triangle.A or t.C == triangle.B or t.C == triangle.C):
            triangles.remove(t)

    for t in triangles:
        wizualizacja_trojkata(t)
    plt.show()&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593290/triangulacja-delaunaya-algorytmem-bowyera-watsona</guid>
<pubDate>Tue, 23 Apr 2024 17:31:44 +0000</pubDate>
</item>
<item>
<title>Złożoność obliczeniowa algorytmy</title>
<link>https://forum.pasja-informatyki.pl/593041/zlozonosc-obliczeniowa-algorytmy</link>
<description>

&lt;p&gt;Witam, mógłby mi ktoś pomóc określić złożoność obliczeniową algorytmu i wytłumaczyć dlaczego tak?&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
wynik := n;​

 for i := 1 to n do​

   if (i &amp;lt; wynik and r[i]+r[wynik] &amp;lt;= R)​

    wynik := wynik-1;​

​&lt;/pre&gt;



&lt;p&gt;​&lt;/p&gt;



&lt;p&gt;​&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/593041/zlozonosc-obliczeniowa-algorytmy</guid>
<pubDate>Tue, 16 Apr 2024 22:43:52 +0000</pubDate>
</item>
<item>
<title>Kompilowanie paru plików do jednego pliku w pythonie</title>
<link>https://forum.pasja-informatyki.pl/592855/kompilowanie-paru-plikow-do-jednego-pliku-w-pythonie</link>
<description>Jak w pythonie skompilować plik exe tak żeby dodać do niego pliki i był tylko 1 plik exe a wszelkie zdjęcia , filmy , foldery będą skompilowane razem z exe?&lt;br /&gt;
&lt;br /&gt;
Próbowałem zrobić to z auto_py_to_exe ale był błąd.</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/592855/kompilowanie-paru-plikow-do-jednego-pliku-w-pythonie</guid>
<pubDate>Fri, 12 Apr 2024 20:47:18 +0000</pubDate>
</item>
<item>
<title>lista dysków w pythonie</title>
<link>https://forum.pasja-informatyki.pl/592833/lista-dyskow-w-pythonie</link>
<description>Mam Pytanie Jak Zrobić Listę Dysków W Pythonie D:/ C:/ Ale Bez Pendrivów I Wirualnych Dysków Jak Np. Google Drive?</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/592833/lista-dyskow-w-pythonie</guid>
<pubDate>Fri, 12 Apr 2024 19:09:30 +0000</pubDate>
</item>
<item>
<title>Wyłącznie Komputera Bez Cmd W Pythonie</title>
<link>https://forum.pasja-informatyki.pl/592774/wylacznie-komputera-bez-cmd-w-pythonie</link>
<description>

&lt;p&gt;Potrzebuje Kodu Który By Wyłączał Komputer Bez Pokazywania Okna Cmd Jak W Tym Przypadku:&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import os
SEKUNDY = 15
Komenda = (f&quot;shutdown -s -t {SEKUNDY}&quot;)
os.system(Komenda)
&lt;/pre&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/592774/wylacznie-komputera-bez-cmd-w-pythonie</guid>
<pubDate>Wed, 10 Apr 2024 21:17:03 +0000</pubDate>
</item>
<item>
<title>Django - zlecenie code review dużego komercyjnego projektu.</title>
<link>https://forum.pasja-informatyki.pl/592639/django-zlecenie-code-review-duzego-komercyjnego-projektu</link>
<description>Witam,&lt;br /&gt;
&lt;br /&gt;
od ponad pół roku pracuję prywatnie nad sporym projektem Django (dla uproszczenia można przyjąć, że będzie to rozbudowany zaawansowany blog). Piszę z zapytaniem do kogo mógłbym się zwrócić (firma, organizacja, osoba prywatna) o dokonanie code review mojego projektu. Chodzi przede wszystkim o sprawdzenie zabezpieczeń (np. przed atakami CSRF, SQL injection, itd.), prawidłowe i bezpieczne przechowywanie danych, sprawdzenie wszystkich funkcjonalność, ewentualnie przyśpieszenie, naprawa błędów oraz ewentualną pomoc w dostosowaniu kodu do wdrożenia. Oczywiście wszystko odpłatnie. Po dokonaniu researchu trafiłem tylko na zagraniczne firmy, które liczą sobie za to nawet kilkanaście tysięcy. To dla mnie zdecydowanie za dużo. Bardzo proszę o pomoc. Pozdrawiam.</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/592639/django-zlecenie-code-review-duzego-komercyjnego-projektu</guid>
<pubDate>Sun, 07 Apr 2024 18:30:28 +0000</pubDate>
</item>
<item>
<title>Obsługa wyjątków + logger - Python</title>
<link>https://forum.pasja-informatyki.pl/592262/obsluga-wyjatkow-logger-python</link>
<description>

&lt;p&gt;Hej!
&lt;br&gt;
Walczę z logowaniem zdarzeń, próbowałem różnych opcji ale zostałem na podstawowej:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
logger = logging.getLogger(__name__)
logging.basicConfig(filename='error.log', filemode='w', format='%(asctime)s %(filename)s %(funcName)s %(message)s',
                    datefmt='%m/%d/%Y %I:%M %p', encoding='utf-8', level=logging.DEBUG)&lt;/pre&gt;



&lt;p&gt;
&lt;br&gt;
Fragment przykładowego kodu:&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
def funkcja_jeden():
    if 0 == funkcja_dwa():
        print('OK')
        
def funkcja_dwa():
    try:
        # jakaś runkcja
        return 0
    except Exception as e:
        logger.error(e)
        return 1
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Jak w tym przykładzie uzyskać efekt taki, że w przypadku wyjątku (funkcja_dwa), wykona się logowanie &quot;logger.error()&quot; oraz funkcja zwróci &quot;1&quot;&amp;nbsp; (do funkcja_jeden) a program będzie dalej działać normalnie.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/592262/obsluga-wyjatkow-logger-python</guid>
<pubDate>Tue, 19 Mar 2024 13:01:31 +0000</pubDate>
</item>
<item>
<title>Logika mechanizmu wykrywania konsolidacji cenowej</title>
<link>https://forum.pasja-informatyki.pl/592092/logika-mechanizmu-wykrywania-konsolidacji-cenowej</link>
<description>

&lt;p&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;Piszę program w Pythonie i szukam sposobu na wykrywanie konsolidacji oraz moment wyjścia z niej&lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;.&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;Przykładowo cena bawełny od kilku miesięcy wacha się w granicach od &lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#afcaa1; color:#b5cea8&quot;&gt;80&lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;$ &lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#c688c1; color:#c586c0&quot;&gt;do&lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#afcaa1; color:#b5cea8&quot;&gt;90&lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;$ czyli jest w konsolidacji,&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;i teraz jakim algorytmem program mógłby wychwycić moment kiedy cena przebija dolną lub górną barierę cenową czyli np&lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#afcaa1; color:#b5cea8&quot;&gt;92&lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;$ ? &lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;kombinowałem z K-means ale nie dawało prawidłowych rezultatów, teraz myślę nad standard deviation, jednak nie wiem jak logikę zrobić&lt;/span&gt;&lt;span style=&quot;--darkreader-inline-color:#cdc8c2; color:#d4d4d4&quot;&gt;.&lt;/span&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import numpy

cotton = [80,82,84,85,86,88,90,87,85,86,84,83,85,87] # 1 cena wstecz 
cotton2 = [80,82,84,85,86,88,90,87,85,86,84,83,85,87,90,92,93] # wstecz plus aktualna

x = numpy.std(cotton)
x2 = numpy.std(cotton2)

print(x)
print(x2)
&lt;/pre&gt;



&lt;p&gt;A może trzeba kombinować inaczej.... tylko jak&amp;nbsp; przydałoby się coś co by wyłapało ceny które są blisko siebie minimum przez miesiąc czyli ich odchylenie od średniej jest podobne i nagle się zwiększa&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/592092/logika-mechanizmu-wykrywania-konsolidacji-cenowej</guid>
<pubDate>Wed, 13 Mar 2024 08:05:46 +0000</pubDate>
</item>
<item>
<title>Uczenie maszynowe - wykresy do danych</title>
<link>https://forum.pasja-informatyki.pl/591939/uczenie-maszynowe-wykresy-do-danych</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Jestem nowicjuszem w zagadnieniu uczenia maszynowego, i tym samym mam pytanie dotyczące wykresów. Mam zbiór danych z &lt;a href=&quot;https://archive.ics.uci.edu/dataset/17/breast+cancer+wisconsin+diagnostic&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://archive.ics.uci.edu/dataset/17/breast+cancer+wisconsin+diagnostic&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Plik zawiera zestaw próbek, który jest opisany jako:&lt;/p&gt;



&lt;ol&gt;
	

&lt;li&gt;ID number&lt;/li&gt;
	

&lt;li&gt;Diagnosis (M = malignant, B = benign)&lt;/li&gt;
	

&lt;li&gt;radius (mean of distances from center to points on the perimeter)&lt;/li&gt;
	

&lt;li&gt;texture (standard deviation of gray-scale values)&lt;/li&gt;
	

&lt;li&gt;perimeter&lt;/li&gt;
	

&lt;li&gt;area&lt;/li&gt;
	

&lt;li&gt;smoothness (local variation in radius lengths)&lt;/li&gt;
	

&lt;li&gt;compactness (perimeter^2 / area - 1.0)&lt;/li&gt;
	

&lt;li&gt;concavity (severity of concave portions of the contour)&lt;/li&gt;
	

&lt;li&gt;concave points (number of concave portions of the contour)&lt;/li&gt;
	

&lt;li&gt;symmetry&lt;/li&gt;
	

&lt;li&gt;fractal dimension (&quot;coastline approximation&quot; - 1)&lt;/li&gt;
&lt;/ol&gt;



&lt;p&gt;W pliku występują dwie grupy/klasy B (357 próbek) oraz M (212 próbek). Wykonałem analizę EDA (sprawdzenie czy w zbiorze nie ma brakujących danych, obliczenia: średniej odchylenia standardowego, kwartyli, medianę, wartości maksymalne i minimalne).&lt;/p&gt;



&lt;p&gt;Mam takie zadanie: &lt;strong&gt;Zrobić wykresy dla trzech wybranych zmiennych (tam gdzie się da wykres liniowy, histogram, pudełkowy).&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Wybrać zmienne to nie problem. Jednak nie wiem do których zmiennych jaki można utworzyć wykres.&lt;/p&gt;



&lt;p&gt;Na razie wygenerowałem dwa wykresy:&lt;/p&gt;



&lt;ol&gt;
	

&lt;li&gt;Pudełkowy - do pkt.3 radius&lt;/li&gt;
	

&lt;li&gt;Histogram - do pkt.4 texture&lt;/li&gt;
&lt;/ol&gt;



&lt;p&gt;Czy dobrze dobrałem wykres do zmiennych? Czy do którejś zmiennej można wygenerować wykres liniowy?&lt;/p&gt;



&lt;p&gt;Z góry&amp;nbsp; dziękuję i bardzo proszę o pomoc.&lt;/p&gt;</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/591939/uczenie-maszynowe-wykresy-do-danych</guid>
<pubDate>Wed, 06 Mar 2024 11:44:58 +0000</pubDate>
</item>
<item>
<title>Python Selenium KRZ</title>
<link>https://forum.pasja-informatyki.pl/591933/python-selenium-krz</link>
<description>Cześć,&lt;br /&gt;
Próbuję wejść na stronę KRZ: &lt;a href=&quot;https://krz.ms.gov.pl/#!/application/KRZPortalPUB/1.9/KrzRejPubGui.WyszukiwaniePodmiotow?params=JTdCJTdE&amp;amp;itemId=item-2&amp;amp;seq=0&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://krz.ms.gov.pl/#!/application/KRZPortalPUB/1.9/KrzRejPubGui.WyszukiwaniePodmiotow?params=JTdCJTdE&amp;amp;itemId=item-2&amp;amp;seq=0&lt;/a&gt;&lt;br /&gt;
i wejść w zakładkę na górze &amp;quot;Osoba fizyczna nieprowadząca działalności gospodarczej&amp;quot;. Nie mogę już wejść w tą zakładkę.&lt;br /&gt;
Nawet jak zrobiłem time.sleep(30).&lt;br /&gt;
Ktoś mam pomysł jak mogę się dostać do tej zakładki?</description>
<category>Python</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/591933/python-selenium-krz</guid>
<pubDate>Wed, 06 Mar 2024 08:06:52 +0000</pubDate>
</item>
<item>
<title>NZEC w &quot;Spacje&quot; - SPOJ</title>
<link>https://forum.pasja-informatyki.pl/591736/nzec-w-spacje-spoj</link>
<description>

&lt;p&gt;Hej, od razu zaznaczę że jestem początkujący w temacie programowania. Mam problem z zadaniem &quot;Spacje&quot; na spoju. Według mnie mój program działa poprawnie jednak sędzia wyrzuca mi NZEC. Czy jest coś nie tak z moim kodem? Z góry dzięki za odpowiedzi&amp;nbsp;&lt;img alt=&quot;wink&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/wink_smile.png&quot; title=&quot;wink&quot;&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
while True:
    a = input()
    a = a.split()
    #print(a)

    changed = []
    changed.append(a[0])
    for i in a[1:]:
        if ord(i[0]) &amp;lt; 97:
            changed.append(i)
        else:
            b = ord(i[0])-32
            c = chr(b)
            i = i.replace(i[0],c, 1)
            changed.append(i)

    changed = ''.join(changed)

    print(changed)&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/591736/nzec-w-spacje-spoj</guid>
<pubDate>Wed, 28 Feb 2024 11:10:17 +0000</pubDate>
</item>
</channel>
</rss>