17 svar
99 visningar
destiny99 behöver inte mer hjälp
destiny99 Online 7905
Postad: 26 okt 19:14

Vilket är ett uttryck?

Varför är inte A)  ett uttryck? I facit valde de C) men vad gör den till rätt svar?

De andra svaren innehåller/utgör sk. statements, vilket uttryck är en delmängd av, men många statements är inte utryck. Ett statement är en handling eller ett kommando, medan ett uttryck är något som bär ett värde. 

Uttryck i Python innehåller bara identifierare, litteraler och aritmetiska och/eller booleska operatorer. Print-funktionen är inte ett uttryck, dock är det ett statement. :)

destiny99 Online 7905
Postad: 26 okt 20:10 Redigerad: 26 okt 20:15
Smutstvätt skrev:

De andra svaren innehåller/utgör sk. statements, vilket uttryck är en delmängd av, men många statements är inte utryck. Ett statement är en handling eller ett kommando, medan ett uttryck är något som bär ett värde. 

Uttryck i Python innehåller bara identifierare, litteraler och aritmetiska och/eller booleska operatorer. Print-funktionen är inte ett uttryck, dock är det ett statement. :)

Okej så tex x="5" är uttryck i python och logiska operatorer som a or b or not c också är uttryck men inte statement?

Jag tror inte att så kallade assignment statements, alltså "x =" räknas som uttryck, däremot är "5" ett uttryck. Men, jag är osäker, så ta detta med en rejäl nypa salt. 

destiny99 Online 7905
Postad: 26 okt 20:19 Redigerad: 26 okt 20:20
Smutstvätt skrev:

Jag tror inte att så kallade assignment statements, alltså "x =" räknas som uttryck, däremot är "5" ett uttryck. Men, jag är osäker, så ta detta med en rejäl nypa salt. 

Aa okej, men jag tänkte på din sista mening i #2 där du sa att "ett uttryck är något som bär ett värde" och då tänkte jag tex x="5" eller x=5 där värdet är "5" eller 5. Haha jag är också osäker 😅

Anledningen till varför jag inte tror att det räknas är för att just "x =" inte håller i ett värde. Det är ju först på nästa kodrad, som x faktiskt har ett värde vi kan arbeta med. :)

destiny99 Online 7905
Postad: 26 okt 21:28
Smutstvätt skrev:

Anledningen till varför jag inte tror att det räknas är för att just "x =" inte håller i ett värde. Det är ju först på nästa kodrad, som x faktiskt har ett värde vi kan arbeta med. :)

vilken nästa kodrad som x faktiskt har ett värde vi jobbar med? Du menar tex värdet 5?

Ursäkta, jag tänkte mer hypotetiskt, att om vi i ett kodstycke definierar på rad fyra att x har värdet 5, då är det ju inte förrän efter att vi gjort denna definition, som x faktiskt har värdet 5 (nästa kodrad, eller i alla fall nästa kommando). 

5 är definitivt ett uttryck, och x (om det har ett värde som redan är definierat) borde också kunna utgöra ett uttryck, men just tilldelningen (av värdet 5 till x) tror jag inte är ett uttryck, utan bara ett "vanligt" statement.

Men kommer det någon annan här i tråden och säger emot, så byter jag genast uppfattning. 😅

sictransit 1070 – Livehjälpare
Postad: 26 okt 22:08 Redigerad: 26 okt 22:09

Uttryck är sådant som python kan evaluera och returnerar ett värde, som ’x’, ’x==5’ eller ’calc_prime(42)’. 

’x=5’ är en sats, precis som A/B/D i uppgiften. Det händer något, men du kan inte skriva ’print(… vad som är i A …). 

destiny99 Online 7905
Postad: 26 okt 22:29
sictransit skrev:

Uttryck är sådant som python kan evaluera och returnerar ett värde, som ’x’, ’x==5’ eller ’calc_prime(42)’. 

’x=5’ är en sats, precis som A/B/D i uppgiften. Det händer något, men du kan inte skriva ’print(… vad som är i A …). 

Så 'x' , x==5 och x=5 är uttryck?

'x' ja, 'x==5' ja, men 'x=5' nej. sictransit:s test är smart – kan du skriva in det i en printsats och köra koden? 

print(x) #skriver ut värdet av x (om x är definierat)

print(x==5) #skriver ut true eller false, beroende på om x har värdet 5 eller inte

men print(x=5) fungerar inte.

destiny99 Online 7905
Postad: 26 okt 23:04
Smutstvätt skrev:

'x' ja, 'x==5' ja, men 'x=5' nej. sictransit:s test är smart – kan du skriva in det i en printsats och köra koden? 

print(x) #skriver ut värdet av x (om x är definierat)

print(x==5) #skriver ut true eller false, beroende på om x har värdet 5 eller inte

men print(x=5) fungerar inte.

GPT säger detta om uttryck och ger dessa exempel:

Smutstvätt Online 25061 – Moderator
Postad: 26 okt 23:31 Redigerad: 26 okt 23:31

Och ChatGPT har rätt här – alla dessa har värden, och skulle kunna stoppas in ett print-statement. 

Skillnaden är att det är två lika med-tecken, dvs. den logiska operatorn "=", inte tilldelningsoperatorn "=". 

'x==5' är ett uttryck, då det bär värdet true eller false (beroende på vilket värde x har, men 'x=5' bär inget värde, utan är en operation som gör att x hädanefter i koden bär värdet 5. 

destiny99 Online 7905
Postad: 27 okt 08:47
Smutstvätt skrev:

Och ChatGPT har rätt här – alla dessa har värden, och skulle kunna stoppas in ett print-statement. 

Skillnaden är att det är två lika med-tecken, dvs. den logiska operatorn "=", inte tilldelningsoperatorn "=". 

'x==5' är ett uttryck, då det bär värdet true eller false (beroende på vilket värde x har, men 'x=5' bär inget värde, utan är en operation som gör att x hädanefter i koden bär värdet 5. 

Aa okej då är jag med. Det är därför C) är rätt för den består bara av booeliska och logiska uttryck

Japp! När det endast finns med litteraler, identifierare och booleska eller aritmetiska operationer, då är det ett uttryck. C innehåller identifierare samt booleska operationer. :)

destiny99 Online 7905
Postad: 27 okt 10:26 Redigerad: 27 okt 10:26
Smutstvätt skrev:

Japp! När det endast finns med litteraler, identifierare och booleska eller aritmetiska operationer, då är det ett uttryck. C innehåller identifierare samt booleska operationer. :)

Oh one more thing.. vad innebär litteraler samt identifierare? 

sictransit 1070 – Livehjälpare
Postad: 27 okt 10:58 Redigerad: 27 okt 10:59
destiny99 skrev:

Oh one more thing.. vad innebär litteraler samt identifierare? 

Identifierare är namn på saker, som exempelvis variabler, klasser, funktioner. 

Litteraler är värden i din kod, som exempelvis 42, "kaka" eller True.

I 'x=42' är x en identifierare och 42 en litteral. (Likhetstecknet är en operator.)

destiny99 Online 7905
Postad: 27 okt 11:05
sictransit skrev:
destiny99 skrev:

Oh one more thing.. vad innebär litteraler samt identifierare? 

Identifierare är namn på saker, som exempelvis variabler, klasser, funktioner. 

Litteraler är värden i din kod, som exempelvis 42, "kaka" eller True.

I 'x=42' är x en identifierare och 42 en litteral. (Likhetstecknet är en operator.)

Super tack så mycket. 

Svara
Close