python再复习(1)数据类型以及字符串

来源:互联网 发布:狼图腾 知乎 编辑:程序博客网 时间:2024/06/05 05:55

大略看了廖雪峰老师所有的基本语法教程,再看了flask的web开发到第七章,写了一个可以爬电影网站的爬虫后,也算正式入门python,很喜欢这门语言,简约不简单。人生苦短,我选python。
但是在看flasky的时候,觉得大略看了语法后还是不够扎实,我选择重头看一遍廖老师的教学,全部的代码和习题敲一遍,特别是加上自己的一些体会,顺便把评论里的问题和比我好的代码也大略看一看,汲取一下。也希望可以和更多的人交流,我几乎每天上blog的,欢迎交流一起进步。

环境:win7 pycharmCE_2017.2 python3.6.2

1.数据类型和变量

python里有整数、浮点数、字符串、布尔值和空值。整数表示方法有普通的十进制:1、10、1000000、2678,还可以用十六进制,0x2132、0xaf2f都可以。浮点数呢有正有负还有小数点,表示方法可以是普通的1.23 、-3.299(负小数),还可以是用科学计数法,比如1.34e8(就是1.34乘以10的8次方)、-2.89e3 、1.2e-8都是可以的。
★字符串想单独说一下,因为用到的很多。字符串可以用单引号或者双引号括起来,没什么区别,比如a=‘hello’和a=“hello”没区别。但是如果你想打印出

I'm OK

你要用双引号把它包起来或者使用转义字符’\’。像这样:

>>> print('I\'m OK')I'm OK>>> print('I'm OK')  File "<stdin>", line 1    print('I'm OK')             ^SyntaxError: invalid syntax>>> print("I'm OK")I'm OK>>>

如果既有单引号又有双引号,比如这句话:I’m “FINE”!
这句话又有单引号又有双引号,如果想要用单引号把全部的都括起来,那就得把这一串里面的单引号加上转义字符:

>>> print('I\'m "FINE"!')I'm "FINE"!

有多行的字符串可以用单个单引号来表达:

#pycharm下:itm='''f1f2;f3'tt'f4"ko"i'm "ok"!'''print(itm)#结果为:f1f2;f3'tt'f4"ko"i'm "ok"!#----------------------------------------#命令行下:>>> itm='''f1... f2;... f3'tt'... f4"ko"... i'm "ok"!...... '''>>> itm'f1\nf2;\nf3\'tt\'\nf4"ko"\ni\'m "ok"!\n\n'>>> print(itm)f1f2;f3'tt'f4"ko"i'm "ok"!>>>

布尔值和我在c下用的差不多,只有两个值,然后可以进行or、and 、not运算。空值就是None,不是0,我觉得这里和和指针有共通的地方,int* ptr = NULL;,虽然此时指针会是0x00000000,但要理解成是特殊的0,是没有意义的0。变量和常量和c语言差不多一个理解方式,但是变量是动态的,不像c int a =100后就不能a = 0.98了。
至于习题:

# coding:utf8#pycharmn = 123f = 456.789s1 = 'Hello, world's2 = 'Hello, \'Adam\''s3 = r'Hello, "Bart"'s4 = r'''Hello,Lisa!'''print("n=%s\nf=%s\ns1=%s\ns2=%s\ns3=%s\ns4=%s"%(n,f,s1,s2,s3,s4))#结果:n=123f=456.789s1=Hello, worlds2=Hello, 'Adam's3=Hello, "Bart"s4=Hello,Lisa!

2.字符串和编码

encode-编码
decode-解码
len()函数计算str包含的字符

>>> temp='KpY'>>> temp.encode('ascii')b'KpY'>>> temp'KpY'

打印字符串的时候,%?是占位符。要是要打印%的话,要使用‘%%’。例子:

>>> temp=0.12345>>> print('百分比为%.2f%%'%temp)百分比为0.12%>>>
>>> temp2=78.2334543>>> print('第一个的百分比为%.2f%%,第二个的百分比为%f%%'%(temp,temp2))第一个的百分比为0.12%,第二个的百分比为78.233454%>>>

要是对保留几个小数没要求的话,就直接用%s就好了,全部转为字符串显示。这章的练习题:

# coding:utf8s1 = 72s2 = 85r = (s2-s1)/s1*100print('%.1f'%r)#结果:#18.1

完啦,明天再继续复习

原创粉丝点击