17 svar
196 visningar
villsovaa är nöjd med hjälpen
villsovaa 906
Postad: 9 jan 2021 17:57 Redigerad: 9 jan 2021 17:57

lista med villkor

Hej, 

Har knappt haft någon programmering alls så detta är väldigt grundläggande. 

Har definierat en lista (med heltal endast?) enligt nedan:

for n in range(11,150):

 

Vill nu skriva ett villkor, att endast de tal som delas på fyra och får ett heltal över skrivs ut. Förstår inte hur jag ska skriva det? Tänkte att jag kunde göra en if-sats:

if n/4==n+1:

print(n)

 

men ja, det funkade ju inte. Har egentligen flera liknande villkor som ska med, men om jag kan skriva första så klarar jag mig nog med de andra också. Hur borde jag skriva det?

tomast80 4209
Postad: 9 jan 2021 18:16

Jag skulle använt modulo/rest, se nedan:

https://www.freecodecamp.org/news/the-python-modulo-operator-what-does-the-symbol-mean-in-python-solved/

Laguna Online 28478
Postad: 9 jan 2021 18:36

Om man inte vill använda %-operatorn, eller inte vet att den finns, kan man skriva

if 4*(n/4) != n:

Det förutsätter att du använder Python 2. I Python 3 heter heltalsdivisionen //

villsovaa 906
Postad: 9 jan 2021 18:43
tomast80 skrev:

Jag skulle använt modulo/rest, se nedan:

https://www.freecodecamp.org/news/the-python-modulo-operator-what-does-the-symbol-mean-in-python-solved/

Vet inte hur man använder modulo då jag inte läst matte 5 än. Hur skulle koden se ut i så fall? 

villsovaa 906
Postad: 9 jan 2021 18:44
Laguna skrev:

Om man inte vill använda %-operatorn, eller inte vet att den finns, kan man skriva

if 4*(n/4) != n:

Det förutsätter att du använder Python 2. I Python 3 heter heltalsdivisionen //

Funkade inte när jag skrev som du, när jag trycker på run så kommer liksom inget upp. Funkade inte heller när jag bytte till // i min kod jag skrev i början. 

villsovaa 906
Postad: 9 jan 2021 18:45
Laguna skrev:

Om man inte vill använda %-operatorn, eller inte vet att den finns, kan man skriva

if 4*(n/4) != n:

Det förutsätter att du använder Python 2. I Python 3 heter heltalsdivisionen //

Såhär ser det ut för övrigt

Laguna Online 28478
Postad: 9 jan 2021 21:01

Och med //? 

villsovaa 906
Postad: 9 jan 2021 21:10 Redigerad: 9 jan 2021 21:10
Laguna skrev:

Och med //? 

Det funkade faktiskt nu! Jag hade missuppfattat vad du menade, men det funkade både med det du skrev och det som jag avmarkerat med modulo. 

Jag har två till villkor som jag måste fylla i nu. För det så använde jag en and-sats, men när jag kör den så får jag ut exakt samma svar? Kanske ska vara så dock?

Mitt tredje villkor är att svaret ska vara ett heltal för mycket och inte ett för lite vid division på 6, dvs n/6=n-1. Hur skriver man det i din form? Kan för övrigt inte heller hitta vad "!" står för?

Laguna Online 28478
Postad: 9 jan 2021 21:42

n/4%1 är ett underligt uttryck, men jag förstår varför det funkar. För t.ex. n = 4 så blir n/4 1.0 och %1 blir det 0.0, vilket räknas som False i ett test. För n = 5 blir n/4 1.25 och %1 blir det 0.25 vilket räknas som True.

Men det känns som tur att det fungerar. Jag skulle skriva
    if n%4 != 0

!= betyder "är skilt från".

Varför menar du att n/6 = n-1 är det du vill? Det är inte sant för något positivt n.

villsovaa 906
Postad: 9 jan 2021 21:52
Laguna skrev:

