从这篇文章开始,将记录我学习python的笔记,中间难免出错,看到的时候请不要见怪,因为我还是一个小学生。
python中所有数据--布尔值,整型,浮点数,字符串,甚至大型数据结构,函数以及程序--都是以对象的形式存在的。
对象有不同的类型,类型决定了可以对它进行的操作。对象的类型还决定了它承载的数据是允许被修改的变量,还是不允许被修改的常量。
python是强类型语言,你永远无法修改一个已有对象的类型,即使它包含的数值是可变的。
python中的变量只是一个名字,名字是对对象的引用而不是对象本身。
如果想知道一个对象的类型可以使用type(thing)语句获得。
变量的组成包括:字母,数字,下划线。不过不能以数字开头。
python中的整数除法是:// 栗子: 7//2 3
python中的求幂运算是:** 栗子: 3**4 81
注意点:整数0不能最为前缀放在其他数字面前,否则会出现报错
```
>>> 06
File "", line 1
06
^
SyntaxError: invalid token
```
有关基数:再python中整数默认使用十进制,不过你还可以使用其他三种进制的数字
1:0b或0B代表二进制(以2为底)
2:0o或0O代表八进制(以8为底)
3:0x或0X代表十六进制(以16为底)
有关类型转换:
可以使用int()将python的其他数据类型转换为整型
可以将布尔值转化为整型:int(True),int(False)
可以将浮点型转化为整型:int(12.3)
可以将包含正负号和数字的字符串转化为整型: int(‘+12’)
但是init函数不能接受包含小数点和指数的字符串:int('12.3')或int(1.0e4')
再python3.5中,long类型已经不再存在,而init类型变为可以存储任意大小的整数,甚至超过64位。
可以使用float()函数将其他类型转换位浮点型:
可以将整型转化为浮点型:float(2)
可以将布尔型转化为浮点型:float(True),float(False)
可以将包含有效浮点数(数字,正负号,小数点,指数及指数的前缀)的字符串转换成真正的浮点型数字:float('98.6'),float('-1.5'),float('1.0e4')
Python的字符串是不可变的,你无法对原字符串进行修改,但可以将字符串的一部分复制到新的字符串。
将一系列字符用单引号或双引号括起来就可以创建字符串。
可以使用三个单引号''',或三个双引号"""来创建多行的字符串。
在三元引号包括的字符串中,每行的换行符以及行首或行末的空格都会保留。
可以使用str()函数将其他数据类型转换成字符串:
栗子:str(98.6),str(1.0e4),str(True)
使用 \ 进行转义:
换行符:\n
制表符:\t
单引号和双引号表示:\' , \"。在字符串由相同类型的引号包括的时候经常使用
如果想输出一个反斜线 \ ,连续输入两次 \\ 即可。
使用 + 进行字符串的拼接:
在python中可以使用 + 进行字符串的拼接: ”string"+"string"
当我们调用print()时候,python会在各个参数之间自动添加空格,并在结尾添加换行符
使用 * 进行字符串的复制:
使用符号 * 可以进行字符串的复制: start="na"*5+'\n'
使用 [ ] 提取字符串:
在字符串的后面添加[ ],并在括号里指定偏移量可以提取该位置的单个字符。第一个字符的偏移量是0,字符的偏移量也可以用 -1表示,从右到左依次是-2,-3等等。
由于字符串是不可变的,因此无法直接插入字符或改变指定位置的字符,为了改变字符串,我们可以组合使用一些字符串函数,例如replace(),以及分片操作。
栗子:name='Henny' name.replace('H','P') 'P'+name[1:]
使用[start:end:step]分片:
分片用来获取子字符串,我们用一对方括号[ ],起始偏移量start,终止偏移量end以及可选的步长step来定义一个分片。分片得到的字符串包括从start开始到end之前的全部字符。
[ : ] 提取从开始到结尾的整个字符
[start:] 从start提取到结尾
[ :end ] 从开头提取到end-1
[ start : end ] 从start提取到end-1
[ start:end:step ] 从start提取到end-1,每step个字符提取一个
注意:偏移量从左至右从0开始,从右至左从-1开始。
使用len()获取长度:
len()函数可以计算字符串中包含的字符数
使分割:用split()分割
调用字符串函数的格式: string.function(arguments)
函数split()可以基于分隔符将字符串分割成由若干个子串组成的列表。
如果不指定分隔符,那么split()将默认使用空白字符--换行符,空格,制表符。
栗子: todos='get,get mask,give cat vitamins' todos.split(',')
使用join()函数进行合并
join()函数将包含若干个子串的列表组成的一个完整的字符串。join()的调用顺序:先指定连接符,再指定列表:string.join(list)
栗子:crp_to=['nihbh','fyrdhn','ytwabsch'] ','.join(crp_to)
判断某个字符串是否以all开头:string.startwith('all')
判断某个字符串是否以all结尾:string.endwith('all')
判断某个字符串中all第一次出现的位置(偏移量):string.find('all')
判断某个字符串中all最后一次出现的位置:string.rfind('all')
判断某个字符串中all出现了多少次:string.count('all')
判断某个字符串是否都是字母或数字:string.isalnum()
使用replace()函数进行替换:
函数replace()可以实现简单的替换,需要传入的参数有:需要被替换的子串,用于替换的新子串,以及需要替换多少处。最后一个参数省略,则只替换第一处。
样式:string.replace('oldstring','newstring',number)
大小写与对齐方式:
设置字符串:setup='a duck goes in a bar ...'
将字符串收尾的 . 都删除掉:setup.strip('.')
将字符串的首字母大写:setup.capitalize()
将字符串的所有单词的开头都变成大写:setup.title()
将所有字母都变成大写:setup.upper()
将所有字母都变成小写:setup.lower()
将所有字母的大小写转换:setup.swapcase()
我们假设栗子中的字符串被编排在指定长度(这里是30个字符)的空间里:
在30个字符中居中:setup.center(30)
左对齐:setup.ljust(30)
右对齐:setup.rjust(30)
注意:由于字符串是不可变的,这些操作并没有真正的改变字符串的值,他们只是获得字符串的值,然后进行某些操作之后将结果赋予新的一个字符串。
注:本文内容来自《Python语言及其应用》欢迎购买原书阅读