17 svar
129 visningar
destiny99 behöver inte mer hjälp
destiny99 8305
Postad: 26 okt 2024 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?

Smutstvätt 25398 – Moderator
Postad: 26 okt 2024 19:46

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 8305
Postad: 26 okt 2024 20:10 Redigerad: 26 okt 2024 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?

Smutstvätt 25398 – Moderator
Postad: 26 okt 2024 20:17

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 8305
Postad: 26 okt 2024 20:19 Redigerad: 26 okt 2024 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 😅

Smutstvätt 25398 – Moderator
Postad: 26 okt 2024 21:12

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 8305
Postad: 26 okt 2024 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?

Smutstvätt 25398 – Moderator
Postad: 26 okt 2024 21:32

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 Online 1283 – Livehjälpare
Postad: 26 okt 2024 22:08 Redigerad: 26 okt 2024 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 8305
Postad: 26 okt 2024 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?

Smutstvätt 25398 – Moderator
Postad: 26 okt 2024 22:59

'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 8305
Postad: 26 okt 2024 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 25398 – Moderator
Postad: 26 okt 2024 23:31 Redigerad: 26 okt 2024 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 8305
Postad: 27 okt 2024 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

Smutstvätt 25398 – Moderator
Postad: 27 okt 2024 10:07

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 8305
Postad: 27 okt 2024 10:26 Redigerad: 27 okt 2024 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 Online 1283 – Livehjälpare
Postad: 27 okt 2024 10:58 Redigerad: 27 okt 2024 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 8305
Postad: 27 okt 2024 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