Kezdőoldal » Számítástechnika » Programozás » Mi a baj ezzel a kóddal?...

Mi a baj ezzel a kóddal? Python 3.10

Figyelt kérdés

def Code():

x = input('Codeing: ')

b = len(x)

global c

c = 1

for c in b:

x.replace('a','@')

x.replace('A','@')

x.replace('h','#')

x.replace('H', '#')

c = c + 1

print(x)

a = input('C/D: ')

if a == 'C':

print(Code())



2022. ápr. 8. 21:05
1 2
 1/11 anonim ***** válasza:
for nem jó, amúgy a replacenek nem is kell, alapból iterál magától.
2022. ápr. 8. 21:37
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
Semmi értelme
2022. ápr. 8. 21:39
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
38%

Példa egy megvalósításra (persze, lehet sokféleképpen, szebben, hatékonyabban, de a kérdésben szereplő kódhoz igazítottam a megoldást):

[link]


Pár dolog:

1. Az indentálások - amik a Pythonban fontosak - megőrzése érdekében a kód megosztásánál használj kódmegosztó oldalt (például a mutatott pastebin)


2. Használj egyértelmű függvény- és változóneveket (az a, b, x, c nem az)


3. A függvények és változók nevénél használj kisbetűket és a szavak elválasztásánál alulvonást (_) - ez a javasolt kódolási stílus.


4. A karakterláncban cserére használatos str.replace() függvény ( [link] ) a teljes szövegben cserél, nem csak egy karaktert

2022. ápr. 8. 22:53
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:

Vagy - az előzőt folytatva - ha "klasszikus módon", a karakterlánc betűin akarsz végigiterálni, akkor:

[link]

2022. ápr. 9. 01:31
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:
100%

A kérdésben leírt kód egyszerűen hulladék. Tényleg, nem alázni akarlak vagy bármi, de soronként több hiba van benne kb.


1. "Codeing" - Ez egy értelmetlen szó.

2. Sztringen nem így iterálunk. A string eleve iterable, nem úgy mint az integer a te példádban (for c in b, ahol b = len(x)). De amúgy is hulladék.

3. Ha végig gondoltad volna, hogy mit csinál a for loop-od, rájöhettél volna, hogy teljesen értelmetlen. Minden ciklusban ugyan azon a stringen (x) hajtod végre ugyan azt a műveletet.... minek? Nem gondolod, hogy egyszer is elég? Miért nem tudod, hogy a .replace() a teljes stringen cserél?

4. Ha nem egybetűs változóneveket használtál volna, rájöhettél volna, hogy értelmetlen az algoritmusod.

5. Áruld már el, hogy mégis mi a francnak kellett global c? Nemcsak, hogy antipattern, ebben az esetben teljesen értelmetlen, mert csak a függvényben hozod létre és használod a c változót.


Komolyan mondom, ha egy 5 éves gyerekkel elbeszélgetek, jobban el tudja mondani lépésről lépésre, hogy hogyan kellene kinéznie az algoritmusnak.

2022. ápr. 9. 23:53
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

text = str(input("Enter the text"))

text = text.split('a')

a = '@'

text = a.join(text)

text = text.split('A')

A = '@'

text = a.join(text)

text = text.split('h')

h = '#'

text = a.join(text)

text = text.split('H')

H = '#'

text = a.join(text)

print(text)


Nem muszály minden szimbólumnál kiirkálni, hogy a = '@' ... Úgy is elég írni, hogy text = '@'.join(text)

Ezt aztán meg már alakíthatod úgy ahogy szeretnéd, teheted functionba vagy amit akarsz.

2022. ápr. 17. 18:14
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:
#6: Atyaúristen, ez mi akar lenni?
2022. ápr. 17. 19:31
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

#6 vagyok

Opsz! Másolás után kicsit átírogattam a betűket, de a join-nál elfelejtettem.

text = str(input("Enter the text"))

text = text.split('a')

a = '@'

text = a.join(text)

text = text.split('A')

A = '@'

text = A.join(text)

text = text.split('h')

h = '#'

text = h.join(text)

text = text.split('H')

H = '#'

text = H.join(text)

print(text)

Így már tökéletes 😁


input: Atyaúristen, ez mi akar lenni? Habrakahabra

output: @ty@úristen, ez mi @k@r lenni? #@br@k@#@br@

2022. ápr. 17. 21:48
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
"tökéletes"
2022. ápr. 17. 22:19
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:
mert nem az?
2022. ápr. 18. 07:22
Hasznos számodra ez a válasz?
1 2

További kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!