Why are we using str for adding to numbers...? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

Why are we using str for adding to numbers...?

we are taking inputs as interger and storing them in variables num1 and num2...during addition the numbers input by the user should pass in the variables...so where the use to convert it to string...what is the use of str???

20th Feb 2017, 8:11 AM
arushi gaur
10 Answers
+ 2
If you want to do: n = 42 s = "the answer is: " print( s + n ) ... in Python, you'll get an error, as you can't concatenate a string and another type. So, one solution, is to explicitly cast the other type with the str() function: print( s + str( n ) ) # edited: typo mistake ^^ ( 'int' instead 'str' -- thank's to @ramzi )
20th Feb 2017, 8:47 AM
visph
visph - avatar
+ 2
One very important basic rule in Python is that you cant add a string and a non-string. So you need the same type. You can convert numbers/integers etc. into strings very easily but you cant convert every string to a number/etc.
20th Feb 2017, 10:35 AM
S0muchM3NY
+ 2
To store the RESULT of the addition: doing the cast outside the function call instead of inside: this is ( quiet ) the same as what's doing interternaly in both cases ;)
20th Feb 2017, 10:56 AM
visph
visph - avatar
+ 2
@Raj Kumar Chauhan: No one said than you cannot: print(42) ...but that you cannot: print("answer is "+42) It's not a question about the print() fuction, but about the concatenation of strings... print() is used only to show result, but you also cannot do: s = "answer is " + 42 ... no more ^^
20th Feb 2017, 11:46 AM
visph
visph - avatar
+ 1
@visph in your comment starting with "if you want to do: ", at the end of the code you typed print(s+int(n)). this does NOT work. it should be replaced with print(s+str(n)). please re-edit your post because it can be misguiding
20th Feb 2017, 9:24 PM
ramzi
ramzi - avatar
0
thank you but I am still confused...sorry...in the demonstration it is given- elif user_input == "add": num1 = float(input("Enter a number: ")) num2 = float(input("Enter another number: ")) result = str(num1 + num2) print("The answer is " + result) here we are taking float as tge number in variable num1 and num2 lets say user input 1 and 2 respectively...now in result which is another variable we are doing addition...so in result= str(num1+num2) the value inputted in variables num1 and num2 should pass here and get added...so why we are using str...is it to store the addition in string form...???
20th Feb 2017, 10:53 AM
arushi gaur
0
god...i got it... thanks 😊👍
20th Feb 2017, 10:59 AM
arushi gaur
0
I dont think in python you need to explicitly write data type of result. It will automatically convert to suitable data type based on result.
20th Feb 2017, 11:29 AM
Raj Kumar Chauhan
Raj Kumar Chauhan - avatar
0
yes it's like you said in the end, it's to store the result in a string form so that print("The answer is "+result) doesn't make an error
20th Feb 2017, 9:22 PM
ramzi
ramzi - avatar
0
@visph I didn't say we can not. I said it's not mandatory unless you specifically want to specify in which data type you want to store result.
21st Feb 2017, 2:11 AM
Raj Kumar Chauhan
Raj Kumar Chauhan - avatar