Új hozzászólás Aktív témák
-
Torry
addikt
Sziasztok!
Segítsetek kérlek, szeretném értelmezhető formába hozni a facebook beszélgetéseimet.
Amit találtam:
[link] - Ezzel a tool-al rendbejön a facebook karakterkódolási hibája, [link] ez pedig gyönyörűen megjeleníti.
A probléma ott lenne, hogy egybites vagyok bármilyen programozáshoz, így látszólag a python script megcsinálja amit szeretnék mivel run module esetén látom a végeredményt, de nem írja felül az eredeti JSON file-t.
Hogyan tudnám elérni, hogy a lefutott script lementse amit csinált egy új JSON-ba vagy akár írja felül az eredetit?Óriásiköszi,
P -
magortaltos
csendes tag
A (#3286) hozzászólásomba feltett kihívás, azaz átírás pythonba. Érdekes, hogy senki nem meri vállalni, talán nehézséget jelent a nyelvnek..., ?
-
sztanozs
veterán
válasz magortaltos #3286 üzenetére
Próbáld meg leírni, kb mit csinál ez a kis program? A pascalt mindig rühelltem...
Ez valami kígyószerű játék lenne?JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
No, nem annyira nehéz, csak meg kellett találni a megfelelő modult (meg, hogy windows-on is működjön).
from os import system
from sys import platform
from pynput import keyboard
from pynput.keyboard import Key
def print_at_x(y, x, text):
print(f"\033[{y};{x}H{text}")
def print_at_w(r, c, s):
h = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
windll.kernel32.SetConsoleCursorPosition(h, COORD(c, r))
prev_codepage = windll.kernel32.GetConsoleOutputCP()
windll.kernel32.SetConsoleOutputCP(65001)
c = s.encode("UTF-8")
windll.kernel32.WriteConsoleA(h, c_char_p(c), len(c), None, None)
windll.kernel32.SetConsoleOutputCP(prev_codepage)
if platform == "linux" or platform == "linux2":
# linux
system('clear')
print_at = print_at_x
elif platform == "darwin":
# MacOS, talán működik itt is
system('clear')
print_at = print_at_x
elif platform == "win32":
# Windows...
from ctypes import *
class COORD(Structure):
pass
STD_OUTPUT_HANDLE = -11
COORD._fields_ = [("X", c_short), ("Y", c_short)]
system('cls')
print_at = print_at_w
print_at(3, 15, 'Próbálj bent maradni a négyzetben!')
for n in range(5,50):
print_at(5, n, '*')
print_at(20, n, '*')
for n in range(5,20):
print_at(n, 5, '*')
print_at(n, 50, '*')
x, y = 25, 7
print_at(y, x, 'O')
def on_press(key):
global x, y
if key == keyboard.Key.esc:
return False
elif key == Key.up:
dx, dy = 0, -1
elif key == Key.left:
dx, dy = -1, 0
elif key == Key.down:
dx, dy = 0, 1
elif key == Key.right:
dx, dy = 1, 0
else:
return
print_at(y, x, ' ')
x, y = x + dx, y + dy
print_at(y, x, 'O')
if not (5 < x < 50) or not (5 < y < 20):
return False
with keyboard.Listener(on_press=on_press) as listener:
try:
listener.join()
finally:
listener.stop()
print_at(20, 55, 'A játéknak vége !')JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
magortaltos
csendes tag
Aztaaaa.... Tudsz! Egy hét alatt nem szedtem volna össze...
De ezt írta a fordító:
File "maradj a négyzetben.py", line 7
print(f"\033[{y};{x}H{text}")
^
SyntaxError: invalid syntax
A fordítás meghiúsult.(Ha elcsúszna a bejegyzésben, akkor a ^ a sor utolsó " jelére mutat)
-
sztanozs
veterán
válasz magortaltos #3305 üzenetére
Ugye python 3.6+ vagy annál magasabb van python 2.x-re más nem érdemes fejleszteni.
Parancssorban a következő visszaadja a verziószámot:
python --versionilletve ha van egymás mellett 2.x és 3.x verzió, akkor
python3 --versionAmúgy oktatni szerintem pygame-mel élvezetesebb (ha van grafikus felület is, nem csak terminal).
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
kovisoft
őstag
válasz magortaltos #3305 üzenetére
Ha python 2.x-et használsz, akkor próbáld meg így:
print("\033[%d;%dH%s" % (y, x, text))
-
magortaltos
csendes tag
válasz sztanozs #3306 üzenetére
Valóban. Van a gépemen 2.7.18 és 3.8.10 egyaránt.
Csak a Geany -t nem tudom rávenni, hogy a 3 -as verziót használja. Az lenne a legjobb.Sajnos az iskolába kénytelenek vagyunk Win alatt VSCode -ot használni (amikor tanítjuk majd). Én meg Linuxos vagyok maradok a Geany-nál...
[ Szerkesztve ]
-
sztanozs
veterán
válasz sztanozs #3306 üzenetére
pygame tutorial - kezdésnek:
import pygame
pygame.init()
win = pygame.display.set_mode((500,500))
pygame.display.set_caption("Első játékom")
x = 50
y = 50
width = 40
height = 60
vel = 5
run = True
while run:
pygame.time.delay(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= vel
if keys[pygame.K_RIGHT]:
x += vel
if keys[pygame.K_UP]:
y -= vel
if keys[pygame.K_DOWN]:
y += vel
win.fill((0,0,0)) # Fills the screen with black
pygame.draw.rect(win, (255,0,0), (x, y, width, height))
pygame.display.update()
pygame.quit()JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz magortaltos #3308 üzenetére
indítsd a következő módon:
python3 programneve.py
vagy
python3.8 programneve.pyDe szerintem itt a válasz a Geany-s kérdésre:
https://askubuntu.com/a/976670[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
magortaltos
csendes tag
válasz sztanozs #3304 üzenetére
Sikerült! Köszönöm nagyon jó!
Két probléma van ezzel az első programmal.
1. A lenyomott kurzormozgató gombok kódját is kiírja a képernyőre
2. A pascalban a keypressed nem állítja meg a programot, csak megnézi, hogy volt-e billentyű leütés (true/false). Így lehet olyan játékot csinálni, ami folyamatosan megy, akkor is ha nem nyomsz gombot. Jelen esetben ha nem nyomod meg időben az ellenkező irányú nyilat akkor az O betű magától a falnak megy. Ettől ügyességi a játék. -
sztanozs
veterán
válasz magortaltos #3312 üzenetére
Itt van non-blocking módban is:
from os import system
from sys import platform
from pynput import keyboard
from pynput.keyboard import Key
from time import sleep
def print_at_x(y, x, text):
print(f"\033[{y};{x}H{text}")
def print_at_w(r, c, s):
h = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
windll.kernel32.SetConsoleCursorPosition(h, COORD(c, r))
prev_codepage = windll.kernel32.GetConsoleOutputCP()
windll.kernel32.SetConsoleOutputCP(65001)
c = s.encode("UTF-8")
windll.kernel32.WriteConsoleA(h, c_char_p(c), len(c), None, None)
windll.kernel32.SetConsoleOutputCP(prev_codepage)
def on_press(key):
global dx, dy, run
if key == keyboard.Key.esc:
run = False
return run
elif key == Key.up:
dx, dy = 0, -1
elif key == Key.left:
dx, dy = -1, 0
elif key == Key.down:
dx, dy = 0, 1
elif key == Key.right:
dx, dy = 1, 0
else:
return
if platform == "linux" or platform == "linux2":
# linux
system('clear')
print_at = print_at_x
elif platform == "darwin":
# MacOS, talán működik itt is
system('clear')
print_at = print_at_x
elif platform == "win32":
# Windows...
from ctypes import *
class COORD(Structure):
pass
STD_OUTPUT_HANDLE = -11
COORD._fields_ = [("X", c_short), ("Y", c_short)]
system('cls')
print_at = print_at_w
print_at(3, 15, 'Próbálj bent maradni a négyzetben!')
for n in range(5,50):
print_at(5, n, '*')
print_at(20, n, '*')
for n in range(5,20):
print_at(n, 5, '*')
print_at(n, 50, '*')
x, y = 25, 7
dx, dy = 0, 0
run = True
print_at(y, x, 'O')
listener = keyboard.Listener(on_press=on_press, suppress=True)
listener.start()
while run:
print_at(y, x, ' ')
x, y = x + dx, y + dy
print_at(y, x, 'O')
if not (5 < x < 50) or not (5 < y < 20):
run = False
sleep(0.1)
print_at(20, 55, 'A játéknak vége !')[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
magortaltos
csendes tag
Ez igen! Le a kalappal!
-
sonar
addikt
11 Malicious PyPI Python Libraries Caught Stealing Discord Tokens and Installing Shells
(Számomra) Nem túl ismertek ezek a packagek, de ha valaki használja akkor olvassa el a linkelt cikket.
importantpackage / important-package
pptest
ipboards
owlmoon
DiscordSafety
trrfab
10Cent10 / 10Cent11
yandex-yt
yiffpartyA tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
anorche1
őstag
Sziasztok!
Python -nal szeretnék Jira -n automatizálni.
Pythont még soha nem használtam. pip install jira -val felraktam a jira -s libet, visual studio code -ban pedig a python kieget.
Az lenne a gondom, hogy pl. comment objektum után írok egy . -ot (pontot), majd ctrl+space, akkor nem irja ki, hogy ennek az objektumnak milyen mezői, metódusai vannak. Visual studioban nem is tudom futtatni a kodot, cmd -ben kell python jira.py -kent meghivni, ugy tokeletesen mukodik.Hogyan tudom visual studio code -dal is ezt megetettni, hogy hasznalja a jira -s libet?
Vagy milyen mas DE -t ajanlotok helyette?"It never gets easier, you just go faster." Greg LeMond
-
sztanozs
veterán
válasz anorche1 #3317 üzenetére
1) próbáld újraindítani a VSC-t
2) nézd meg hogy be van-e állítva a környezet (jobb alsó sarokban Python 3.x.x kell legyen)
3) nézd meg, jól rakta-e fel a csomagot (ha van python2 és python3 is telepítve, akkor pip3 install kell, nem pip install)
4) az import jira sor bekerült a kód elejére?
5) ugye nem jira.py a file neve, mert azzal rendesen összezavarod a csomagkezelőtpy fájl futtatása VSC-ből: Shift+Ctrl+D (Debug/Run menü - negyedik a sorban, baloldalt)
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz böng ész ő #3320 üzenetére
Curses-hez kell grafikus felület, tisztán konzolból (pl ssh) nem működik.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Gyuri27
félisten
Üdv urak.
Kellene egy kis segitség (nyilván).
Adott két lista.
Mindkét listában "kombinációk" szerepelnek.
Az egyik lista X1-11. A másik Y1-11.
(igazából mindegy mi a két lista. Magára az elvre, megoldásra vagyok kiváncsi).
Szóval a két lista elemeit össze kellene "vonni" (összeadni, szorozni).
És kiiratni minden variációt.
Nagyon az elején járok a dolognak. Szóval ha lehetne minél egyszerübben.Majd amikor ez kész. Minden variácihóz random generáljon egy 3 betüs nevet.
Az abc első 9 betüjéből.De persze ez nem elég mert a végén a következőképpen adja vissza az eredményt: 3 betű pl AAA- és utána a kombinációkból származó számokat: pl AAA-111
És ez még mindig nem elég. Ha kiadja az X11Y11 kombinációt oda azt irja helyes a megoldás.
Előre is elnézést mindenkitől.
Ha kérhetném privitba (bár itt se baj).
És némi magyarázat se lenne rossz. Ne csak maga a kód. Mert abból nem tudom mit miért.Amd - Radeon - Ryzen
-
sztanozs
veterán
válasz Gyuri27 #3323 üzenetére
print(*[muvelet(x,y) for x in X_1_11 for y in Y_1_11])
Végig kell iterálni a két listát és minden elemen keresztül kell vágni. Ez gyakorlatilag két egymásba ágyazott ciklus, csak python list-expression formában.a muvalat meg valami ilyesmi:def muvelet(x,y):
import random
nev = ''.join(chr(random.randbetween(ord('A'),ord('Z')) for _ in range(3))
return nev+str(x*y)Bocsi mobilról írtam az egészet…
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
cousin333
addikt
válasz böng ész ő #3330 üzenetére
A choices esetén ismétlődhetnek az elemek, a sample esetén nem:
x = [1, 2, 3, 4, 5]
sample: az 1 kihúzásának esélye 20, 25, 33, 50, 100 százalék minden egyes húzás után
choices: az 1 kihúzásának esélye 20, 20, 20, 20, 20 százalék minden egyes húzás után[ Szerkesztve ]
"We spared no expense"
-
Gyuri27
félisten
válasz cousin333 #3328 üzenetére
import random
hfeherje = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9', 'H10', 'H11', 'H12', 'H13', 'H14', 'H15', 'H16']
nfeherje = ['N1', 'N2', 'N3', 'N4', 'N5', 'N6', 'N7', 'N8', 'N9']
variansok = [x + y for x in hfeherje for y in nfeherje]
print(variansok)
print("H1N1:" "Madárinfluenza")nevek = ['C', 'O', 'V', 'I', 'D', 'S', 'A', 'R', 'S']
nev = ''
for i in range(3):
nev += random.choice(nevek)feherjevarians = (random.choice(variansok))
feherjevarians = [(random.choice(variansok))]elnevezés = (""+random.choice(nevek)+""+random.choice(feherjevarians))
print("fehérjevariáns:", feherjevarians, "elnevezés:", elnevezés)
A végeredmény:
fehérjevariáns: ['H13N9'] elnevezés: SH13N9
A fehérje variánsban nem zavar az aposztrof és a zárójel, bár nem kellene oda.
A gond az elnevezés. Mert ott 3 betünek kellene lenni (random) de egy van. És a HxNx variánsokból (ahol az x szám) csak a szám kellene.
Azaz 3 random betű AAA és a random szám 106 = AAA106
Remélem nem bonyolitottam túl.
Na erre kellene valami full fapad megoldás.Amd - Radeon - Ryzen
-
cousin333
addikt
válasz Gyuri27 #3332 üzenetére
Először megcsináltad ezt:
nevek = ['C', 'O', 'V', 'I', 'D', 'S', 'A', 'R', 'S']
nev = ''
for i in range(3):
nev += random.choice(nevek)
Ezután viszont nem használtad a nev változót, hanem újra random.choice-oztál
Mivel a sztring is iterálható, ezért a fenti részt így írnám inkább:
nevek = 'COVIDSARS'
nev = ''.join(random.choices(nevek, k=3)
Azért kapsz aposztrófot, meg zárójelet, mert az egy 1 elemű lista, teljesen feleslegesen. Szóval de, egy kicsit túlbonyolítottad.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz Gyuri27 #3332 üzenetére
Én valahogy így oldanám meg a feladatot:
import random
import itertools
hfeherje = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9', 'H10', 'H11', 'H12', 'H13', 'H14', 'H15', 'H16']
nfeherje = ['N1', 'N2', 'N3', 'N4', 'N5', 'N6', 'N7', 'N8', 'N9']
variansok = itertools.product(hfeherje, nfeherje)
nevek = 'COVIDSARS'
elnevezesek = [''.join(random.choices(nevek, k=3) + list(varians)) for varians in variansok]
for elnevezes in elnevesek:
print(elnevezes)
Ez a kód létrehozza az összes lehetséges H és N fehérje kombinációt, és mindegyik elé beszúr random 3 betűt a nevek sztringből, majd egymás után kiírja őket.
[ Szerkesztve ]
"We spared no expense"
-
Gyuri27
félisten
válasz cousin333 #3336 üzenetére
Traceback (most recent call last):
File "C:/Users/Gyuri/PycharmProjects/pythonProject/házi.py", line 10, in <module>
elnevezesek = [''.join(random.choices(nevek, k=3) + varians) for varians in variansok]
File "C:/Users/Gyuri/PycharmProjects/pythonProject/házi.py", line 10, in <listcomp>
elnevezesek = [''.join(random.choices(nevek, k=3) + varians) for varians in variansok]
TypeError: can only concatenate list (not "tuple") to listValami nem kerek.
[ Szerkesztve ]
Amd - Radeon - Ryzen
-
Gyuri27
félisten
válasz cousin333 #3340 üzenetére
Igen lefut.
A gond az, hogy előbb simán nem fut le az össze variáns. Ha nézed nálam lefut a feladat is kéri.
"Készítsünk Python alkalmazást, ami egy vírus lehetséges összes fehérje mutációját kiírja.
(Pl: H1N1, H1N2….), a H1N1 törzset nevezzük "Madárinfluenzának"."A másik gond, hogy most valóban kombinálja a 3 betüt meg a variánsokat.
De: a kiiratás nálam azért az mert ez van kérve.
"A többit nevezzük el őket oly módon, hogy a COVID és a SARS betűkből
véletlen szerűen választunk 3-at, és mögé fűzzük a fehérje kombináció
számát, és írjuk ki. (Pl: COR-11, ARC-92….. )"
"Kiíratási minta:
fehérjevariáns: H1N1 elnevezés: Madárinfluenza
fehérjevariáns: H1N2 elnevezés: VIO-12"
Az hogy lefusson az összes kombináció elég hamar megtákoltam.
Csak ugye nem ez a feladat (miért is ez lenne mikor lehet sokkal bonyolultabb is).Amd - Radeon - Ryzen
-
cousin333
addikt
válasz Gyuri27 #3341 üzenetére
Az eddig felfogott feladatra itt a megoldásom. Házi feladat: megérteni, hogy működik...
import random
import itertools
import string
hfeherje = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'H7', 'H8', 'H9', 'H10', 'H11', 'H12', 'H13', 'H14', 'H15', 'H16']
nfeherje = ['N1', 'N2', 'N3', 'N4', 'N5', 'N6', 'N7', 'N8', 'N9']
nevek = 'COVIDSAR'
elnevezettek = {'H1N1': 'Madárinfluenza'}
for var in itertools.product(hfeherje, nfeherje):
varians = ''.join(var)
betukod = ''.join(random.choices(nevek, k=3))
szamkod = ''.join(filter(lambda x: x in string.digits, varians))
elnevezes = elnevezettek.get(varians, f'{betukod}-{szamkod}')
print(f'fehérjevariáns: {varians}, elnevezés: {elnevezes}')
[ Szerkesztve ]
"We spared no expense"
-
Gyuri27
félisten
-
Gyuri27
félisten
válasz Netszemete #3344 üzenetére
Ez nem az én megoldásom sajnos. Itt még messze nem tartok.
De ezt írtam is.Amd - Radeon - Ryzen
-
Siriusb
veterán
válasz Netszemete #3346 üzenetére
Már pár hónapja nem megy ez a billentyű kombináció. Rászoktam, hogy a nyitva lévő fájloknál a fájl nevére kattintva a helyzetérzékeny menüből indítom.
-
őstag
válasz Netszemete #3348 üzenetére
Main függvényed van? Nekem a Shift+F10 (nem tudom, mit csinált a Ctrl előtte) nem változott meg, ugyanúgy megy, bár shebangot nem rakok Python scriptek elejére.
Rock and stone, to the bone! Leave no dwarf behind!
Új hozzászólás Aktív témák
- Filmgyűjtés
- Kerékpárosok, bringások ide!
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Készülőben a Xiaomi 2021-es csúcsmodelljeinek HyperOS frissítése
- exHWSW - Értünk mindenhez IS
- DIGI Mobil
- Autós topik
- OTP Bank topic
- DIGI internet
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...