Python, kodhjälp(enkel)

Här diskuteras programmering och utveckling
gyrevik
Inlägg: 4
Blev medlem: 29 dec 2008, 01:23
OS: Ubuntu

Python, kodhjälp(enkel)

Inlägg av gyrevik »

Hejsan,

Håller på med ett program där jag skall hämta data från en fil, bilmodell, förbrukning, kostnad osv. Jag har dock stött på ett problem jag inte lyckas lösa.

Kod: Markera allt

# Bilkostnad
# coding: utf-8

def openFile(fileName, mode):
	''' Försöker öppna fil '''
	try:
		theFile = open(fileName, mode)
	except:
		print 'Det gick inte att öppna filen, avslutar programmet.\n'
		sys.exit()
	else:
		return theFile
def nextLine(theFile):
	''' Returnerar nästa rad från filen bilar '''
	line = theFile.readline()
	line = line.replace("\n", "") 
	return line

def nextBlock(theFile):
	''' Returnerar nästa block, eller nästa "bil" och dess egenskaper '''
	carmodel = str(nextLine(theFile))
	price = int(nextLine(theFile))
	gasconsumption = float(nextLine(theFile))
	service = int(nextLine(theFile))
	return carmodel, price, gasconsumption, service

def main():
	use = int(raw_input('Hur mycket kommer bilen användas? (Km / år): '))
	years = int(raw_input('Hur länge kommer den användas? (år): '))
	gasPrice = float(raw_input('Vad är bränslepriset? (kr / liter): '))
	
	carsFile = openFile("bilar.txt", 'r')
	carmodel, price, gasconsumption, service = nextBlock(carsFile)
	
	while carmodel:
		print 'Totala kostnaden för en', carmodel, 'är: ', price + (use * gasPrice * gasconsumption) + (years * service)
		carmodel, price, gasconsumption, service = nextBlock(carsFile)
	
	carsFile.close()
	
main()
 
Problemet är att while ioopen i main funktionen inte slutar trots att carmodel inte finns. Min textfil ser ut som följande:

Kod: Markera allt

Volvo S60
200000
0.7
2000
BMW Z3
400000
1.2
3000
Mercedez Benz
500000
1.0
1000
Kan någon se vad felet är? Den ska ju avsluta loopen när carmodel inte är true?

Tack så mycket för hjälp
gyrevik
Inlägg: 4
Blev medlem: 29 dec 2008, 01:23
OS: Ubuntu

Re: Python, kodhjälp(enkel)

Inlägg av gyrevik »

Löst, tack larsemil för hjälpen!
Skriv svar

Återgå till "Programmering och webbdesign"