1、数字
int 、float、complex
Python给变量赋值时不需要预先声明变量类型。int的大小则没有限制,只要内存够大,想多大都行。float就是带小数点的数,不包括无限小数,不区分精度。complex就是复数,它包含一个有序对,如a+bj,a是实部, b是复数的虚部。
注意:python3以前的版本,有long类型,如果赋值超过了int的范围(没有超过就是int),则自动转换成long长整型。int的大小范围与安装的解释器的位数有关。
https://docs.python.org/3.1/whatsnew/3.0.html#integers
2、字符串
被定义在引号(单引号或双引号)之间的一组连续的字符。
字符串的一些操作:
大小转换:
S.lower() :大写转小写
S.upper():小写转大写
S.swapcase():小写转成大写,大写转成小写。
S.title():首字母大写
搜索、替换:
S.find(substr,[start,[end]]):返回在S中出现substr的第一个字母标号,没有则返回-1。
S.count(substr,[start,end]):计算substr在S中出现的次数。
S.replace(oldstr,newstr,[count]):把S中的oldstr替换成newstr,count为替换的次数。
S.strip([chars]):把S左右两端的chars中所有字符全部去掉,一般用于去掉空格。
S.lstrip([chars]):把S左端的chars中所有字符全部去掉
S.rstrip([chars]):把S右端的chars中所有字符全部去掉
分割、组合:
S.split([sep,[maxsplit]):以sep为分隔符,把S分割成列表list,maxsplit为分割次数,默认分割符为空白字符。
S.join(seq):用S把seq代表的字符串序列连接起来。
编码、解码:
Python 3.0 uses the concepts of text and (binary)data instead of Unicode strings and 8-bit strings. All text is Unicode; however encoded Unicode is represented as binary data. The type used to hold text is str, the type used to hold data is bytes. The biggest difference with the 2.x situation is that any attempt to mix text and data in Python 3.0 raises TypeError, whereas if you were to mix Unicode and 8-bit strings in Python 2.x, it would work if the 8-bit string happened to contain only 7-bit (ASCII) bytes, but you would get UnicodeDecodeErrori f it contained non-ASCII values. This value-specific behavior has caused numerous sad faces over the years.
As a consequence of this change in philosophy, pretty much all code that uses Unicode, encodings or binary data most likely has to change. The change is for the better, as in the 2.x world there were numerous bugs having to do with mixing encoded and unencoded text. To be prepared in Python 2.x, start using unicode for all unencoded text, and str for binary or encoded data only. Then the 2to3 tool will do most of the work for you.
You can no longer use u"..." literals for Unicode text. However, you must use b"..."literals for binary data.
As the str and bytes types cannot be mixed, you must always explicitly convert between them. Use str.encode() to go from str to bytes, and bytes.decode() to go from bytes to str. You can also use bytes(s,encoding=...) and str(b,encoding=...), respectively.
Like str, the bytes type is immutable. There is a separate mutable type to hold buffered binary data, bytearray. Nearly all APIs that accept bytes also accept bytearray. The mutable API is based on collections.MutableSequence.
https://docs.python.org/3.1/whatsnew/3.0.html#text-vs-data-instead-of-unicode-vs-8-bit
S.decode([encoding]):将以encoding编码的S解码成unicode编码。
S.encode([encoding]):将以unicode编码的S编码成encoding编码。encoding可以是gb2312、gbk、big5...
测试:
S.isalpha():S是否是全部是字母。
S.isdigit():S是否是全部是数字。
S.isspace():S是否是全部是空格。
S.islower():S是否是全部字母·写的。
S.isupper():S是否是全部字母大写的。
S.istitle():S是否是首字母大写的。
3、列表
列表是一个可变序列,每个元素分配一个位置索引,从0开始。元素可以是数字、字符串、列表、元组、字典。python用[]来解释列表。
列表的一些操作:
创建列表
直接赋值即可。list1 = [] 空列表 list2 = ['a','b','c'] 或 list2 = list('abc')
插入数据
list2.insert(0,'hello') 在第一个位置前插入 hello
list2.insert(-1,'python') 在最后一个元素前插入python
追加数据
list2.append('world') 在最后追加world
删除数据
list2.pop(3)删除第4个元素。
list2.pop()删除最后一个元素。
访问数据
通过下标来访问
列表分片也是列表访问的一种方式。
将一个列表分成几个部分。操作方法list[index1:index2[:step]]
list2[10:21] 访问列表第10到第20的元素。注意下标是从0开始的。
list2[10:21:2]以步长2的距离访问列表第10到第20的元素。注意下标是从0开始的。
4、元组
元组是一个不可变的序列,每个元素分配一个位置索引,从0开始。元素可以是数字、字符串、列表、元组、字典。python用()来解释列表。
元组和列表是可以互相转换的。tuple(list)可以将一个列表转换成元组,反过来使用list(tuple)将一个元组转换成一个列表。
5、字典
字典是一个可变序列,字典的索引叫做键,不能重复。字典的键可以是数字、字符串、列表、元组、字典。python用{}来解释列表。字典的键值是无序的。
创建字典
ironman = {'name':'tony stark','age':47,'sex':'male'}
继续添加
ironman['college'] = 'NYC'
修改
ironman['college'] = 'MIT'
删除某个元素
del ironman['college']
del 命令可以删除数字变量、字符串变量、列表、元组、字典。
ironman.keys() 返回字典所有key的列表
ironman.values() 返回字典所有value的列表
ironman.items()返回字典所有(键,值)元组的列表
ironman.clear()删除字典中所有的元素
ironman.get(key)返回字典中key所对应的值。
网友评论