View Single Post
Det er feil, realist1. Du blander stringoperasjoner og matematiske operasjoner. Int ganget med en string vil gi oppførselen du beskriver, men det er ikke det samme for input() og andre funksjoner. Jeg fant ikke ut av dette med bruk av input(), men noe annet, jeg tror det var noe i Apache Spark. Uansett, under er det to eksempler.

Kode

m = 100.0*input()
n = 100*input()
m vil fungere og regne ut tallet du sendte inn fordi float*input() takler python til å bli en float, den skjønner det implisitt. Mens n blir en int*input(), og python gjør ikke automatisk om fra string til int, og det har med konverteringer å gjøre. Hvorfor blir en lang forklaring jeg ærlig talt ikke er sikker på at jeg kan gjøre tilstrekkelig. Her ser vi rett og slett problemet med språk der du ikke deklarerer datatyper, og det kommer fra en python fan.

Men rent kodemessig er det veldig rotete å gjøre input-kall i en multiplikasjon, det kan være greit for leseligheten å gjøre det klart hva som kommer fra input og ha det som en egen variabel. I eksempelet under kan du bare bruke m så mye du vil senere og det kommer helt klart hva som er input.

Kode

m = float(input("meters: "))
inches = m*2.56
...
Sist endret av Xasma; 2. februar 2018 kl. 20:39.