最近工作比较忙。。每天都是10点以后回来,基本上也就洗洗睡了。。。又是N多天没看这个,趁着今天有时间再学一学!
Excercise5:More Variables And Printing 本节主要是讲了一下格式化字符串。如同我之前经常说的那样,有C这样高级语言的基础的人非常容易理解。所谓“格式化字符串”,就是将字符串按照一定的格式作为输出(当然,在下面的例子中主要是输出到标准输出中,表现为显示在屏幕上)。在C中,以printf函数为例,主要有%d,%c,%f,%s等等。不做任何赘述,在python中也是一样的,值得注意的是,python中有一个%r的格式符(在C中我没有见过,如果谁见着C中也有类似的东西,麻烦告知一下哈),本书对此的描述是“无论是什么都进行print”(It's like saying "print this no matter what")
格式化的写法与C不太一样,在print后面的字符串后面用“%”加上变量即可,如果有多个变量,用括号括住,变量之间用逗号隔开即可。
另外,我突然注意到一点(记性比较差,不知道以前注没注意过。。。)print一次输出一行,然后进行换行,而C中要加上“\n”,经过试验,发现“\n”在python中也起到同样的换行作用,就是说在print后面的双引号中的最后加上“\n”,那么就在原有换行的基础上再换一行,表现为本行和下一个print显示的内容中间隔了一个空行。
本节的代码:
my_name = "Zed A. Shaw"
my_age = 35 # not a lie
my_height = 74.0 #inches
my_weight = 180 # lbs
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'
print "Let's talk about %s." % my_name
print "He's %d inches tall." % my_height
print "He's %d pounds heavy." % my_weight
print "Actually that's not too heavy."
print "He's got %s eyes and %s hair." % (my_eyes, my_hair)
print "His teeth are usually %s depending on the coffee." % my_teeth
#this line is tricky try to get it exactly right
print "If I add %d, %d, and %d I get %d." % (my_age, my_height, my_weight, my_age + my_height + my_weight)
|
需要注意的一点:%r的使用。以下面的代码为例
print "His teeth are usually %s depending on the coffee." % my_teeth
|
输出为
“His teeth are usually White depending on the coffee.”如果把其中的"%s"改为"%r",则输出为
“His teeth are usually 'White' depending on the coffee.”居然多了一对单引号。。。
如果改为如下代码:
my_teeth = "White"
print "His teeth are usually %s depending on the coffee." % my_teeth
|
结果也是
“His teeth are usually 'White' depending on the coffee.”具体的原因没有查明。。。google了半天,就先暂时放弃了。。。。
Excercise6:Strings And Text 有趣的东西终于出现了!本节开始的时候先将之前注意到的一些东西做了简单的介绍。比如,Python中将字符用双引号或单引号括起来就成为了字符串;字符串可以包含格式化字符;在字符串中打印出多个变量使用括号括起来然后以逗号隔开。
下面的代码有些有趣的地方:
x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary, do_not)
print x
print y
print "I said: %r." % x
print "I also said: '%s'." % y
hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r"
print joke_evaluation % hilarious
w = "This is the left side of..."
e = "a string with a right side."
print w + e
|
在python中,字符串仿佛是C语言中的宏定义(marco)!就是说,你定义了一个字符串的变量,无论你在什么时候什么地方使用它,都仿佛是在直接操作这个字符串一般!当然这么说是完全错误的,宏定义其实只是一个文本替换,但是Python中肯定不是简单的文本替换,比如第一条代码,本条语句之后,x的只应该是“
There are 10 types of people.
”而不是“
"There are %d types of people." % 10
”,下面的语句主要再次说明了“%r”格式字符,在这里发现了一个有趣的现象,按照语句
输出是“
I said:
'There are 10 types of people.'.
”,如果改成
print "I said: '%r'." % x
|
即给%r加上单引号,输出为“
I said:
''There are 10 types of people.''.
”。里面的是两对单引号,仿佛在输出字符串时,%r的效果相当于输出‘%s’一样。语句
print "I also said: '%s'." % y
|
输出为“
I also said: '
Those who know %s and those who don't.
'.
”。若将‘%s’改为%r,输出为“
I also said: "
Those who know %s and those who don't."
.
”,注意!这里的嵌套的字符串变成了由双引号括起来了!就是说我们之前关于%r和‘%s’的关系就不再成立了。。这就又回到了之前的问题:%r到底是怎么用的?估计在后续的学习中会提到吧,就暂时让我们拭目以待。
再往后的代码,
joke_evaluation的使用更像宏定义了,最后的一个print语句说明可以通过加号(+)将两个字符串进行连接。
时间也不早了,今儿就先这样把。。。明儿还得接着上班。。。。
阅读(1776) | 评论(0) | 转发(0) |