
-----------------------------------
SIXAXIS
Thu Feb 21, 2008 3:28 pm

Quick question from a super noob.
-----------------------------------
Hi,

As you can see, I'm extremely new to Python, and although it's not the first language that I'm learning to program in, I don't know how to do anything. My question is: How do you make a variable a real number instead of an integer?

-----------------------------------
Nick
Thu Feb 21, 2008 3:31 pm

RE:Quick question from a super noob.
-----------------------------------
instead of assigning 10 to the variable foo let's call it, try assigning 10.0

-----------------------------------
McKenzie
Thu Feb 21, 2008 7:07 pm

Re: Quick question from a super noob.
-----------------------------------
Right, unless your problem is something like:

n = input("Enter numerator: ")
d = input("Enter denominator: ")
print "that is", n / d
in which case you need to use float if you want a decimal answer, like:

print "that is", float(n) / d

Keep in mind that Python is dynamically typed so:

x = 12
x = 4.5
x = "Dog"
works just fine.

-----------------------------------
Sniper4Life
Sun Apr 12, 2009 10:40 pm

RE:Quick question from a super noob.
-----------------------------------
mckenzie...how would u set it so that the decimals can only go SO FAR...like you can only have 4 or 3 decimals...or only 1...??????

-----------------------------------
[Gandalf]
Mon Apr 13, 2009 1:13 am

RE:Quick question from a super noob.
-----------------------------------
Well, I'm not McKenzie, however...
[code]>>> print "Amount: %.2f" % (3.141592653589)
 Amount: 3.14[/code]

-----------------------------------
Sniper4Life
Mon Apr 13, 2009 9:55 am

RE:Quick question from a super noob.
-----------------------------------
so....%2f should do it?

oh ya i tried your thing and it works 
ty
but u cant use it if you do firstpx-secondpx as what your gonna round

[code]
firstpx=input ("First point's x coordinate: ")
firstpy=input ("First point's y coordinate: ")

print " "
secondpx=input ("Second point's x coordinate: ")
secondpy=input ("Second point's y coordinate: ")
print " "

print "First point:  ","(","%.2f" % firstpx,",","%.2f" % firstpy,")"
print "Second point: ","(","%.2f" % secondpx,",","%.2f" % secondpy,")"
print " "




print "Distance: ""(",firstpx-secondpx,",",firstpy-secondpy,")"

[/code]

k ive been stuck on this code like forever cus i dont know how to round it....at the last line when you print distance...how can u make it so you can round it?
since its printing an operation...i dont kno...how to round it...O.O

-----------------------------------
Sniper4Life
Mon Apr 13, 2009 10:53 am

RE:Quick question from a super noob.
-----------------------------------
nvr mind i just figured it out its very simple ^^
i nvr learned bout floats in python so it was a bit confusing for me...
[code]
x=float(firstpx-secondpx)
y=float(firstpy-secondpy)
print "Distance: ""(","%.2f" % x,",","%.2f" % x,")"

[/code]

ya that solves my problem ^^
(ps-awesome im not  a noob programmer any more :D)

-----------------------------------
Zeroth
Mon Apr 13, 2009 11:06 am

Re: Quick question from a super noob.
-----------------------------------
Be very, very, very careful with using input. Its basically evaluating all input typed by the user. So one could feasibly use straight python code, write a function, or manipulate the program state via input. 

Your usage of input means that the user could input either an int or a float. You need to use float(firstpx) to force them to floats.

Second of all, its much nicer to use:
[code]
print "First point: (%.2f,%.2f)" % (float(firstpx), float(firstpy)) 
[/code]

The use of the brackets around the two arguments creates a tuple, which python automatically unpacks to the positional arguments in the string.

You can also do some really cool stuff like this:
[code]
>>> d = {'car': 'haha', 'cdr': '!lisp'}
>>> print "%(car)s" % d
haha
>>> 
[/code]

What happened there is that the key is inside the ()'s, and the format is right after, the s. By passing a dict, you can fill in the string as necessary, so long as empty keys still have a value(ideally, just a blank string "").  Of course, any class that behaves like a dict will work here too ;).

-----------------------------------
wtd
Mon Apr 13, 2009 11:10 am

Re: RE:Quick question from a super noob.
-----------------------------------
mckenzie...how would u set it so that the decimals can only go SO FAR...like you can only have 4 or 3 decimals...or only 1...??????

Keep in mind that you can't control the accuracy of the information stored as a floating point number.  You can only control the accuracy of the output.

-----------------------------------
Sniper4Life
Mon Apr 13, 2009 11:27 am

RE:Quick question from a super noob.
-----------------------------------
ya wtd thats what i meant
for question introEx5 on mckenzie's exercises i need to control the output...
