Python - hjälp att omvandla en variabel till integer
Python - hjälp att omvandla en variabel till integer
Hej,
har precis börjat lära mig Pythonprogrammering och hittar inte lösningen till följande: Vill mata in två värden med input(). Sedan kunna behandla dessa matematiskt och då ha dem i integer-typ. Men det blir bara som textsträngar. Se kod nedan. Nån som kan hjälpa till? Tack på förhand.
time = input('How many hours have you worked?\n')
rate = input('What is your hourly rate?\n')
int(time) #try to convert time to integer
print(time)
print(rate)
total=time+rate
print(total)
print (type(time)) #show what type the variable time is
print (type(rate))
har precis börjat lära mig Pythonprogrammering och hittar inte lösningen till följande: Vill mata in två värden med input(). Sedan kunna behandla dessa matematiskt och då ha dem i integer-typ. Men det blir bara som textsträngar. Se kod nedan. Nån som kan hjälpa till? Tack på förhand.
time = input('How many hours have you worked?\n')
rate = input('What is your hourly rate?\n')
int(time) #try to convert time to integer
print(time)
print(rate)
total=time+rate
print(total)
print (type(time)) #show what type the variable time is
print (type(rate))
Re: Python - hjälp att omvandla en variabel till integer
Tack!
Nu har jag löst det med din hjälp. Kan jag definiera det som en integer redan i "input()-läget? (Jag löste det med att omvandla time till a, i två steg..)
Nu har jag löst det med din hjälp. Kan jag definiera det som en integer redan i "input()-läget? (Jag löste det med att omvandla time till a, i två steg..)
Re: Python - hjälp att omvandla en variabel till integer
Det borde gå. Oavsett tror jag det blir en exception om du skriver t.ex. bokstäver. Får lägga en try..catch runt
Re: Python - hjälp att omvandla en variabel till integer
Ska det inte vara "total=time * rate" ?
Hur som helst...
Vad fick du för fel?
Hur som helst...
Kod: Markera allt
$ python
Python 2.7.8 (default, Oct 31 2014, 14:12:12) [DECC] on OpenVMS
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> time = input('How many hours have you worked? ')
How many hours have you worked? 25
>>> rate = input('What is your hourly rate? ')
What is your hourly rate? 550
>>> total = time * rate
>>> print total
13750
>>>
>>> print (type(time))
<type 'int'>
Re: Python - hjälp att omvandla en variabel till integer
Kan hända att det är olika beteende mellan python 2 och 3, men har inte testat i min miljö.
Re: Python - hjälp att omvandla en variabel till integer
Ja, jag tänkte lite på det då jag såg syntaxen "print (type(time))".
En av ändringar mellan V2 och V3 är väl att "print" i V3 är en
funktion (och alltid måste ha sina argument inom () ), medan
det i V2 var ett kommando som tog parametrar direkt utan ().
I V2 fungerar "print type(time)" lika bra...
Men i så fall är det även skillnader i "input".
Men å andra sidan så verkade det som att Mmm hade problem med
"int(time)", och det fungerar väl varken i V2 eller V3, eller hur? Man
kan inte ändra typ på en variabel bara så där utan vidare...
En av ändringar mellan V2 och V3 är väl att "print" i V3 är en
funktion (och alltid måste ha sina argument inom () ), medan
det i V2 var ett kommando som tog parametrar direkt utan ().
I V2 fungerar "print type(time)" lika bra...
Men i så fall är det även skillnader i "input".
Men å andra sidan så verkade det som att Mmm hade problem med
"int(time)", och det fungerar väl varken i V2 eller V3, eller hur? Man
kan inte ändra typ på en variabel bara så där utan vidare...
Re: Python - hjälp att omvandla en variabel till integer
I Python (och diverse andra språk) går det bra att göra sträng->integer med en cast som bearing skrev.. Förutsatt att det är en giltig integer då, annars får man ett exception av typen "ValueError"
Re: Python - hjälp att omvandla en variabel till integer
Josodjan skrev: Men å andra sidan så verkade det som att Mmm hade problem med
"int(time)", och det fungerar väl varken i V2 eller V3, eller hur? Man
kan inte ändra typ på en variabel bara så där utan vidare...
Kod: Markera allt
>>> s = "123"
>>> n = int(s)
>>> s
'123'
>>> n
123
>>>
Re: Python - hjälp att omvandla en variabel till integer
Python 3.5.2:
Har för mig att detta är en skillnad mellan v2 och v3. I v3 konverterar den inte automatiskt.
Kod: Markera allt
>>> time = input("Tid:")
Tid:123
>>> time
'123'
>>> time + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> int(time) + 1
124
>>>
Re: Python - hjälp att omvandla en variabel till integer
Kod: Markera allt
time = False
while not time:
try:
time = int(input("Write time: "))
except ValueError:
print("Value is not a number, try again!")
Edit:
Eller medans jag håller på:
Kod: Markera allt
def input_int(message):
number = False
while not number:
try:
number = int(input(message))
except ValueError:
print("Value is not a number, try again!")
return number
Detta kallas för en funktion, vet du att du ska göra samma sak flera gånger i ditt program kan det vara värt att skapa funktioner.
Kod: Markera allt
>>> input_int("Hejsan: ")
Hejsan: h
Value is not a number, try again!
Hejsan: 6
6
>>> input_int("a: ") + input_int("b: ")
a: 5
b: 8
13
>>>
Re: Python - hjälp att omvandla en variabel till integer
> Jo
Nej!
s och n är två olika variabler. Du ändrar *inte* typ på en variabel med ditt exempel.
Det var ju uppenbart att Mmm trodde att "int(time)" skulle byta typ
på variabeln time från en textsträng till integer.
Nej!
s och n är två olika variabler. Du ändrar *inte* typ på en variabel med ditt exempel.
Det var ju uppenbart att Mmm trodde att "int(time)" skulle byta typ
på variabeln time från en textsträng till integer.
-
- Inlägg: 1394
- Blev medlem: 29 januari 2011, 21:06:30
- Ort: Lapplandet
Re: Python - hjälp att omvandla en variabel till integer
python2:
input() gör automatisk tolkning av typ från inputsträngen.
raw_input() ger inputsträngen direkt.
python3:
input() är ersatt av raw_input()
input() gör automatisk tolkning av typ från inputsträngen.
raw_input() ger inputsträngen direkt.
python3:
input() är ersatt av raw_input()
Re: Python - hjälp att omvandla en variabel till integer
Tack för hjälpen. Lösningen blev att skapa en ny variabel som jag satte som en integer.
Jag har hittat en pdf-lärobok (python for everybody) på nätet som jag försöker läsa mig igenom, förstå och göra övningarna. Kanske skulle jag skapa en ny tråd för en ny problemställning, men jag slänger ut den här så får jag se om det funkar.
Jag lägger in detta i ett skript, kopierat direkt ur läroboken, sid 45
import random
for i in range(10):
x = random.random()
print(x)
Min version på python är 3.6.3. Felmeddelandet är:
Traceback (most recent call last):
File "C:\Users\Mmm\Documents\PythonMappTestFiler\random.py", line 1, in <module>
import random
File "C:\Users\Mmm\Documents\PythonMappTestFiler\random.py", line 3, in <module>
x = random.random()
TypeError: 'module' object is not callable
Betyder det att jag inte lyckats installerat random-modulen?
Jag har hittat en pdf-lärobok (python for everybody) på nätet som jag försöker läsa mig igenom, förstå och göra övningarna. Kanske skulle jag skapa en ny tråd för en ny problemställning, men jag slänger ut den här så får jag se om det funkar.
Jag lägger in detta i ett skript, kopierat direkt ur läroboken, sid 45
import random
for i in range(10):
x = random.random()
print(x)
Min version på python är 3.6.3. Felmeddelandet är:
Traceback (most recent call last):
File "C:\Users\Mmm\Documents\PythonMappTestFiler\random.py", line 1, in <module>
import random
File "C:\Users\Mmm\Documents\PythonMappTestFiler\random.py", line 3, in <module>
x = random.random()
TypeError: 'module' object is not callable
Betyder det att jag inte lyckats installerat random-modulen?
Re: Python - hjälp att omvandla en variabel till integer
Vad heter ditt eget script?
Det fungerar för mig, men inte om jag kallar mitt eget script for "random.py", då blir Python bli lite förvirrat.
Så sätt inte samma namn på dina egna .py filer som på de moduler du tänker importera.
Det fungerar för mig, men inte om jag kallar mitt eget script for "random.py", då blir Python bli lite förvirrat.
Så sätt inte samma namn på dina egna .py filer som på de moduler du tänker importera.