对print后面的字符串有点疑惑
为什么在输出Learn Python in imooc时需要加引号而输出100+200不要加?不能把数字计算视作一个字符串吗?还有计算表达式的布尔值也不要加引号?那么加括号可不可以?另外就是十进制与十六进制相加不需要转换一下其中某个数的进制吗?
为什么在输出Learn Python in imooc时需要加引号而输出100+200不要加?不能把数字计算视作一个字符串吗?还有计算表达式的布尔值也不要加引号?那么加括号可不可以?另外就是十进制与十六进制相加不需要转换一下其中某个数的进制吗?
2016-03-24
题主的问题很多呀,也没有加入换行,看起来略吃力, 哈哈?
我下面采用一问一答的方式,分别作答:
1. 为什么在输出Learn Python in imooc时需要加引号而输出100+200不要加?
##首先,字符串时必须加 单引号或者双引号,在Python里面才是合法的,而数字则不用, 另外在 print 100+200 ##中,Python 会先计算100+200得出300这个数字,然后在 打印,这是后就等价于: print 300 ##了,而数字是不用加单引号或者双引号的。
2. 不能把数字计算视作一个字符串吗?
##可以将 数字 视作一个字符串,但是不能将 数字计算 视作一个字符串,因为将数字计算视作一个字符串的话: print "100+200" ##会直接输入 "100+200" ##而不会计算结果 并输出
3. 还有计算表达式的布尔值也不要加引号?
##除了字符串,在Python 中其他数据类型都不需要加引号, 但是扯开一句:在需要用布尔型的时候,可以传入##其他类型,Python 会自动做隐式转换,如下: if "hello": print "你好" ##会输出: "你好" ##因为Python 会认为所有 非空字符串 为True
4. 那么加括号可不可以?
##这句话有歧义,我做两方面考虑,一个是逻辑判断,一个是数字运算。 ##逻辑判断: if (2==2): print "2等于2" ##结果为真,可以加括号。 ##数字运算: print (2+2) ##此处会输出4,括号不影响运算
5. 另外就是十进制与十六进制相加不需要转换一下其中某个数的进制吗?
##这个问题最简单:不需要,Python 会自动转换,且默认情况下输出十进制结果
3-1节 数据类型
--------------------------------------------------------------------------------------------------------------------
三、字符串
字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。
--------------------------------------------------------------------------------------------------------------------
字符串这样定义是编程语言中的规定,方便编译器找到哪一段数据是字符串。
而那些100+200是表达式(加号"+"是操作符,100、200是操作数),没加引号,则不是字符串,会被编译器计算出结果。且所得的数据的只有一种数据类型(如int型数与double型数相加,结果为double型,例如1+1.0结果为2.0,1+1结果为2),关于数据类型的转换可以查阅相关资料多看多想。
括号只要加的位置正确,在表达式中是可以加的,括号只是为了改变表达式中运算顺序(小学数学:先计算括号里的)
不同进制的数相加,编译器也会做出处理,一般结果默认为10进制。
举报