Új hozzászólás Aktív témák
-
kovisoft
őstag
válasz
V.Stryker
#2206
üzenetére
Alapesetben egy adott elemeket tartalmazó listát létre tudunk hozni úgy, hogy szögletes zárójelek között felsoroljuk az elemeket (pl. [1,3,5,7]). De ezt nem mindig tudjuk vagy akarjuk megtenni. Sokszor adódik olyan helyzet, hogy a listát egy másik listából szeretnénk valamilyen szabály alkalmazásával legyártani. Ilyenkor írnunk kell egy ciklust, ami végigmegy az eredeti listán, és annak minden elemét (amely egy adott feltételt teljesít) behelyettesíti egy kifejezésbe, és az így kapott elemekből jön létre az új lista.
Például kiindulhatunk egy range(n)-ből, és a négyzetszámok listáját előállíthatjuk úgy, hogy mindegyik elemet négyzetre emeljük. Vagy a prímszámok listáját előállíthatjuk úgy, hogy kihagyjuk azokat, amelyeknek van valódi osztója, stb.
A List Comprehension azt teszi lehetővé, hogy a fenti ciklust behelyezzük a szögletes zárójelek közé, mindezt egy nagyon tömör és világos formában. Tehát ahelyett, hogy egyenként felsorolnánk az elemeket, megadjuk azt a szabályt amiből és amivel fel kell tölteni a létrehozandó listát. Ez a szabály áll egy kifejezésből: ezt kell alkalmazni minden szóbajöhető elemre, áll egy for ciklusból valamilyen ciklusváltozóval, ami végigmegy egy listán, és opcionálisan egy if feltételből, amivel szűrni lehet az elemek között:
[expression(i) for i in iterable if condition]ami azt jelenti, hogy menj végig az iterable objektum elemein az i ciklusváltozóval, és ha teljesül az adott i-re a condition feltétel, akkor helyettesítsd be az i-t az expression kifejezésbe, így hozz létre egy új listát.
Példa: 1-re végződő négyzetszámok:
[i*i for i in range(100) if (i*i)%10 == 1] -
Siriusb
veterán
válasz
V.Stryker
#2170
üzenetére
Próbáld meg innen kimásolni, itt olyan bajos a programkód beillesztés: https://pastebin.com/FFzscZrm
Ha a string elé egy ilyen "f" megjelölést teszel, a stringen belül "{}" jelek közt változókat tudsz behelyettesíteni.
Érdemes lenne esetleg time objektumot használni, ha már pontosabb időt akarsz: https://docs.python.org/3.7/library/time.html
-
Siriusb
veterán
válasz
V.Stryker
#2168
üzenetére
Ez legyen a legbonyolultabb hiba, amit elkövetsz!
Játszásiból kicsit felturbóztam a példát. 
Mivel az ember a lustaságáról ismerszik meg, az aktuális időpontból kiszedjük az órát, aztán egy ciklusban addig nyomjuk a delikvens óra alá a kérdést, amíg egész számot nem méltóztatik beírni, ezt a try-ban ellenőrizzük.
Legvégül kiíratjuk az időpontot, attól függően, mennyire álomszuszék a válaszoló.import time
while True:
most = time.localtime().tm_hour
alvas = Nonewhile type(alvas) is not int:
alvas = input('----------------\nJean, keltsen fel ennyi óra múltán: ')
try:
alvas = int(alvas)
except:
print('Egész számot írj be, süsü!')napok = alvas//24
orak = alvas%24
if napok == 0:
print(f'Önt Jean, a hű komornyik {(most+orak)%24} órakor fogja kelteni egy forró kávéval.')
else:
print(f'Szia Csipkerózsika!\nJean szólt a hét törpének, hogy {napok} nap múlva '
f'{(most+orak)%24} órakor rúgjanak ki az ágyból!') -
Siriusb
veterán
válasz
V.Stryker
#2149
üzenetére
Szia!
Gondolom ott is van terminál, szóval pl.:pip listKiírja a verziót, s hogy milyen csomagok vannak telepítve.
Szerk.: ha arra vagy kíváncsi, sérült-e a telepített állomány, azt passzolom.
Esetleg ez: https://pip.pypa.io/en/stable/reference/pip_check/
-
válasz
V.Stryker
#1966
üzenetére
Ja, valami fura MAC-es encodingja van a fájlnak. UTF-8-at kell használni, avgy megadni az encodingot ilyen formában:
# coding=<encoding name>Ennek a sornak a fájl első vagy második sorában kell lenni.
Második sorban akkor, ha az első sor a parancsértelmezőt tartalmazza, pl:#!/usr/bin/python
# coding: <encoding name> -
Siriusb
veterán
válasz
V.Stryker
#1960
üzenetére
Shift+Enter
Szerk.:
Egy nagyon felszínes bemutató, de talán érdemes átfutni: https://www.jetbrains.com/help/pycharm/quick-start-guide.html -
-
EQMontoya
veterán
-
válasz
V.Stryker
#206
üzenetére
- Bekéred a változókat (váltási arány, vátás iránya, hány számot jelenítsen meg (n) a sorozatból, melyik legyen az első eleme (m), mi legyen a növekmény (q))
- legenerálod a forrás tömböt
- megcsinálod a váltást
- kiiratodAddig jáccottam, míg meg nem csináltam szép csicsásra

