2013-06-05 8 views
20

Nasz nauczyciel geometrii przekazał nam zlecenie, w którym poprosiliśmy nas o stworzenie przykładu wykorzystania geometrii zabawki w prawdziwym życiu, więc pomyślałem, że byłoby fajnie zrobić program, który oblicza, ile galonów wody będzie potrzebnych do wypełnienia puli pewien kształt i pewne wymiary.Nie można połączyć obiektów "str" ​​i "float"?

Oto program do tej pory:

import easygui 
easygui.msgbox("This program will help determine how many gallons will be needed to fill up a pool based off of the dimensions given.") 
pool=easygui.buttonbox("What is the shape of the pool?", 
       choices=['square/rectangle','circle']) 
if pool=='circle': 
height=easygui.enterbox("How deep is the pool?") 
radius=easygui.enterbox("What is the distance between the edge of the pool and the center of the pool (radius)?") 
easygui.msgbox=("You need "+(3.14*(float(radius)**2) * float(height)) + "gallons of water to fill this pool.") 

ciśgle chociaż ten błąd: easygui.msgbox = ("Musisz" + (3.14 * (float (promień) ** 2) * float (wysokość)) + "galony wody do wypełnienia tej puli.") TypeError: nie można łączyć obiektów "str" ​​i "float"

co mam zrobić?

Odpowiedz

31

wszystkie pływaki lub non typy danych ciąg musi być lanego do ciągów przed konkatenacji

To powinno działać poprawnie: (zawiadomienie str obsady do wyniku mnożenia)

easygui.msgbox=("You need "+ str(3.14*(float(radius)**2) * float(height)) + "gallons of water to fill this pool.") 

prosto od tłumacza:

>>> radius = 10 
>>> height = 10 
>>> msg = ("You need "+ str(3.14*(float(radius)**2) * float(height)) + "gallons of water to fill this pool.") 
>>> print msg 
You need 3140.0gallons of water to fill this pool.