Kezdőoldal » Számítástechnika » Programozás » Mit rontottam el a Python-ban?

Mit rontottam el a Python-ban?

Figyelt kérdés

1. sor: answer = input("Do you want us to proceed? ")

2. sor: print("Great to hear that!") if answer == "Yes" or "yes" else print("Thank you for playing.")


Ez kétsorban van, cska ide nem tudom most úgy bemásolni.

Miért adja mindig azt, hogy "Great to hear that!"?



2021. ápr. 23. 00:32
 1/10 anonim ***** válasza:
100%

Mert nincs egyenlőség vizsgálat a második feltételnél, így az mindig igaz lesz (igaz lesz mert "yes" az string, és nem boolean false)



if answer == "Yes" or answer == "yes"

2021. ápr. 23. 00:38
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:

De ott string-ként várom el, hogy yes-t írjon a csávó.


Ha pedig nem akarja folytatni akkor pl Nope.

2021. ápr. 23. 00:49
 3/10 anonim ***** válasza:
100%

#1-es jól írta. Két feltételt írtál 'vagy' kapcsolatban:

answer == "Yes" or

"yes"


Ebből a "yes" mindig igaz lesz. Úgy írd, ahogy #1-es írta, és akkor így néz ki:

answer == "Yes" or

answer == "yes"

2021. ápr. 23. 01:34
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:
100%

Vagy egy kicsit leegyszerűsítve:

answer.lower() == "yes"

2021. ápr. 23. 01:51
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
100%
#4, Egyébként igen, de inkább tanulja meg, hogy a logikai kifejezések hogy működnek. Egyszer muszáj megértenie, erre jók ezek az egyszerű példák.
2021. ápr. 23. 02:00
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:

Oké. És hogy értitek, hogy a válasz mindig "yes" lesz? Mármint az "or" után?

Miért fogja fel mindig yes-nek a Python?


Köszi egyébként a válaszokat.

2021. ápr. 23. 13:14
 7/10 anonim ***** válasza:

#6: Mert a karakterlánc logikai értékké alakítva True, vagyis igaz.


Itt egy szemléltető példa:

[link]

2021. ápr. 23. 13:59
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
100%

Az OR-al és AND-el feltételeket választasz el nem pedig lehetségesen elfogadott értékeket, ezt értetted félre amikor írtad az IFet.


változó == "Yes" egy feltétel

OR

változó == "yes" a másik feltétel


a te kérdésednél kb így fut le:


változó == "Yes" - visszaad mondjuk false-t, nem igaz, nézi kövi feltételt


OR


"yes" - mindig igaz, mert ez csak egy nem üres karakterlánc, tehát nem false, hanem true

2021. ápr. 23. 14:13
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:

A logikai műveletek hasonlóak a sima összeadáshoz vagy szorzáshoz, stb. Például:

a * x + b * x

A szorzást kell előbb elvégezni, és utána az összeadást: (a*x) + (b*x)

A logikai kifejezés kiértékelése is hasonló:

x == 1 or y == 2

Először megnézi az egyenlőségeket, ezek eredménye egy-egy logikai érték lesz, például:

x == 1 : hamis

y == 2 : igaz

Utána jön a vagy kapcsolat: hamis vagy igaz.


Ehelyett ilyesmit írtál be:

x == 1 or 2

Ebből ez lesz: igaz or 2, márpedig a nem nulla jellegű értékek (pl. nem üres string) igaznak számítanak, vagyis: hamis vagy igaz. Ennek az értéke pedig: igaz.


hamis vagy hamis = hamis

hamis vagy igaz = igaz

igaz vagy hamis = igaz

igaz vagy igaz = igaz

2021. ápr. 23. 17:36
Hasznos számodra ez a válasz?
 10/10 zozo256 ***** válasza:
Még annyi, hogy ne használj ternery operator-t ilyenkor. Sima if-else bekezdéses szerkezetet szép ilyenkor. Igazából ez az egész sor egy None-t ad vissza, és ennek csak a mellékterméke az, hogy kiprinteli neked azt amit kell. Működik de nem elegáns.
2021. ápr. 26. 21:10
Hasznos számodra ez a válasz?

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!