n/4%1 är ett underligt uttryck, men jag förstår varför det funkar. För t.ex. n = 4 så blir n/4 1.0 och %1 blir det 0.0, vilket räknas som False i ett test. För n = 5 blir n/4 1.25 och %1 blir det 0.25 vilket räknas som True.

Men det känns som tur att det fungerar. Jag skulle skriva
    if n%4 != 0

!= betyder "är skilt från".

Varför menar du att n/6 = n-1 är det du vill? Det är inte sant för något positivt n.

Tack för ditt svar! Jo jag gissade på den där koden, men ja, det var tur. Det jag inte förstår är hur jag ska lägga till villkor, eller skriva att det blir ett heltal för mycket. Att exempelvis, ta fram det eller de tal i listan som när jag delar det på 6, blir alltid en för lite. Detta är en matteuppgift som jag självmant vill göra på programmering, så jag vet att ett av svaren är sjutton. Delar jag 17 på 6 så får jag 3, men med en för lite. Hur skriver man det på kodspråk mha samma princip som du använde? För jag förstår inte hur du definierar att det ska vara en rest på den med division med 4. Men detta är förmodligen överkurs för mig, dock intressant och kanske användbart att lära mig! 

Laguna Online 28478
Postad: 9 jan 2021 22:08

Menar du n%6 == 1?

Det är sant för n = 1, 7, 13, 19, 25, etc.

villsovaa 906
Postad: 9 jan 2021 22:18
Laguna skrev:

Menar du n%6 == 1?

Det är sant för n = 1, 7, 13, 19, 25, etc.

Nej för det där ger ju att när talet delas på 6 så blir det rest 1? Jag vill ju ha rest minus 1, om det nu går. Jag vet inte. Testade att skriva n%6== -1 men det funkade inte. Går det ens att skriva med modulo?

Laguna Online 28478
Postad: 9 jan 2021 22:27

Jaha, då är det n%6 == 5 du vill ha. -1 kommer det aldrig att bli, det blir bara nånting från 0 till 5.

villsovaa 906
Postad: 9 jan 2021 22:29
Laguna skrev:

Jaha, då är det n%6 == 5 du vill ha. -1 kommer det aldrig att bli, det blir bara nånting från 0 till 5.

Jahaaa, Nu funkade det!! Tack så jättemycket för svaren, uppskattas verkligen!!

Qetsiyah 6503 – Livehjälpare
Postad: 10 jan 2021 02:03 Redigerad: 10 jan 2021 02:04

Hallå! Betyder den här tråden att du till slut valde programmeringskursen? Eller bara vill träna själv? Kul kul kul. Python är nice (inte för att jag kan något annat språk att jämföra med).

villsovaa 906
Postad: 10 jan 2021 11:56
Qetsiyah skrev:

Hallå! Betyder den här tråden att du till slut valde programmeringskursen? Eller bara vill träna själv? Kul kul kul. Python är nice (inte för att jag kan något annat språk att jämföra med).

Haha hej, väljer kurs till nästa läsår så inte riktigt än, men tänker nog välja programmering! Denna uppgift stötte jag på när jag skulle hjälpa en kompis med matten så jag löste den för hand, men tänkte själv testa på att kanske lösa den med programmering, nu när jag kanske ska läsa det. Så så ligger det till! Men jag får ju så bra hjälp här så nu tycker jag att det typ är lite kul med programmering så kanske ska testa med lite fler matteuppgifter!

Qetsiyah 6503 – Livehjälpare
Postad: 10 jan 2021 13:29

Jaha vad trevligt! Så var det för mig också, har alltid gillat matte men skeptisk till programmering, men de gifter sig fint som du märker!

villsovaa 906
Postad: 10 jan 2021 13:47
Qetsiyah skrev:

Jaha vad trevligt! Så var det för mig också, har alltid gillat matte men skeptisk till programmering, men de gifter sig fint som du märker!

verkligen!

Svara Avbryt
Close