[Tutor] Count for loops

Alex Kleider akleider at sonic.net
Sat Apr 8 20:12:20 EDT 2017


On 2017-04-08 05:49, Rafael Knuth wrote:
> Dear Sama,
> 
> thank you so much for your explanation and sorry to bother you on the
> same subject again.
> I learn the most by taking code apart line by line, putting it
> together, taking apart again, modifying it slightly ... which is
> exactly what I did with your code.
> 
> On Tue, Apr 4, 2017 at 3:20 PM, D.V.N.Sarma డి.వి.ఎన్.శర్మ
> <dvnsarma at gmail.com> wrote:
>> b = "3"+b[2:]  #Removing the decimal point so that there are digits 
>> only in
> 
> my_number = 3.14159
> my_number = "3"+my_number[2:]
> print(my_number)
> 
> This is the error code I got:
> 
> == RESTART: C:/Users/Rafael/Documents/01 - BIZ/CODING/Python 
> Code/PPC_56.py ==
> Traceback (most recent call last):
>   File "C:/Users/Rafael/Documents/01 - BIZ/CODING/Python
> Code/PPC_56.py", line 2, in <module>
>     my_number = "1"+my_number[2:]
> TypeError: 'float' object is not subscriptable
>>>> 
> 
> I am really trying to understand how to modify strings, floats and
> variables from different sources.
> In case of a text file, your code works, but if I apply the same to a
> float assigned to a variable, it does not work.
> What am I doing wrong here? Thank you so much for your patience.

The error message is telling you exactly what is wrong:
"not subscriptable"
You've tried to use string functionality on a float.
Specifically: my_number is a float.
"""my_number[2:]""" would only make sense to the interpreter if 
it("my_number", not the interpretery:-) were a string (or some other 
sequence.)
try changing your code to:
   my_number_as_a_string = "3.14159"
   my_new_number_still_a_string = "3" + my_number_as_a_string[2:]  # 
spaces added for clarity
   print(my_new_number_still_a_string)
   my_float = float(my_new_number_still_a_string)
   print(my_float)
HTH
ps warning: not tested


More information about the Tutor mailing list