m = int(input("Start number of the range:"))
n = int(input("Count of range numbers:"))
q = float(input("Base of the range:"))
conv_rate = float(input("Conversion Rate:"))
conv_dir = int(input("Conversion (0* - EUR to CAD, 1 - CAD to EUR):"))
nm = range(m, m+n)
source = [pow(q,i) for i in nm]
dest = [i*conv_rate for i in source]
conv_s = '+ {0:^10} {2} {1:^10} +'
val_pack = {}
if conv_dir != 1:
conv_s = conv_s.format('EUR', 'CAD', '==>')
val_pack = zip(source, dest)
else:
conv_s = conv_s.format('EUR', 'CAD', '<==')
val_pack = zip(dest, source)
print ('+{0:-<13}+{0:-<13}+'.format('-'))
print (conv_s)
print ('+{0:-<13}+{0:-<13}+'.format('-'))
for (eur, cad) in val_pack:
print ('| {0:>10.2f} | {1:>10.2f} |'.format(eur, cad))
pass
print ('+{0:-<13}+{0:-<13}+'.format('-'))
Új hozzászólás Aktív témák
- Nem lesz Redmi Note 16, évet ugrik a sorozat
- exHWSW - Értünk mindenhez IS
- Motorola Edge 50 Ultra - szépen kifaragták
- Először beszélt bővebben az új Xbox konzolról a Microsoft
- Párduc a gépben: teszten az ASUS ExpertBook Ultra
- Idő előtt felbukkant a Galaxy A57 egy európai webshopban
- Konzolokról KULTURÁLT módon
- Xbox Series X|S
- Facebook és Messenger
- OpenMediaVault
- További aktív témák...
- LG 45GR65DC-B 45 / 5120x1440 / 200HZ / VA /
- Chieftec Smart Seriels GPS-500A8 80 Plus minősítésű 500W tápegység
- Apple iPhone 13 - 85% Akku - 128GB - Független - Hibátlan
- HONOR Magic8 Lite 5G 512GB + CHOICE Cubuds - Gyári Bontatlan, 2028-ig garanciális
- HONOR Magic8 Pro 5G 12/512GB (Black) - Új, Kártyafüggetlen, 2029-ig garanciális
- Samsung Galaxy A20e / 3/32GB / Kártyafüggetlen / 12Hó Garancia
- iPhone X 64Gb akku 100%
- Prémium iPhone 15 Pro Max 256 GB tárhellyel, 100%-os akkumulátorral (5 ciklus) és 6 hónap garival
- BESZÁMÍTÁS! Asus PRIME H510M i5 11400 16GB DDR4 512GB SSD RX 6600 8GB Rampage SHIVA Adata 600W
- REFURBISHED - DELL Docking Station WD19, WD19S + 130W, 180W töltővel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



